linear algebra utilities More...
#include <stdio.h>
#include <math.h>
Go to the source code of this file.
Functions | |
static double | matrix_determinant_3x3d (const double m[9]) |
static int | matrix_inverse_2x2d (const double m[4], double inverse[4]) |
static int | matrix_inverse_3x3d (const double m[9], double inverse[9]) |
int | matrix_inverse_4x4d (const double m[16], double inv[16]) |
static void | matrix_multiply (const double *a, int a_nrows, int a_ncols, const double *b, int b_nrows, int b_ncols, double *result) |
static void | matrix_multiply_3x3_3x3 (const double a[9], const double b[9], double r[9]) |
static void | matrix_multiply_4x4_4x4 (const double a[16], const double b[16], double r[16]) |
static void | matrix_print (const double *a, int rows, int cols) |
static void | matrix_rigid_body_transform_get_rotation_matrix_4x4d (const double m[16], double rot[16]) |
static void | matrix_rigid_body_transform_get_translation_matrix_4x4d (const double m[16], double t[16]) |
static int | matrix_rigid_body_transform_inverse_4x4d (const double m[16], double inv[16]) |
static void | matrix_transpose_3x3d (const double m[9], double result[9]) |
static void | matrix_transpose_4x4d (const double m[16], double result[16]) |
static void | matrix_vector_multiply_2x2_2d (const double m[4], const double v[2], double result[2]) |
static void | matrix_vector_multiply_3x3_3d (const double m[9], const double v[3], double result[3]) |
static void | matrix_vector_multiply_4x4_4d (const double m[16], const double v[4], double result[4]) |
static void | vector_add_3d (const double v1[3], const double v2[3], double result[3]) |
static void | vector_add_nd (const double *v1, const double *v2, int N, double *result) |
static double | vector_angle_2d (const double v1[2], const double v2[2]) |
static double | vector_angle_3d (const double v1[3], const double v2[3]) |
static void | vector_cross_3d (const double v1[3], const double v2[3], double result[3]) |
static double | vector_dist_2d (const double v1[2], const double v2[2]) |
static double | vector_dist_3d (const double v1[3], const double v2[3]) |
static double | vector_dist_squared_3d (const double v1[3], const double v2[3]) |
static double | vector_dot_2d (const double v1[2], const double v2[2]) |
static double | vector_dot_3d (const double v1[3], const double v2[3]) |
static double | vector_magnitude_2d (const double v[2]) |
static double | vector_magnitude_3d (const double v[3]) |
static double | vector_magnitude_squared_2d (const double v[2]) |
static double | vector_magnitude_squared_3d (const double v[3]) |
static void | vector_normalize_2d (double v[2]) |
static void | vector_normalize_3d (double v[3]) |
static void | vector_print_3d (const double a[3]) |
static void | vector_saxpy_3d (double a, const double x[3], const double y[3], double z[3]) |
static void | vector_scale_2d (double v[2], double s) |
static void | vector_scale_3d (double v[2], double s) |
static void | vector_sub_nd (const double *v1, const double *v2, int N, double *result) |
static void | vector_subtract_3d (const double v1[3], const double v2[3], double result[3]) |
static void | vector_vector_outer_product_3d (const double v1[3], const double v2[3], double result[9]) |
linear algebra utilities
Definition in file small_linalg.h.
static double matrix_determinant_3x3d | ( | const double | m[9] | ) | [inline, static] |
Definition at line 46 of file small_linalg.h.
static int matrix_inverse_2x2d | ( | const double | m[4], | |
double | inverse[4] | |||
) | [inline, static] |
Definition at line 76 of file small_linalg.h.
static int matrix_inverse_3x3d | ( | const double | m[9], | |
double | inverse[9] | |||
) | [inline, static] |
Definition at line 57 of file small_linalg.h.
int matrix_inverse_4x4d | ( | const double | m[16], | |
double | inv[16] | |||
) |
static void matrix_multiply | ( | const double * | a, | |
int | a_nrows, | |||
int | a_ncols, | |||
const double * | b, | |||
int | b_nrows, | |||
int | b_ncols, | |||
double * | result | |||
) | [inline, static] |
Definition at line 355 of file small_linalg.h.
static void matrix_multiply_3x3_3x3 | ( | const double | a[9], | |
const double | b[9], | |||
double | r[9] | |||
) | [inline, static] |
Definition at line 340 of file small_linalg.h.
static void matrix_multiply_4x4_4x4 | ( | const double | a[16], | |
const double | b[16], | |||
double | r[16] | |||
) | [inline, static] |
Definition at line 325 of file small_linalg.h.
static void matrix_print | ( | const double * | a, | |
int | rows, | |||
int | cols | |||
) | [inline, static] |
Definition at line 420 of file small_linalg.h.
static void matrix_rigid_body_transform_get_rotation_matrix_4x4d | ( | const double | m[16], | |
double | rot[16] | |||
) | [inline, static] |
Definition at line 400 of file small_linalg.h.
static void matrix_rigid_body_transform_get_translation_matrix_4x4d | ( | const double | m[16], | |
double | t[16] | |||
) | [inline, static] |
Definition at line 410 of file small_linalg.h.
static int matrix_rigid_body_transform_inverse_4x4d | ( | const double | m[16], | |
double | inv[16] | |||
) | [inline, static] |
Definition at line 373 of file small_linalg.h.
static void matrix_transpose_3x3d | ( | const double | m[9], | |
double | result[9] | |||
) | [inline, static] |
Definition at line 290 of file small_linalg.h.
static void matrix_transpose_4x4d | ( | const double | m[16], | |
double | result[16] | |||
) | [inline, static] |
Definition at line 304 of file small_linalg.h.
static void matrix_vector_multiply_2x2_2d | ( | const double | m[4], | |
const double | v[2], | |||
double | result[2] | |||
) | [inline, static] |
Definition at line 89 of file small_linalg.h.
static void matrix_vector_multiply_3x3_3d | ( | const double | m[9], | |
const double | v[3], | |||
double | result[3] | |||
) | [inline, static] |
Definition at line 97 of file small_linalg.h.
static void matrix_vector_multiply_4x4_4d | ( | const double | m[16], | |
const double | v[4], | |||
double | result[4] | |||
) | [inline, static] |
Definition at line 106 of file small_linalg.h.
static void vector_add_3d | ( | const double | v1[3], | |
const double | v2[3], | |||
double | result[3] | |||
) | [inline, static] |
Definition at line 116 of file small_linalg.h.
static void vector_add_nd | ( | const double * | v1, | |
const double * | v2, | |||
int | N, | |||
double * | result | |||
) | [inline, static] |
Definition at line 124 of file small_linalg.h.
static double vector_angle_2d | ( | const double | v1[2], | |
const double | v2[2] | |||
) | [inline, static] |
Definition at line 261 of file small_linalg.h.
static double vector_angle_3d | ( | const double | v1[3], | |
const double | v2[3] | |||
) | [inline, static] |
Definition at line 279 of file small_linalg.h.
static void vector_cross_3d | ( | const double | v1[3], | |
const double | v2[3], | |||
double | result[3] | |||
) | [inline, static] |
Definition at line 165 of file small_linalg.h.
static double vector_dist_2d | ( | const double | v1[2], | |
const double | v2[2] | |||
) | [inline, static] |
Definition at line 213 of file small_linalg.h.
static double vector_dist_3d | ( | const double | v1[3], | |
const double | v2[3] | |||
) | [inline, static] |
Definition at line 197 of file small_linalg.h.
static double vector_dist_squared_3d | ( | const double | v1[3], | |
const double | v2[3] | |||
) | [inline, static] |
Definition at line 205 of file small_linalg.h.
static double vector_dot_2d | ( | const double | v1[2], | |
const double | v2[2] | |||
) | [inline, static] |
Definition at line 153 of file small_linalg.h.
static double vector_dot_3d | ( | const double | v1[3], | |
const double | v2[3] | |||
) | [inline, static] |
Definition at line 159 of file small_linalg.h.
static double vector_magnitude_2d | ( | const double | v[2] | ) | [inline, static] |
Definition at line 179 of file small_linalg.h.
static double vector_magnitude_3d | ( | const double | v[3] | ) | [inline, static] |
Definition at line 185 of file small_linalg.h.
static double vector_magnitude_squared_2d | ( | const double | v[2] | ) | [inline, static] |
Definition at line 173 of file small_linalg.h.
static double vector_magnitude_squared_3d | ( | const double | v[3] | ) | [inline, static] |
Definition at line 191 of file small_linalg.h.
static void vector_normalize_2d | ( | double | v[2] | ) | [inline, static] |
Definition at line 221 of file small_linalg.h.
static void vector_normalize_3d | ( | double | v[3] | ) | [inline, static] |
Definition at line 229 of file small_linalg.h.
static void vector_print_3d | ( | const double | a[3] | ) | [inline, static] |
Definition at line 432 of file small_linalg.h.
static void vector_saxpy_3d | ( | double | a, | |
const double | x[3], | |||
const double | y[3], | |||
double | z[3] | |||
) | [inline, static] |
Definition at line 254 of file small_linalg.h.
static void vector_scale_2d | ( | double | v[2], | |
double | s | |||
) | [inline, static] |
Definition at line 238 of file small_linalg.h.
static void vector_scale_3d | ( | double | v[2], | |
double | s | |||
) | [inline, static] |
Definition at line 245 of file small_linalg.h.
static void vector_sub_nd | ( | const double * | v1, | |
const double * | v2, | |||
int | N, | |||
double * | result | |||
) | [inline, static] |
Definition at line 132 of file small_linalg.h.
static void vector_subtract_3d | ( | const double | v1[3], | |
const double | v2[3], | |||
double | result[3] | |||
) | [inline, static] |
static void vector_vector_outer_product_3d | ( | const double | v1[3], | |
const double | v2[3], | |||
double | result[9] | |||
) | [inline, static] |
Definition at line 441 of file small_linalg.h.