24 std::ostringstream os;
45 firstIndex i1; secondIndex i2; thirdIndex i3;
46 Range ra(Range::all());
48 Array<double, 3> ivjac(intermediate_variable(wn, spec_index).
jacobian());
51 for(
int i = 0; i < res.rows(); ++i)
52 res.jacobian()(i, ra) =
53 sum(od.
jacobian()(i, ra)(i2) * ivjac(i, ra, ra)(i2,i1),i2);
73 (
double wn,
int spec_index)
const 75 firstIndex i1; secondIndex i2; thirdIndex i3;
76 Range ra(Range::all());
78 Array<double, 3> ivjac(intermediate_variable(wn, spec_index).
jacobian());
81 for(
int i = 0; i < res.rows(); ++i)
82 res.jacobian()(i, ra) =
83 sum(ss.
jacobian()(i, ra)(i2) * ivjac(i, ra, ra)(i2,i1),i2);
114 (
double wn,
int spec_index,
int nummom,
int numscat)
const 116 firstIndex i1; secondIndex i2; thirdIndex i3; fourthIndex i4; fifthIndex i5;
118 pf(scattering_moment_wrt_iv(wn, spec_index, nummom, numscat));
119 Array<double, 3> ivjac(intermediate_variable(wn, spec_index).
jacobian());
122 res.jacobian() = sum(pf.
jacobian()(i1, i2, i3, i5) * ivjac(i2,i5, i4), i5);
This class is responsible for setting up the atmosphere and ground information needed to run the Radi...
static AccumulatedTimer timer
Timer for RtAtmosphere.
blitz::Array< T, 2 > jacobian(const blitz::Array< AutoDerivative< T >, 1 > &Ad)
Utility function to extract the Jacobian as a separate matrix from an array of AutoDerivative.
ArrayAd< double, 1 > optical_depth_wrt_state_vector(double wn, int spec_index) const
The optical depth for each layer, for the given wave number.
const blitz::Array< T, D+1 > jacobian() const
ArrayAd< double, 1 > single_scattering_albedo_wrt_state_vector(double wn, int spec_index) const
The single scattering albedo for each layer, for the given wave number.
#define REGISTER_LUA_CLASS(X)
Apply value function to a blitz array.
const blitz::Array< T, D > & value() const
This is a simple timer class that can be used to accumulate the time spent in multiple calls to a fun...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()
ArrayAd< double, 3 > scattering_moment_wrt_state_vector(double wn, int spec_index, int nummom=-1, int numscat=-1) const
The scattering moments for for each layer, for the given wave number.
virtual std::string timer_info() const
Return timer information.