00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00025
00026
#ifndef __UTILITY_VECTOR_H__
00027
#define __UTILITY_VECTOR_H__
00028
00029
#include <tnt/tnt_array1d.h>
00030
#include <tnt/tnt_array2d.h>
00031
#include <cstdio>
00032
#include <cmath>
00033
00034
namespace mutk
00035 {
00036
00040 class Vector :
public TNT::Array1D< double >
00041 {
00042
public:
00043
Vector(
void);
00044
Vector(
int dimension,
double initVal);
00045
Vector(
const Vector &v);
00046
00047
00048
double magnitude(
void);
00049
void normalise(
void);
00050
void fPrintf(FILE *fp);
00051 };
00052
00053 }
00054
00055
double dotProduct(
const mutk::Vector &v1,
const mutk::Vector &v2);
00056
mutk::Vector operator+(
const mutk::Vector &v1,
const mutk::Vector &v2);
00057
mutk::Vector operator-(
const mutk::Vector &v1,
const mutk::Vector &v2);
00058
mutk::Vector operator*(
const mutk::Vector &v,
double factor);
00059
mutk::Vector operator*(
double factor,
const mutk::Vector &v);
00060
00063
mutk::Vector columnView(
const TNT::Array2D< double > &m,
int c);
00064
00067
mutk::Vector rowView(
const TNT::Array2D< double > &m,
int r);
00068
00071
mutk::Vector loadVector(FILE *fp);
00072
00073
#endif // __UTILITY_VECTOR_H__
00074