Static Public Member Functions | Static Private Member Functions
vnl_fastops Class Reference

Collection of C-style matrix functions for the most time-critical applications. More...

#include <vnl_fastops.h>

List of all members.

Static Public Member Functions

static void AtA (vnl_matrix< double > &out, const vnl_matrix< double > &A)
 Compute $A^ A$.
static void AB (vnl_matrix< double > &out, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute AxB.
static void AtB (vnl_matrix< double > &out, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $A^ B$.
static void AtB (vnl_vector< double > &out, const vnl_matrix< double > &A, const vnl_vector< double > &b)
 Compute $A^ b$ for vector b. out may not be b.
static void Ab (vnl_vector< double > &out, const vnl_matrix< double > &A, const vnl_vector< double > &b)
 Compute $A b$ for vector b. out may not be b.
static void ABt (vnl_matrix< double > &out, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $A B^$.
static double btAb (const vnl_matrix< double > &A, const vnl_vector< double > &b)
 Compute $b^ A b$ for vector b and matrix A.
static void ABAt (vnl_matrix< double > &out, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $A B A^$.
static void inc_X_by_AtA (vnl_matrix< double > &X, const vnl_matrix< double > &A)
 Compute $ X += A^ A$.
static void inc_X_by_AB (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X += A B$.
static void inc_X_by_AtB (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X += A^ B$.
static void inc_X_by_AtB (vnl_vector< double > &X, const vnl_matrix< double > &A, const vnl_vector< double > &b)
 Compute $X += A^ b$.
static void inc_X_by_ABt (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X += A B^$.
static void inc_X_by_ABAt (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X += A B A^$.
static void dec_X_by_AtA (vnl_matrix< double > &X, const vnl_matrix< double > &A)
 Compute $ X -= A^ A$.
static void dec_X_by_AB (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X -= A B$.
static void dec_X_by_AtB (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X -= A^ B$.
static void dec_X_by_AtB (vnl_vector< double > &X, const vnl_matrix< double > &A, const vnl_vector< double > &b)
 Compute $X -= A^ b$.
static void dec_X_by_ABt (vnl_matrix< double > &X, const vnl_matrix< double > &A, const vnl_matrix< double > &B)
 Compute $X -= A B^$.

Static Private Member Functions

static double dot (const double *a, const double *b, unsigned int n)
 Compute dot product of a and b.

Detailed Description

Collection of C-style matrix functions for the most time-critical applications.

In general, however one should consider using the vnl_transpose envelope-letter class to achieve the same results with about a 10% speed penalty.

Definition at line 27 of file vnl_fastops.h.


Member Function Documentation

void vnl_fastops::AB ( vnl_matrix< double > &  out,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute AxB.

Definition at line 56 of file vnl_fastops.cxx.

void vnl_fastops::Ab ( vnl_vector< double > &  out,
const vnl_matrix< double > &  A,
const vnl_vector< double > &  b 
) [static]

Compute $A b$ for vector b. out may not be b.

Definition at line 150 of file vnl_fastops.cxx.

void vnl_fastops::ABAt ( vnl_matrix< double > &  out,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $A B A^$.

Definition at line 212 of file vnl_fastops.cxx.

void vnl_fastops::ABt ( vnl_matrix< double > &  out,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $A B^$.

Definition at line 180 of file vnl_fastops.cxx.

void vnl_fastops::AtA ( vnl_matrix< double > &  out,
const vnl_matrix< double > &  A 
) [static]

Compute $A^ A$.

Definition at line 18 of file vnl_fastops.cxx.

void vnl_fastops::AtB ( vnl_matrix< double > &  out,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $A^ B$.

Definition at line 88 of file vnl_fastops.cxx.

void vnl_fastops::AtB ( vnl_vector< double > &  out,
const vnl_matrix< double > &  A,
const vnl_vector< double > &  b 
) [static]

Compute $A^ b$ for vector b. out may not be b.

Definition at line 120 of file vnl_fastops.cxx.

double vnl_fastops::btAb ( const vnl_matrix< double > &  A,
const vnl_vector< double > &  b 
) [static]

Compute $b^ A b$ for vector b and matrix A.

Definition at line 257 of file vnl_fastops.cxx.

void vnl_fastops::dec_X_by_AB ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X -= A B$.

Definition at line 358 of file vnl_fastops.cxx.

void vnl_fastops::dec_X_by_ABt ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X -= A B^$.

Definition at line 644 of file vnl_fastops.cxx.

void vnl_fastops::dec_X_by_AtA ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A 
) [static]

Compute $ X -= A^ A$.

Definition at line 529 of file vnl_fastops.cxx.

void vnl_fastops::dec_X_by_AtB ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X -= A^ B$.

Definition at line 427 of file vnl_fastops.cxx.

void vnl_fastops::dec_X_by_AtB ( vnl_vector< double > &  X,
const vnl_matrix< double > &  A,
const vnl_vector< double > &  b 
) [static]

Compute $X -= A^ b$.

Definition at line 496 of file vnl_fastops.cxx.

double vnl_fastops::dot ( const double *  a,
const double *  b,
unsigned int  n 
) [static, private]

Compute dot product of a and b.

Definition at line 568 of file vnl_fastops.cxx.

void vnl_fastops::inc_X_by_AB ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X += A B$.

Definition at line 325 of file vnl_fastops.cxx.

void vnl_fastops::inc_X_by_ABAt ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X += A B A^$.

Definition at line 694 of file vnl_fastops.cxx.

void vnl_fastops::inc_X_by_ABt ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X += A B^$.

Definition at line 595 of file vnl_fastops.cxx.

void vnl_fastops::inc_X_by_AtA ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A 
) [static]

Compute $ X += A^ A$.

Definition at line 286 of file vnl_fastops.cxx.

void vnl_fastops::inc_X_by_AtB ( vnl_matrix< double > &  X,
const vnl_matrix< double > &  A,
const vnl_matrix< double > &  B 
) [static]

Compute $X += A^ B$.

Definition at line 391 of file vnl_fastops.cxx.

void vnl_fastops::inc_X_by_AtB ( vnl_vector< double > &  X,
const vnl_matrix< double > &  A,
const vnl_vector< double > &  b 
) [static]

Compute $X += A^ b$.

Definition at line 463 of file vnl_fastops.cxx.


The documentation for this class was generated from the following files: