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^ 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. |
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.
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.