25 #ifndef _chemistry_qc_lmp2_pop_local_h
26 #define _chemistry_qc_lmp2_pop_local_h
28 #include <chemistry/qc/wfn/obwfn.h>
33 convert_complete_to_occupied_vector(
38 convert_complete_to_occupied_vector_nosymm(
59 mutable bool obsolete;
60 OrbData(): obsolete(
true) {};
64 typedef std::multimap<double, OrbData, std::greater<double> > orbmap_t;
66 std::set<std::pair<int,int> > obsolete_orbs_;
67 std::vector<std::vector<orbmap_t::iterator> > orbmap_iters_;
68 std::vector<double> scf_vector_dat_, S_half_trans_dat_;
75 void compute_rotation(OrbData &orbdata);
76 void rotate(
const OrbData &orbdata,
double *vec);
77 void rotate(
const OrbData &orbdata);
79 orbmap_t::iterator largest_orbmap_entry();
80 void update_orbmap_entries(
int orb);
81 void obsolete_orbmap_entries(
int orb);
82 void update_orbmap_entry(
int I,
int J);
83 void zero_orbmap_entry(
int I,
int J);
84 void remove_from_obsolete(
int i,
int j);
85 void add_to_obsolete(
int i,
int j);
86 long update_obsolete_entries();
93 void write_orbitals();