math_funcs.cc File Reference

#include <iostream>
#include <cmath>
#include <stdexcept>
#include "array.h"
#include "math_funcs.h"
#include "logic.h"
#include "mystring.h"

Include dependency graph for math_funcs.cc:

Go to the source code of this file.

Functions

Numeric fac (const Index n)
 fac
Index integer_div (const Index &x, const Index &y)
 integer_div
Numeric LagrangeInterpol4 (ConstVectorView x, ConstVectorView y, const Numeric a)
 Lagrange Interpolation (internal function).
Numeric last (ConstVectorView x)
 last
Index last (const ArrayOfIndex &x)
 last
void linspace (Vector &x, const Numeric start, const Numeric stop, const Numeric step)
 linspace
void nlinspace (Vector &x, const Numeric start, const Numeric stop, const Index n)
 nlinspace
void nlogspace (Vector &x, const Numeric start, const Numeric stop, const Index n)
 nlogspace
Numeric AngIntegrate_trapezoid (ConstMatrixView Integrand, ConstVectorView za_grid, ConstVectorView aa_grid)
 AngIntegrate_trapezoid.
Numeric AngIntegrate_trapezoid_opti (ConstMatrixView Integrand, ConstVectorView za_grid, ConstVectorView aa_grid, ConstVectorView grid_stepsize)
 AngIntegrate_trapezoid_opti.
Numeric AngIntegrate_trapezoid (ConstVectorView Integrand, ConstVectorView za_grid)
 AngIntegrate_trapezoid.
Numeric sign (const Numeric &x)
 sign

Variables

const Numeric DEG2RAD
const Numeric PI


Detailed Description

Author:
Patrick Eriksson <Patrick.Eriksson@rss.chalmers.se>
Date:
2000-09-18
Contains basic mathematical functions.

Definition in file math_funcs.cc.


Function Documentation

Numeric AngIntegrate_trapezoid ( ConstVectorView  Integrand,
ConstVectorView  za_grid 
)

AngIntegrate_trapezoid.

Performs an integration of a matrix over all directions defined in angular grids using the trapezoidal integration method. The integrand is independant of the azimuth angle. The integration over the azimuth angle gives a 2*PI

Parameters:
Integrand Input : The vector to be integrated
za_grid Input : The zenith angle grid
Author:
Claas Teichmann
Date:
2003-05-13
Returns:
The resulting integral

Definition at line 438 of file math_funcs.cc.

References DEG2RAD, is_size(), ConstVectorView::nelem(), and PI.

Numeric AngIntegrate_trapezoid ( ConstMatrixView  Integrand,
ConstVectorView  za_grid,
ConstVectorView  aa_grid 
)

AngIntegrate_trapezoid.

Performs an integration of a matrix over all directions defined in angular grids using the trapezoidal integration method.

Parameters:
Integrand The Matrix to be integrated
za_grid The zenith angle grid
aa_grid The azimuth angle grid
Returns:
The resulting integral

Definition at line 327 of file math_funcs.cc.

References DEG2RAD, is_size(), and ConstVectorView::nelem().

Referenced by AngIntegrate_trapezoid_opti(), and scat_data_rawCheck().

Numeric AngIntegrate_trapezoid_opti ( ConstMatrixView  Integrand,
ConstVectorView  za_grid,
ConstVectorView  aa_grid,
ConstVectorView  grid_stepsize 
)

AngIntegrate_trapezoid_opti.

Performs an integration of a matrix over all directions defined in angular grids using the trapezoidal integration method.

In addition to the "old fashined" integration method, it checks whether the stepsize is constant. If it is, it uses a faster method, if not, it uses the old one.

Parameters:
Integrand Input : The Matrix to be integrated
za_grid Input : The zenith angle grid
aa_grid Input : The azimuth angle grid
grid_stepsize Input : stepsize of the grid
Returns:
The resulting integral
Author:
Claas Teichmann <claas@sat.physik.uni-bremen.de>
Date:
2003/05/28

Definition at line 377 of file math_funcs.cc.

References AngIntegrate_trapezoid(), DEG2RAD, is_size(), ConstVectorView::nelem(), and temp.

Referenced by doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), and test_AngIntegrate_trapezoid_opti().

Numeric fac ( const Index  n  ) 

Index integer_div ( const Index x,
const Index y 
)

integer_div

Performs an integer division.

The function asserts that the reminder of the division x/y is 0.

Returns:
The quotient
Parameters:
x Nominator
y Denominator
Author:
Patrick Eriksson
Date:
2002-08-11

Definition at line 95 of file math_funcs.cc.

References is_multiple().

Numeric LagrangeInterpol4 ( ConstVectorView  x,
ConstVectorView  y,
const Numeric  a 
)

Lagrange Interpolation (internal function).

This function calculates the Lagrange interpolation of four interpolation points as described in Lagrange Interpolating Polynomial.
The input are the four x-axis values [x0,x1,x2,x3] and their associated y-axis values [y0,y1,y2,y3]. Furthermore the x-axis point "a" at which the interpolation should be calculated must be given as input. NOTE that the relation x2 =< x < x3 MUST hold!

Parameters:
x x-vector with four elements [x0,x1,x2,x3]
y y-vector with four elements: yj = y(xj), j=0,1,2,3
a interpolation point on the x-axis with x1 =< a < x2
Returns:
FIXME
Author:
Thomas Kuhn
Date:
2003-11-25

Definition at line 124 of file math_funcs.cc.

References ConstVectorView::nelem().

Index last ( const ArrayOfIndex x  ) 

last

Returns the last value of an index array.

Returns:
The last value of x.
Parameters:
x An index array.
Author:
Patrick Eriksson
Date:
2000-06-27

Definition at line 201 of file math_funcs.cc.

References Array< base >::nelem().

Numeric last ( ConstVectorView  x  ) 

last

Returns the last value of a vector.

Returns:
The last value of x.
Parameters:
x A vector.
Author:
Patrick Eriksson
Date:
2000-06-27

Definition at line 183 of file math_funcs.cc.

References ConstVectorView::nelem().

Referenced by chk_single_scattering_data(), interp_gfield3(), mixer_matrix(), sensor_posAddRgeoid(), sensor_responseAntenna(), sensor_responseBackend(), sensor_responseMixer(), and sensor_summation_vector().

void linspace ( Vector x,
const Numeric  start,
const Numeric  stop,
const Numeric  step 
)

linspace

Linearly spaced vector with specified spacing.

The first element of x is always start. The next value is start+step etc. Note that the last value can deviate from stop. The step can be both positive and negative. (in Matlab notation: start:step:stop)

Size of result is adjusted within this function!

Parameters:
x Output: linearly spaced vector
start first value in x
stop last value of x <= stop
step distance between values in x
Author:
Patrick Eriksson
Date:
2000-06-27

Definition at line 228 of file math_funcs.cc.

References Vector::resize().

Referenced by VectorLinSpace(), VectorLogSpace(), and ZaSatOccultation().

void nlinspace ( Vector x,
const Numeric  start,
const Numeric  stop,
const Index  n 
)

nlinspace

Linearly spaced vector with specified length.

Returns a vector equally and linearly spaced between start and stop of length n. (equals the Matlab function linspace)

The length must be > 1.

Parameters:
x Output: linearly spaced vector
start first value in x
stop last value of x <= stop
n length of x
Author:
Patrick Eriksson
Date:
2000-06-27

Definition at line 261 of file math_funcs.cc.

References Vector::resize().

Referenced by cloudboxSetEmpty(), doit_scat_fieldCalcLimb(), DoitAngularGridsSet(), DoitScatteringDataPrepare(), interpolate_raytracing_points(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), and VectorNLinSpace().

void nlogspace ( Vector x,
const Numeric  start,
const Numeric  stop,
const Index  n 
)

nlogspace

Logarithmically spaced vector with specified length.

Returns a vector logarithmically spaced vector between start and stop of length n (equals the Matlab function logspace)

The length must be > 1.

Parameters:
x Output: logarithmically spaced vector
start first value in x
stop last value of x <= stop
n length of x
Author:
Patrick Eriksson
Date:
2000-06-27

Definition at line 294 of file math_funcs.cc.

References Vector::resize().

Referenced by VectorNLogSpace().

Numeric sign ( const Numeric x  ) 

sign

Returns the sign of a numeric value.

The function returns 1 if the value is greater than zero, 0 if it equals zero and -1 if it is less than zero.

Returns:
The sign of x (see above).
Parameters:
x A vector.
Author:
Patrick Eriksson
Date:
2000-06-27

Definition at line 473 of file math_funcs.cc.

Referenced by do_gridcell_2d(), binostream::float2ieee_double(), binostream::float2ieee_single(), binistream::ieee_double2float(), binistream::ieee_single2float(), poslos2cart(), raytrace_2d_linear_euler(), and surface_specular_los().


Variable Documentation

const Numeric PI


Generated on Mon Mar 23 14:06:43 2009 for ARTS by  doxygen 1.5.6