Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef EPPVECTORR_SLEP
00018 #define EPPVECTORR_SLEP
00019
00020 #include <stdlib.h>
00021 #include <stdio.h>
00022 #include <time.h>
00023 #include <math.h>
00024
00025
00026
00027
00028
00029
00030
00031 void eppVectorR(double *x, double * t, double * u, double * v, double * ind, int n, int k){
00032 int i, j;
00033 double temp;
00034
00035
00036
00037
00038 for(j=0;j<k;j++){
00039 temp=0;
00040 for(i=(int) (ind[j]); i< (int) (ind[j+1]); i++)
00041 temp+= u[i]* u[i];
00042 temp=sqrt(temp);
00043
00044
00045 if(temp > fabs(v[j])){
00046 t[j]=(temp + v[j])/2;
00047
00048 for(i=(int) (ind[j]); i< (int) (ind[j+1]); i++)
00049 x[i]= t[j] / temp * u[i];
00050 }
00051 else
00052 if(temp <= v[j]){
00053 t[j]=v[j];
00054
00055 for(i=(int) (ind[j]); i< (int) (ind[j+1]); i++)
00056 x[i]= u[i];
00057 }
00058 else{
00059 t[j]=0;
00060
00061 for(i=(int) (ind[j]); i< (int) (ind[j+1]); i++)
00062 x[i]=0;
00063 }
00064
00065 }
00066 }
00067 #endif