55 Vector itw1(2),itwl(2),itwr(2);
68 return itw1[0]*yl+itw1[1]*yr;
80 os <<
"SLIData2 : Output operator not implemented";
127 Index anr = a[0].nrows();
128 Index anc = a[0].ncols();
130 assert(tia.
nrows() == anr);
131 assert(tia.
ncols() == anc);
133 for (
Index inr = 0; inr < anr; inr++)
134 for (
Index inc = 0; inc < anc; inc++)
136 tia(inr,inc) = a[tc.
idx](inr,inc)*itw[0] + a[tc.
idx+1](inr,inc)*itw[1];
175 assert(tia.
nelem() == an);
177 for (
Index i=0; i<an; ++i )
179 tia[i] = a[tc.
idx][i]*itw[0] + a[tc.
idx+1][i]*itw[1];
202 if(
abs(aa_sca-aa_inc)<ANG_TOL)
206 else if (
abs(
abs(aa_sca-aa_inc)-180)<ANG_TOL)
208 theta_rad=
DEG2RAD*(za_sca+za_inc);
209 if (theta_rad>
PI){theta_rad=2*
PI-theta_rad;}
221 theta_rad = acos(cos(za_sca_rad) * cos(za_inc_rad) +
222 sin(za_sca_rad) * sin(za_inc_rad) *
223 cos(aa_sca_rad - aa_inc_rad));
238 for (
Index i = 0; i < 6; i++)
250 for (
Index i = 0; i < 6; i++)
INDEX Index
The type to use for all integer numbers and indices.
Index nelem() const
Number of elements.
Interpolation classes and functions created for use within Monte Carlo scattering simulations...
Numeric interpolate(Numeric x1, Numeric x2) const
Perform sequential interpolation.
Structure which describes the single scattering properties of a particle or a particle distribution...
A 2D sequential linear interpolation (SLI) lookup table.
Index nelem() const
Returns the number of elements.
Structure to store a grid position.
Index ncols() const
Returns the number of columns.
bool is_same_within_epsilon(const Numeric &a, const Numeric &b, const Numeric &epsilon)
Check, if two numbers agree within a given epsilon.
Numeric sum() const
The sum of all elements of a Vector.
const Numeric sum_check_epsilon
The maximum difference from 1 that we allow for a sum check.
void gridpos(ArrayOfGridPos &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Numeric &extpolfac)
Set up a grid position Array.
NUMERIC Numeric
The type to use for all floating point numbers.
const Numeric DEG2RAD
Global constant, conversion from degrees to radians.
Header file for logic.cc.
ostream & operator<<(ostream &os, const SLIData2 &)
This can be used to make arrays out of anything.
void interp_scat_angle_temperature(VectorView pha_mat_int, Numeric &theta_rad, const SingleScatteringData &scat_data, const Numeric &za_sca, const Numeric &aa_sca, const Numeric &za_inc, const Numeric &aa_inc, const Numeric &rtp_temperature)
A constant view of a Vector.
bool is_size(ConstVectorView x, const Index &n)
Verifies that the size of x is l.
void interp(MatrixView tia, ConstVectorView itw, const ArrayOfMatrix &a, const GridPos &tc)
Red 1D Interpolate.
Index ncols() const
Returns the number of columns.
void interpweights(VectorView itw, const GridPos &tc)
Red 1D interpolation weights.
Index nrows() const
Returns the number of rows.
const Numeric RAD2DEG
Global constant, conversion from radians to degrees.