00001
00002
00003
00004
00005 #include <malloc.h>
00006 #include <stdlib.h>
00007 #include <stdio.h>
00008 #include <math.h>
00009 #include "wlog.h"
00010 #ifndef __VECTOR_SVH
00011 #define __VECTOR_SVH
00012
00013
00014
00015
00016
00017 typedef struct
00018 {
00019 double *a;
00020 long n;
00021 } vector;
00022
00023 void set_vec(vector *pom,double *a,long n);
00024 void link_vec(vector *pom,const vector u);
00025 void concat2_vec(vector *uv,const vector u,const vector v);
00026 void concat3_vec(vector *uv,const vector u,const vector v,const vector w);
00027 void construct_vec(vector *u,long k);
00028 void construct_vec_copy(vector *u,const vector v);
00029 void construct_vec_concat2(vector *uv,const vector u,const vector v);
00030 void construct_vec_concat3(vector *uv,const vector u,const vector v,const vector w);
00031 void destruct_vec(vector *which);
00032 void print_vec(const vector u,char *name);
00033 void split_vec(vector *out,const vector in,long start,long end);
00034
00035
00036
00037
00038
00039 double norm_vec(const vector u,int k);
00040
00041
00042
00043
00044
00045 double distance_vec(const vector u,const vector v,int k);
00046 void zeroize_vec(vector u);
00047 void load_vec(vector *u,const char *FileName);
00048 void load_vec_bin(vector *u,const char *FileName);
00049 void save_vec(const vector u,const char *FileName);
00050 void save_vec_bin(const vector u,const char *FileName);
00051 void add_vec(vector u,const vector v);
00052 void add_vec_val(vector u,double alpha);
00053 void subtract_vec(vector u,const vector v);
00054 void multiply_vec(vector u,double alpha);
00055 double product_vec(const vector u,const vector v);
00056 void dot_multiply_vec(vector which,const vector b);
00057 void lincomb_vec(vector u,const vector v,const double alpha,const double beta);
00058 void copy_vec(vector u,const vector v);
00059 int vec_isnan(vector u);
00060
00061
00062 #endif