00001
00002
00003
00004
00005
00006
00007
00008 #include <math.h>
00009 #include <vector>
00010
00011 #ifndef _SBPL_MATH_
00012 #define _SBPL_MATH_
00013
00014
00015 void multiply(double*, double*, int, int, double*, int);
00016 void scalar_multiply(double*, double*, int, int, double);
00017 void equate(double*, double*, int, int);
00018 void matrix_add(double*, double*, double*, int, int);
00019 void subtract(double*, double*, double*, int, int);
00020 void transpose(double*, double*, int, int);
00021
00022
00023 double dot_product(double*, double*, int);
00024 void cross_product(double*, double*, double*);
00025 double vect_norm(double*, int);
00026 double vect_divide(double*, double*, int);
00027 bool check_equality(double*, double*, int);
00028
00029
00030 void create_rotation_matrix(double*, double, double, double);
00031 void rotate_vector(double (&result)[3], double*, double*, double);
00032 double distance_between(double*, double*, int);
00033 double distance_between(std::vector<double>, double*, int);
00034
00035
00036 #endif