Developer documentation

array.hpp File Reference
#include <cassert>
#include <realroot/assign.hpp>

Go to the source code of this file.

Namespaces

 mmx
 
 mmx::array
 Module for generic functions on vectors. Generic implementations for vectors are gathered in the namespace array. These are generic functions, that can be used to build new linear classes. The type R must provide the following definitions or methods:
 

Functions

template<class OS , class R >
OS & mmx::array::print (OS &os, const R &v)
 Output function for general vectors: [v1, v2, ...]. More...
 
template<class OS , class R >
OS & mmx::array::print (OS &os, const R &v, unsigned sz)
 Output function for general vectors: [v1, v2, ...]. More...
 
template<class IS , class R >
IS & mmx::array::read (IS &is, R &V)
 
template<class V1 , class V2 >
bool mmx::array::equal_n (const V1 &v1, const V2 &v2, int n)
 
template<class V1 , class V2 >
bool mmx::array::equal (const V1 &v1, const V2 &v2)
 
template<class V , class C >
void mmx::array::init_n (V &a, const C &v, int n)
 
template<class V , class C >
void mmx::array::set_cst (V &a, const C &v)
 Set all the entries of a to the values v. More...
 
template<class V , class W >
void mmx::array::set (V &a, const W &b)
 
template<class V >
void mmx::array::reverse_n (V &v, int a, int n)
 Reverse the entries of v, from the index a to n-1. More...
 
template<class V >
void mmx::array::reverse (V &v, int n)
 
template<class V , class I >
void mmx::array::reverse (V &v, I d)
 Reverse the entries of v, from the index 0 to d-1. More...
 
template<class V , class W >
void mmx::array::neg_range (V &r, const W &w, int a, int b)
 
template<class V , class W >
void mmx::array::neg_range (V &r, int a, int b)
 
template<class VI >
void mmx::array::neg_i (VI a, VI eda)
 
template<class VI >
void mmx::array::neg_i (VI a, VI eda, VI b)
 
template<class V >
void mmx::array::neg (V &v)
 
template<class V >
void mmx::array::neg (V &a, const V &b)
 
template<class V , class W >
void mmx::array::copy_range (V &v, const W &w, int a, int b)
 
template<class V , class W >
void mmx::array::add_n (V &a, const W &b, int n)
 
template<class VI , class WI >
void mmx::array::add_i (VI a, VI ea, WI b)
 
template<class V , class W >
void mmx::array::add (V &a, const W &b)
 Addition of two vectors. More...
 
template<class V , class W , class X >
void mmx::array::add_n (V &a, const W &b, const X &c, int n)
 
template<class V , class W , class X >
void mmx::array::add_g (V &r, const W &a, const X &b)
 
template<class V , class W , class X >
void mmx::array::add (V &r, const W &a, const X &b)
 
template<class V >
void mmx::array::add (V &r, const V &a, const V &b)
 
template<class V , class W >
void mmx::array::sub_n (V &a, const W &b, int n)
 
template<class V , class W >
void mmx::array::sub (V &a, const W &b)
 Substraction of two vectors. More...
 
template<class V , class W , class X >
void mmx::array::sub_n (V &a, const W &b, const X &c, int n)
 
template<class V , class W , class X >
void mmx::array::sub_g (V &r, const W &a, const X &b)
 
template<class V , class W , class X >
void mmx::array::sub (V &r, const W &a, const X &b)
 
template<class V >
void mmx::array::sub (V &r, const V &a, const V &b)
 
template<class V , class W >
void mmx::array::mul_ext_n (V &a, const W &c, int n)
 
template<class V , class W , class S >
void mmx::array::mul_ext_n (V &a, const W &b, const S &c, int n)
 
template<class VI , class W >
void mmx::array::mul_ext_i (VI bga, VI eda, const W &c)
 
template<class VI , class VII , class W >
void mmx::array::mul_ext_i (VI bga, VI eda, VII bgb, const W &c)
 
template<class V , class W >
void mmx::array::mul_ext (V &a, const V &b, const W &c)
 Scalar multiplication. More...
 
template<class V , class W >
void mmx::array::mul_ext (V &a, const W &c)
 
template<class V , class SC >
void mmx::array::div_ext_n (V &a, const SC &sc, int n)
 
template<class V1 , class V2 , class SC >
void mmx::array::div_ext_n (V1 &a, const V2 &b, const SC &sc, int n)
 
template<class VI , class SC >
void mmx::array::div_ext_i (VI bga, VI eda, const SC &sc)
 
template<class VI , class SC >
void mmx::array::div_ext_i (VI a, VI eda, VI b, const SC &sc)
 
template<class V , class SC >
void mmx::array::div_ext (V &a, const V &b, const SC &sc)
 Scalar division. More...
 
template<class V , class W >
void mmx::array::div_ext (V &a, const W &c)
 Scalar division. More...
 
template<class V , class W >
void mmx::array::div (V &a, const W &c)
 Inplace scalar division. More...
 
template<class R , class S , class C >
void mmx::array::apply_mult (R &result, const S &a, const C &m)
 
template<class C , class R >
C mmx::array::norm (const R &v)
 The $L_{2}$ norm for vectors. More...
 
template<class C , class R >
C mmx::array::norm (const R &v, int p)
 Norm $L_{p}$ of a vector. More...
 
template<class R , class S >
R::value_type mmx::array::innerprod_n (const S &v, const R &w, unsigned n)
 Innerproduct of two vectors. More...
 
template<class R , class S >
R::value_type mmx::array::innerprod (const S &v, const R &w)
 
template<class R >
R::value_type mmx::array::max_abs (const R &v)
 
template<class U , class R >
void mmx::array::lcm_denominator (U &r, const R &v)
 
template<typename V >
void mmx::array::reverse (V &v)
 
template<class Ia , class Ib >
void mmx::array::assign_i (Ia a, Ia eda, Ib b)
 
template<class Ra , class Rb >
void mmx::array::assign (Ra &a, const Rb &b)
 
template<class R , class C >
void mmx::array::vaddsc (R &r, const C &x)
 
Home