- added reference choice
[alexxy/gromacs-fitng.git] / src / fittingn.h
1 #ifndef FITTINGN_H
2 #define FITTINGN_H
3
4 // где-то косяк в Смаке, без этой строчки undefined reference to
5
6 #include <type_traits>
7 #include <iostream>
8 #include <string>
9
10 using namespace gmx;
11 using gmx::RVec;
12
13
14 //template< class t1, class = typename std::enable_if<std::is_floating_point< t1 >::value >::type >
15 //double F (t1 aix, t1 aiy, t1 aiz, t1 bix_plus_x, t1 biy_plus_y, t1 biz_plus_z, t1 A, t1 B, t1 C);
16
17 namespace ftn {
18
19     double F (double aix, double aiy, double aiz, double bix_plus_x, double biy_plus_y, double biz_plus_z, double A, double B, double C);
20
21     void searchF0xyzabc (double &F, double &Fx, double &Fy, double &Fz, double &Fa, double &Fb, double &Fc, double aix, double aiy, double aiz, double bix_plus_x, double biy_plus_y, double biz_plus_z, double A, double B, double C);
22
23     void searchL (double &fLd, double &fLdd, double aix, double aiy, double aiz, double bix, double biy, double biz, double x, double y, double z, double A, double B, double C, double L, double fx, double fy, double fz, double fa, double fb, double fc);
24
25     void ApplyFit (std::vector< RVec > &b, double x, double y, double z, double A, double B, double C);
26
27     void CalcMid (std::vector< RVec > a, std::vector< RVec > b, RVec &midA, RVec &midB, std::vector< std::pair< int, int > > pairs);
28
29     void MyFitNew (std::vector< RVec > a, std::vector< RVec > &b, std::vector< std::pair< int, int > > pairs);
30
31 }
32
33 #endif // FITTINGN_H