1 #ifndef rl_TransmissionCoefPOD_h_INCLUDED 2 #define rl_TransmissionCoefPOD_h_INCLUDED 61 #include <rl_raylib/rl_Traits.h> 127 double transmission(
double polarization_factor = 0.0 )
const;
156 std::ostream&
print_on( std::ostream& os,
char const pre[] =
"",
157 char const pst[] =
"" )
const;
166 void cprint_on( std::FILE* of,
char const pre[] =
"",
167 char const pst[] =
"" )
const;
204 return ( norm( perp_ ) * (1.0 + polarization_factor )
205 + norm( para_ ) * (1.0 - polarization_factor ) ) / 2.0;
209 print_on( std::ostream& os,
char const pre[],
char const pst[] )
const 211 if ( std::strlen(pre) ) { os << pre; }
212 os <<
"[" << para_ <<
"][" << perp_ <<
"]";
213 if ( std::strlen(pst) ) { os << pst; }
218 cprint_on( std::FILE* of,
char const pre[],
char const pst[] )
const 220 if ( std::strlen(pre) ) { std::fprintf(of,
"%s", pre); }
221 std::fprintf(of,
"[%.15e, %.15e] [%.15e, %.15e]\n",
222 para_.real(), para_.imag(), perp_.real(), perp_.imag());
223 if ( std::strlen(pst) ) { std::fprintf(of,
"%s", pst); }
std::complex< double > complex
Typedef for the complex type.
std::ostream & print_on(std::ostream &os, char const pre[]="", char const pst[]="") const
Print reflectivity information to output stream.
rl_Traits::complex para() const
void init()
Initialize perpendicular (s) and parallel (p) transmission coefficients to zero.
double transmission(double polarization_factor=0.0) const
Transmission factor.
rl_Traits::complex perp() const
void cprint_on(std::FILE *of, char const pre[]="", char const pst[]="") const
Print reflectivity information to output FILE* stream.
A Plain Ol' Data class representing complex reflection coefficients.