Static Public Member Functions | Static Private Member Functions | List of all members
vnl_fastops Class Reference

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

#include <vnl_fastops.h>

Static Public Member Functions

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

Static Private Member Functions

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

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 25 of file vnl_fastops.h.

Member Function Documentation

◆ AB()

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

Compute AxB.

Definition at line 52 of file vnl_fastops.cxx.

◆ Ab()

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 146 of file vnl_fastops.cxx.

◆ ABAt()

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

Compute $A B A^\top$.

Definition at line 208 of file vnl_fastops.cxx.

◆ ABt()

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

Compute $A B^\top$.

Definition at line 176 of file vnl_fastops.cxx.

◆ AtA()

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

Compute $A^\top A$.

Definition at line 14 of file vnl_fastops.cxx.

◆ AtB() [1/2]

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

Compute $A^\top B$.

Definition at line 84 of file vnl_fastops.cxx.

◆ AtB() [2/2]

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

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

Definition at line 116 of file vnl_fastops.cxx.

◆ btAb()

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

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

Definition at line 253 of file vnl_fastops.cxx.

◆ dec_X_by_AB()

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 354 of file vnl_fastops.cxx.

◆ dec_X_by_ABt()

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^\top$.

Definition at line 640 of file vnl_fastops.cxx.

◆ dec_X_by_AtA()

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

Compute $ X -= A^\top A$.

Definition at line 525 of file vnl_fastops.cxx.

◆ dec_X_by_AtB() [1/2]

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^\top B$.

Definition at line 423 of file vnl_fastops.cxx.

◆ dec_X_by_AtB() [2/2]

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^\top b$.

Definition at line 492 of file vnl_fastops.cxx.

◆ dot()

double vnl_fastops::dot ( const double *  a,
const double *  b,
unsigned int  n 
)
staticprivate

Compute dot product of a and b.

Definition at line 564 of file vnl_fastops.cxx.

◆ inc_X_by_AB()

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 321 of file vnl_fastops.cxx.

◆ inc_X_by_ABAt()

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^\top$.

Definition at line 690 of file vnl_fastops.cxx.

◆ inc_X_by_ABt()

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^\top$.

Definition at line 591 of file vnl_fastops.cxx.

◆ inc_X_by_AtA()

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

Compute $ X += A^\top A$.

Definition at line 282 of file vnl_fastops.cxx.

◆ inc_X_by_AtB() [1/2]

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^\top B$.

Definition at line 387 of file vnl_fastops.cxx.

◆ inc_X_by_AtB() [2/2]

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^\top b$.

Definition at line 459 of file vnl_fastops.cxx.


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