SLIP  1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Todo List
File FITSWriter.hpp
Adding writing of multicomponents signals (this version can only write one component signals)
File NetCDFReader.hpp

Testing 4D containers

Adding reading of multicomponents variables (this version can only read one component per variable)

File NetCDFWriter.hpp

Adding 4D containers

Adding writing of multicomponents variables (this version can only write one component per variable)

Class slip::AddBorder
Compact code using update border
Example:
//read and image
I.read("lena.png");
std::size_t nb_row = I.rows();
std::size_t nb_col = I.cols();
std::size_t b_size = 1;
//Initialize AddBorder parameters
AddBorder b(slip::BORDER_TREATMENT_NEUMANN,b_size);
//create an enhanced image
slip::GrayscaleImage<double> tmp(nb_row+(2*b_size),nb_col+(2*b_size));
//Adds border
b(I.upper_left(),I.bottom_right(),tmp.upper_left());
Class slip::block3d< T, NP, NR, NC >
add iterator member functions to be compliant with other 3d slip interfaces.
Class slip::block4d< T, NS, NP, NR, NC >
add iterator member functions to be compliant with other 4d slip interfaces.
Member slip::const_component_iterator2d_range< MultiComponentContainer2D, N >::col_begin (size_type col) const
add assert
Member slip::const_component_iterator2d_range< MultiComponentContainer2D, N >::col_end (size_type col) const
add assert
Member slip::const_component_iterator2d_range< MultiComponentContainer2D, N >::row_begin (size_type row) const
add assert
Member slip::const_component_iterator2d_range< MultiComponentContainer2D, N >::row_end (size_type row) const
add assert
Member slip::const_iterator2d_box< T >::col_begin (size_type col) const
add assert
Member slip::const_iterator2d_box< T >::col_end (size_type col) const
add assert
Member slip::const_iterator2d_box< T >::row_begin (size_type row) const
add assert
Member slip::const_iterator2d_box< T >::row_end (size_type row) const
add assert
Member slip::const_iterator2d_range< T >::col_begin (size_type col) const
add assert
Member slip::const_iterator2d_range< T >::col_end (size_type col) const
add assert
Member slip::const_iterator2d_range< T >::row_begin (size_type row) const
add assert
Member slip::const_iterator2d_range< T >::row_end (size_type row) const
add assert
Member slip::const_iterator3d_box< T >::col_begin (size_t slice, size_type col) const
add assert
Member slip::const_iterator3d_box< T >::col_end (size_t slice, size_type col) const
add assert
Member slip::const_iterator3d_box< T >::operator[] (diff2d d) const
add assert
Member slip::const_iterator3d_box< T >::operator[] (int n) const
add assert
Member slip::const_iterator3d_box< T >::plane_bottom_right (const slip::PLANE_ORIENTATION p, const size_type xp)
add assert
Member slip::const_iterator3d_box< T >::plane_upper_left (const slip::PLANE_ORIENTATION p, const size_type xp)
add assert
Member slip::const_iterator3d_box< T >::row_begin (size_t slice, size_type row) const
add assert
Member slip::const_iterator3d_box< T >::row_end (size_t slice, size_type row) const
add assert
Member slip::const_iterator3d_box< T >::slice_begin (size_type row, size_type col) const
add assert
Member slip::const_iterator3d_box< T >::slice_end (size_type row, size_type col) const
add assert
Member slip::const_iterator3d_plane< Container3D >::operator[] (int n) const
add assert
Member slip::const_iterator3d_range< T >::col_begin (size_type slice, size_type col) const
add assert
Member slip::const_iterator3d_range< T >::col_end (size_type slice, size_type col) const
add assert
Member slip::const_iterator3d_range< T >::const_iterator3d_range ()
VERIFY
Member slip::const_iterator3d_range< T >::operator[] (diff2d d) const
add assert
Member slip::const_iterator3d_range< T >::operator[] (int n) const
add assert
Member slip::const_iterator3d_range< T >::row_begin (size_type slice, size_type row) const
add assert
Member slip::const_iterator3d_range< T >::row_end (size_type slice, size_type row) const
add assert
Member slip::const_iterator4d_box< Container4D >::col_begin (size_type slab, size_type slice, size_type col) const
add assert
Member slip::const_iterator4d_box< Container4D >::col_end (size_type slab, size_type slice, size_type col) const
add assert
Member slip::const_iterator4d_box< Container4D >::operator[] (diff3d d) const
add assert
Member slip::const_iterator4d_box< Container4D >::operator[] (diff2d d) const
add assert
Member slip::const_iterator4d_box< Container4D >::operator[] (int n) const
add assert
Member slip::const_iterator4d_box< Container4D >::row_begin (size_type slab, size_type slice, size_type row) const
add assert
Member slip::const_iterator4d_box< Container4D >::row_end (size_type slab, size_type slice, size_type row) const
add assert
Member slip::const_iterator4d_box< Container4D >::slab_begin (size_type slice, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_box< Container4D >::slab_end (size_type slice, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_box< Container4D >::slice_begin (size_type slab, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_box< Container4D >::slice_end (size_type slab, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_range< Container4D >::col_begin (size_type slab, size_type slice, size_type col) const
add assert
Member slip::const_iterator4d_range< Container4D >::col_end (size_type slab, size_type slice, size_type col) const
add assert
Member slip::const_iterator4d_range< Container4D >::operator[] (diff3d d) const
add assert
Member slip::const_iterator4d_range< Container4D >::operator[] (diff2d d) const
add assert
Member slip::const_iterator4d_range< Container4D >::operator[] (int n) const
add assert
Member slip::const_iterator4d_range< Container4D >::row_begin (size_type slab, size_type slice, size_type row) const
add assert
Member slip::const_iterator4d_range< Container4D >::row_end (size_type slab, size_type slice, size_type row) const
add assert
Member slip::const_iterator4d_range< Container4D >::slab_begin (size_type slice, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_range< Container4D >::slab_end (size_type slice, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_range< Container4D >::slice_begin (size_type slab, size_type row, size_type col) const
add assert
Member slip::const_iterator4d_range< Container4D >::slice_end (size_type slab, size_type row, size_type col) const
add assert
Member slip::decompose_RQ (const slip::Matrix< Type > &M, slip::Matrix< Type > &K, slip::Matrix< Type > &R, slip::Vector3d< Type > &c)
Is it necessary to negate R at the end?
Member slip::derivative_4d (RandomAccessIterator4d1 I_ffup, RandomAccessIterator4d1 I_last_back_bot, const slip::Point4d< T > &grid_step, slip::FOUR_DIM_DIRECTION der_dir, const std::size_t der_order, const std::size_t sch_order, RandomAccessIterator4d2 R_ffup, RandomAccessIterator4d2 R_last_back_bot)
Unit tests has not been performed for this function.
Member slip::eigen (const Matrix1 &A, Vector1 &E, bool sort=false)

Add the eigen vectors

optimize schur transform

Example:
double db[] ={3.0, 7.0, 5.0, 10.0, 7.0, 8.0, 15.0, 11.0, 12.0};
std::cout<<" Mb \n"<<Mb<<std::endl;
slip::eigen(Mb,Eigb,true);
std::cout<<" Eigenvalues\n"<<Eigb<<std::endl;
Member slip::finite_diff_coef (const std::size_t sch_ord, const std::size_t sch_shift, const typename Container2D::value_type &h, Container2D &Dinv)
change from finite differences matrix inversion to analytic stencil
Member slip::finite_diff_coef (const std::size_t sch_ord, const std::size_t sch_shift, Container2D &Dinv)
change from finite differences matrix inversion to analytic stencil
Class slip::FITSReader< Container, T, Nb_components, Nb_block, Dim >
Extensions for being able to read extended HDU (different spectrum images for example)
See Also
http://fits.gsfc.nasa.gov/
Member slip::Francis_Schur_decomp (HessenbergMatrix &H, Vector &Eig, Matrix &Z, slip::Box2d< int > &box, typename slip::lin_alg_traits< typename HessenbergMatrix::value_type >::value_type precision, bool compute_Z)
optimize Francis_Schur_decomp
Example:
double d[] ={3.0, 7.0, 5.0, 10.0, 7.0, 8.0, 15.0, 11.0, 12.0};
slip::Box2d<int> box(0,0,2,2);
slip::Francis_Schur_decomp(H,Eig,Z,box,10E-10,true);
std::cout<<" H \n"<<std::endl;
std::cout<< H <<std::endl;
// 25.6119 9.86248 4.17549
// 0 -3.46543 1.81572
// -1.80176e-27 0 -0.146469
std::cout<<" Eigenvalues\n"<<std::endl;
std::cout<< Eig <<std::endl;
//((25.6119,0),(-3.46543,0),(-0.146469,0))
Member slip::getpars_Faugeras (const slip::Matrix< Type > &P, slip::Matrix< Type > &Mat)
optimize pseudo inverse...
Member slip::iterator3d_box< T >::col_begin (size_type slice, size_type col)
add assert
Member slip::iterator3d_box< T >::col_end (size_type slice, size_type col)
add assert
Member slip::iterator3d_box< T >::operator[] (diff2d d)
add assert
Member slip::iterator3d_box< T >::operator[] (int n) const
add assert
Member slip::iterator3d_box< T >::operator[] (int n)
add assert
Member slip::iterator3d_box< T >::plane_bottom_right (const slip::PLANE_ORIENTATION p, const size_type xp)
add assert
Member slip::iterator3d_box< T >::plane_upper_left (const slip::PLANE_ORIENTATION p, const size_type xp)
add assert
Member slip::iterator3d_box< T >::row_begin (size_type slice, size_type row)
add assert
Member slip::iterator3d_box< T >::row_end (size_type slice, size_type row)
add assert
Member slip::iterator3d_box< T >::slice_begin (size_type row, size_type col)
add assert
Member slip::iterator3d_box< T >::slice_end (size_type row, size_type col)
add assert
Member slip::iterator3d_plane< Container3D >::operator[] (int n)
add assert
Member slip::iterator3d_range< T >::col_begin (size_type slice, size_type col)
add assert
Member slip::iterator3d_range< T >::col_end (size_type slice, size_type col)
add assert
Member slip::iterator3d_range< T >::iterator3d_range ()
VERIFY
Member slip::iterator3d_range< T >::operator[] (diff2d d)
add assert
Member slip::iterator3d_range< T >::operator[] (int n)
add assert
Member slip::iterator3d_range< T >::row_begin (size_type slice, size_type row)
add assert
Member slip::iterator3d_range< T >::row_end (size_type slice, size_type row)
add assert
Member slip::iterator4d_box< Container4D >::col_begin (size_type slab, size_type slice, size_type col)
add assert
Member slip::iterator4d_box< Container4D >::col_end (size_type slab, size_type slice, size_type col)
add assert
Member slip::iterator4d_box< Container4D >::operator[] (diff2d d)
add assert
Member slip::iterator4d_box< Container4D >::operator[] (int n)
add assert
Member slip::iterator4d_box< Container4D >::operator[] (diff3d d)
add assert
Member slip::iterator4d_box< Container4D >::operator[] (int n) const
add assert
Member slip::iterator4d_box< Container4D >::row_begin (size_type slab, size_type slice, size_type row)
add assert
Member slip::iterator4d_box< Container4D >::row_end (size_type slab, size_type slice, size_type row)
add assert
Member slip::iterator4d_box< Container4D >::slab_begin (size_type slice, size_type row, size_type col)
add assert
Member slip::iterator4d_box< Container4D >::slab_end (size_type slice, size_type row, size_type col)
add assert
Member slip::iterator4d_box< Container4D >::slice_begin (size_type slab, size_type row, size_type col)
add assert
Member slip::iterator4d_box< Container4D >::slice_end (size_type slab, size_type row, size_type col)
add assert
Member slip::iterator4d_range< Container4D >::col_begin (size_type slab, size_type slice, size_type col)
add assert
Member slip::iterator4d_range< Container4D >::col_end (size_type slab, size_type slice, size_type col)
add assert
Member slip::iterator4d_range< Container4D >::operator[] (diff2d d)
add assert
Member slip::iterator4d_range< Container4D >::operator[] (diff3d d)
add assert
Member slip::iterator4d_range< Container4D >::operator[] (int n)
add assert
Member slip::iterator4d_range< Container4D >::row_begin (size_type slab, size_type slice, size_type row)
add assert
Member slip::iterator4d_range< Container4D >::row_end (size_type slab, size_type slice, size_type row)
add assert
Member slip::iterator4d_range< Container4D >::slab_begin (size_type slice, size_type row, size_type col)
add assert
Member slip::iterator4d_range< Container4D >::slab_end (size_type slice, size_type row, size_type col)
add assert
Member slip::iterator4d_range< Container4D >::slice_begin (size_type slab, size_type row, size_type col)
add assert
Member slip::iterator4d_range< Container4D >::slice_end (size_type slab, size_type row, size_type col)
add assert
Member slip::multi_threshold (InputIterator1 first, InputIterator1 last, RandomAccessIterator1 first_th, RandomAccessIterator1 last_th, RandomAccessIterator2 first_level, RandomAccessIterator2 last_level, OutputIterator result_first, OutputIterator result_last)
optimize
Member slip::MultivariatePolynomial< T, DIM >::evaluate (InputIterator first, InputIterator last) const

accelerate computation for simple values (0.0, 1.0, -1.0, i, -i...)

test with complex variables

specialize for float, double, long double and complex<float>...

Member slip::MultivariatePolynomial< T, DIM >::partial_evaluate (const std::size_t number, const T &val)

accelerate computation for simple values (0.0, 1.0, -1.0, i, -i...)

test with complex variables

specialize for float, double, long double and complex<float>...

Class slip::NetCDFReader< Container, T, Nb_components, Nb_block, Dim >
some changes has to be done for including 4D containers.
Note
see : http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-cxx/ for NetCDF API help
Class slip::Point< CoordType, DIM >
verify RandomAccessContainer Concepts (friend operator==...)
Class slip::Pyramid< Container >
add iterators, add comparison operators to be complient with the Container concept
Member slip::schur (const Matrix1 &M, Matrix2 &H, Matrix3 &Z, Vector &Eig, bool compute_Z, typename slip::lin_alg_traits< typename Matrix1::value_type >::value_type precision=typename slip::lin_alg_traits< typename Matrix1::value_type >::value_type(1.0E-12))
optimize Francis_Schur_decomp
Example:
double d[] ={3.0, 7.0, 5.0, 10.0, 7.0, 8.0, 15.0, 11.0, 12.0};
slip::schur(M,H,Z,Eig,true,10E-10);
std::cout<<" H \n"<<std::endl;
std::cout<< H <<std::endl;
std::cout<<" Z \n"<<std::endl;
std::cout<< Z <<std::endl;
std::cout<<" Eigenvalues\n"<<std::endl;
std::cout<< Eig <<std::endl;