3 #ifndef __psc_solver_hpp
4 #define __psc_solver_hpp
10 #include <lapackpp/laslv.h>
11 #include <lapackpp/laexcp.h>
14 #include <wave_field.hpp>
16 #include <s2proc/wave_field.hpp>
44 int id1, id2, id3,
id4;
47 static bool stride_asc_id1_asc_comp(
const RowElem &re1,
const RowElem &re2)
49 int stride1 = abs(re1.id2 - re1.id1);
50 int stride2 = abs(re2.id2 - re2.id1);
52 if (stride1 < stride2)
54 else if (stride1 > stride2)
57 return (re1.id1 < re2.id1);
137 std::vector<Trace::AmplT> &row_vec,
Trace::TimeT &rp_elem)
const;
146 RowElemVec::iterator elem_it1,
147 RowElemVec::iterator elem_it2)
const;
154 void test_la_to_files(
const std::string &matr_fname,
const std::string &vec_fname,
155 const LaGenMatDouble &Am,
const LaVectorDouble &bv)
const;
RowType
Definition: psc_solver.hpp:28
Definition: psc_solver.hpp:68
void setParameters(const Params ¶ms)
Trace::TimeT max_time_shift
Definition: psc_solver.hpp:83
Params m_params
Definition: psc_solver.hpp:121
Definition: psc_solver.hpp:42
RowType row_type
Definition: psc_solver.hpp:82
float TimeT
Definition: trace.hpp:22
std::vector< TimeShift > TimeShifts
Definition: psc_solver.hpp:65
std::pair< int, int > ids_range
Definition: psc_solver.hpp:91
void update_eq_data(const WaveField &row, RowElemVec &row_elem_vec) const
int id4
Definition: psc_solver.hpp:44
unsigned int max_used_stride
Definition: psc_solver.hpp:85
Definition: psc_solver.hpp:31
bool remove_low_freq(const size_t polynomial_degree, RowElemVec &row_elem_vec) const
Definition: psc_solver.hpp:30
Params()
Definition: psc_solver.hpp:71
const Params & getParameters() const
std::vector< RowElem > RowElemVec
Definition: psc_solver.hpp:62
Definition: psc_solver.hpp:35
Trace::TimeT dt
Definition: psc_solver.hpp:38
Definition: wave_field.hpp:13
bool operator()(const WaveField &row, TimeShifts &time_shifts) const
Trace::TimeT dt
Definition: psc_solver.hpp:45
size_t trend_polynomial_degree
Definition: psc_solver.hpp:88
size_t low_freq_polynomial_degree
Definition: psc_solver.hpp:90
bool get_eq_row(const RowElem &row_elem, const std::set< int > &ids_set, std::vector< Trace::AmplT > &row_vec, Trace::TimeT &rp_elem) const
bool remove_trend(const size_t trend_polynomial_degree, TimeShifts &time_shifts) const
bool remove_low_freq_flag
Definition: psc_solver.hpp:89
Solver(const Params ¶ms)
Definition: psc_solver.hpp:23
bool determine_statics(const RowElemVec &row_elem_vec, TimeShifts &time_shifts) const
bool remove_trend_flag
Definition: psc_solver.hpp:87
int id
Definition: psc_solver.hpp:37
std::set< int > get_row_ids(const RowElemVec &row_elem_vec) const