1 #ifdef __GNUG__ 2 #pragma interface 3 #endif 4 5 #ifndef _chemistry_qc_oint3_build_h 6 #define _chemistry_qc_oint3_build_h 7 8 #include <scconfig.h> 9 #include <chemistry/qc/intv3/array.h> 10 11 namespace sc { 12 13 #define MG 3 14 15 #define DECLARE_BUILD(ii,j,k,l) \ 16 int i ## ii ## j ## k ## l ();\ 17 int i ## ii ## j ## k ## l ## eAB () 18 19 class BuildIntV3 { 20 public: 21 double int_v_ooze; 22 double int_v_zeta12; 23 double int_v_zeta34; 24 double int_v_oo2zeta12; 25 double int_v_oo2zeta34; 26 double int_v_W0; 27 double int_v_W1; 28 double int_v_W2; 29 double int_v_p120; 30 double int_v_p121; 31 double int_v_p122; 32 double int_v_p340; 33 double int_v_p341; 34 double int_v_p342; 35 double int_v_r10; 36 double int_v_r11; 37 double int_v_r12; 38 double int_v_r20; 39 double int_v_r21; 40 double int_v_r22; 41 double int_v_r30; 42 double int_v_r31; 43 double int_v_r32; 44 double int_v_r40; 45 double int_v_r41; 46 double int_v_r42; 47 double int_v_k12; 48 double int_v_k34; 49 IntV3Arraydoublep3 int_v_list; 50 public: 51 BuildIntV3(); 52 ~BuildIntV3(); 53 54 int impossible_integral(); 55 56 #if (MG == 1) || (MG == 2) || (MG == 3) || (MG == 4) 57 DECLARE_BUILD(0,1,0,0); 58 DECLARE_BUILD(0,1,0,1); 59 DECLARE_BUILD(0,1,1,1); 60 DECLARE_BUILD(1,1,0,0); 61 DECLARE_BUILD(1,1,1,1); 62 #endif 63 64 #if (MG == 2) || (MG == 3) || (MG == 4) 65 DECLARE_BUILD(0,2,0,0); 66 DECLARE_BUILD(0,2,0,1); 67 DECLARE_BUILD(0,2,0,2); 68 DECLARE_BUILD(0,2,1,1); 69 DECLARE_BUILD(0,2,1,2); 70 DECLARE_BUILD(0,2,2,2); 71 DECLARE_BUILD(1,2,0,0); 72 DECLARE_BUILD(1,2,0,1); 73 DECLARE_BUILD(1,2,1,1); 74 DECLARE_BUILD(1,2,1,2); 75 DECLARE_BUILD(1,2,2,2); 76 DECLARE_BUILD(2,2,0,0); 77 DECLARE_BUILD(2,2,0,1); 78 DECLARE_BUILD(2,2,1,1); 79 DECLARE_BUILD(2,2,2,2); 80 #endif 81 82 #if (MG == 3) || (MG == 4) 83 DECLARE_BUILD(0,3,0,0); 84 DECLARE_BUILD(0,3,0,1); 85 DECLARE_BUILD(0,3,0,2); 86 DECLARE_BUILD(0,3,0,3); 87 DECLARE_BUILD(0,3,1,1); 88 DECLARE_BUILD(0,3,1,2); 89 DECLARE_BUILD(0,3,1,3); 90 DECLARE_BUILD(0,3,2,2); 91 DECLARE_BUILD(0,3,2,3); 92 DECLARE_BUILD(0,3,3,3); 93 DECLARE_BUILD(1,3,0,0); 94 DECLARE_BUILD(1,3,0,1); 95 DECLARE_BUILD(1,3,0,2); 96 DECLARE_BUILD(1,3,1,1); 97 DECLARE_BUILD(1,3,1,2); 98 DECLARE_BUILD(1,3,1,3); 99 DECLARE_BUILD(1,3,2,2); 100 DECLARE_BUILD(1,3,2,3); 101 DECLARE_BUILD(1,3,3,3); 102 DECLARE_BUILD(2,3,0,0); 103 DECLARE_BUILD(2,3,0,1); 104 DECLARE_BUILD(2,3,0,2); 105 DECLARE_BUILD(2,3,1,1); 106 DECLARE_BUILD(2,3,1,2); 107 DECLARE_BUILD(2,3,2,2); 108 DECLARE_BUILD(2,3,2,3); 109 DECLARE_BUILD(2,3,3,3); 110 DECLARE_BUILD(3,3,0,0); 111 DECLARE_BUILD(3,3,0,1); 112 DECLARE_BUILD(3,3,0,2); 113 DECLARE_BUILD(3,3,1,1); 114 DECLARE_BUILD(3,3,1,2); 115 DECLARE_BUILD(3,3,2,2); 116 DECLARE_BUILD(3,3,3,3); 117 #endif 118 }; 119 120 } 121 122 #endif 123