src/vec.c File Reference

#include <it/math.h>
#include <it/vec.h>
#include <it/io.h>
#include <it/random.h>

Go to the source code of this file.

Functions

void * __Vec_new_alloc (size_t elem_size, idx_t length, idx_t length_max)
vec vec_new_alloc (idx_t length, idx_t length_max)
ivec ivec_new_alloc (idx_t length, idx_t length_max)
bvec bvec_new_alloc (idx_t length, idx_t length_max)
cvec cvec_new_alloc (idx_t length, idx_t length_max)
void * __Vec_new_realloc (void *V, size_t elem_size, idx_t length, idx_t length_max)
Vec __Vec_new (size_t elem_size, idx_t N)
vec vec_new (idx_t length)
ivec ivec_new (idx_t length)
bvec bvec_new (idx_t length)
cvec cvec_new (idx_t length)
void vec_delete (vec v)
void ivec_delete (ivec v)
void bvec_delete (bvec v)
void cvec_delete (cvec v)
idx_t vec_length (vec v)
idx_t ivec_length (ivec v)
idx_t bvec_length (bvec v)
idx_t cvec_length (cvec v)
idx_t vec_length_max (vec v)
idx_t ivec_length_max (ivec v)
idx_t bvec_length_max (bvec v)
idx_t cvec_length_max (cvec v)
vec _vec_set_length_max (vec v, idx_t N)
ivec _ivec_set_length_max (ivec v, idx_t N)
bvec _bvec_set_length_max (bvec v, idx_t N)
cvec _cvec_set_length_max (cvec v, idx_t N)
vec _vec_set_length (vec v, idx_t N)
ivec _ivec_set_length (ivec v, idx_t N)
bvec _bvec_set_length (bvec v, idx_t N)
cvec _cvec_set_length (cvec v, idx_t N)
Initialization of a vector or of some of its components


vec vec_init (vec v, double *buf, idx_t N)
ivec ivec_init (ivec v, int *buf, idx_t N)
bvec bvec_init (bvec v, byte *buf, idx_t N)
cvec cvec_init (cvec v, cplx *buf, idx_t N)
vec vec_set (vec v, double val)
ivec ivec_set (ivec v, int val)
bvec bvec_set (bvec v, byte val)
cvec cvec_set (cvec v, cplx val)
vec vec_set_between (vec v, idx_t i1, idx_t i2, double val)
ivec ivec_set_between (ivec v, idx_t i1, idx_t i2, int val)
bvec bvec_set_between (bvec v, idx_t i1, idx_t i2, byte val)
cvec cvec_set_between (cvec v, idx_t i1, idx_t i2, cplx val)
void vec_set_subvector (vec v, vec s, idx_t idx)
void ivec_set_subvector (ivec v, ivec s, idx_t idx)
void bvec_set_subvector (bvec v, bvec s, idx_t idx)
void cvec_set_subvector (cvec v, cvec s, idx_t idx)
vec vec_get_subvector (vec v, idx_t i1, idx_t i2)
ivec ivec_get_subvector (ivec v, idx_t i1, idx_t i2)
bvec bvec_get_subvector (bvec v, idx_t i1, idx_t i2)
cvec cvec_get_subvector (cvec v, idx_t i1, idx_t i2)
Vec __Vec_copy (Vec v1, Vec v2)
void vec_copy (vec dest, vec orig)
void ivec_copy (ivec dest, ivec orig)
void bvec_copy (bvec dest, bvec orig)
void cvec_copy (cvec dest, cvec orig)
Vec Vec_clone (Vec v)
vec vec_clone (vec v)
ivec ivec_clone (ivec v)
bvec bvec_clone (bvec v)
cvec cvec_clone (cvec v)
void vec_copy_from_ivec (vec dest, ivec orig)
void vec_copy_from_bvec (vec dest, bvec orig)
void vec_copy_from_cvec (vec dest, cvec orig)
void ivec_copy_from_vec (ivec dest, vec orig)
void ivec_copy_from_bvec (ivec dest, bvec orig)
void ivec_copy_from_cvec (ivec dest, cvec orig)
void bvec_copy_from_vec (bvec dest, vec orig)
void bvec_copy_from_ivec (bvec dest, ivec orig)
void bvec_copy_from_cvec (bvec dest, cvec orig)
void cvec_copy_from_vec (cvec dest, vec orig)
void cvec_copy_from_ivec (cvec dest, ivec orig)
void cvec_copy_from_bvec (cvec dest, bvec orig)
void vec_copy_mem (double *buf, vec v)
void ivec_copy_mem (int *buf, ivec v)
void bvec_copy_mem (byte *buf, bvec v)
void cvec_copy_mem (cplx *buf, cvec v)
void bvec_pack (byte *buf, bvec v)
void bvec_unpack (bvec v, byte *buf)
vec ivec_to_vec (ivec v)
bvec ivec_to_bvec (ivec v)
cvec ivec_to_cvec (ivec v)
ivec bvec_to_ivec (bvec v)
vec bvec_to_vec (bvec v)
cvec bvec_to_cvec (bvec v)
ivec vec_to_ivec (vec v)
bvec vec_to_bvec (vec v)
cvec vec_to_cvec (vec v)
vec vec_del (vec v, idx_t pos)
ivec ivec_del (ivec v, idx_t pos)
bvec bvec_del (bvec v, idx_t pos)
cvec cvec_del (cvec v, idx_t pos)
vec _vec_ins (vec v, idx_t pos, double elt)
ivec _ivec_ins (ivec v, idx_t pos, int elt)
bvec _bvec_ins (bvec v, idx_t pos, byte elt)
cvec _cvec_ins (cvec v, idx_t pos, cplx elt)
vec _vec_push (vec v, double elt)
ivec _ivec_push (ivec v, int elt)
bvec _bvec_push (bvec v, byte elt)
cvec _cvec_push (cvec v, cplx elt)
vec vec_pop (vec v)
ivec ivec_pop (ivec v)
bvec bvec_pop (bvec v)
cvec cvec_pop (cvec v)
double vec_head (vec v)
int ivec_head (ivec v)
byte bvec_head (bvec v)
cplx cvec_head (const cvec v)
double * __vec (vec v, idx_t i)
int * __ivec (ivec v, idx_t i)
byte__bvec (bvec v, idx_t i)
cplx__cvec (cvec v, idx_t i)
int vec_eq (vec v1, vec v2)
int ivec_eq (ivec v1, ivec v2)
int bvec_eq (bvec v1, bvec v2)
int cvec_eq (cvec v1, cvec v2)
int vec_geq (vec v1, vec v2)
int ivec_geq (ivec v1, ivec v2)
int bvec_geq (bvec v1, bvec v2)
void vec_incr (vec v, double a)
void vec_decr (vec v, double a)
void vec_mul_by (vec v, double a)
void vec_div_by (vec v, double a)
void ivec_incr (ivec v, int a)
void ivec_decr (ivec v, int a)
void ivec_mul_by (ivec v, int a)
void ivec_div_by (ivec v, int a)
void cvec_incr_real (cvec v, double a)
void cvec_decr_real (cvec v, double a)
void cvec_mul_by_real (cvec v, double a)
void cvec_div_by_real (cvec v, double a)
void cvec_conj (cvec v)
void cvec_incr (cvec v, cplx a)
void cvec_decr (cvec v, cplx a)
void cvec_mul_by (cvec v, cplx a)
void cvec_div_by (cvec v, cplx a)
void vec_add (vec v1, vec v2)
void vec_sub (vec v1, vec v2)
void vec_mul (vec v1, vec v2)
void vec_div (vec v1, vec v2)
void ivec_add (ivec v1, ivec v2)
void ivec_sub (ivec v1, ivec v2)
void ivec_mul (ivec v1, ivec v2)
void ivec_div (ivec v1, ivec v2)
void cvec_add (cvec v1, cvec v2)
void cvec_sub (cvec v1, cvec v2)
void cvec_mul (cvec v1, cvec v2)
void cvec_div (cvec v1, cvec v2)
void cvec_conj_mul (cvec v1, cvec v2)
vec vec_new_add (vec v1, vec v2)
vec vec_new_sub (vec v1, vec v2)
vec vec_new_mul (vec v1, vec v2)
vec vec_new_div (vec v1, vec v2)
ivec ivec_new_add (ivec v1, ivec v2)
ivec ivec_new_sub (ivec v1, ivec v2)
ivec ivec_new_mul (ivec v1, ivec v2)
ivec ivec_new_div (ivec v1, ivec v2)
double vec_inner_product (vec v1, vec v2)
double vec_inner_product_robust (vec v1, vec v2)
int ivec_inner_product (ivec v1, ivec v2)
double vecivec_inner_product (vec v1, ivec v2)
int bvecivec_inner_product (bvec v1, ivec v2)
void vec_neg (vec v)
void ivec_neg (ivec v)
void cvec_neg (cvec v)
void cvec_abssqr (cvec v)
void vec_sqr (vec v)
void ivec_sqr (ivec v)
void vec_sqrt (vec v)
void vec_log (vec v)
void vec_log10 (vec v)
void vec_exp (vec v)
void vec_abs (vec v)
void ivec_abs (ivec v)
vec vec_new_abs (vec v)
ivec ivec_new_abs (ivec v)
vec cvec_new_abs (cvec v)
void vec_pow (vec v, double a)
void vec_normalize (vec v, double nr)
vec vec_new_pow (vec v, double a)
vec vec_new_normalize (vec v, double nr)
int ivec_min (ivec v)
int ivec_max (ivec v)
idx_t ivec_min_index (ivec v)
idx_t ivec_max_index (ivec v)
double ivec_mean (ivec v)
double vec_sum (vec v)
double vec_sum_robust (vec v)
int ivec_sum (ivec v)
cplx cvec_sum (cvec v)
vec vec_cum_sum (vec v)
ivec ivec_cum_sum (ivec v)
cvec cvec_cum_sum (cvec v)
double vec_sum_sqr (vec v)
double vec_sum_between (vec v, idx_t i1, idx_t i2)
int ivec_sum_between (ivec v, idx_t i1, idx_t i2)
cplx cvec_sum_between (cvec v, idx_t i1, idx_t i2)
double vec_min (vec v)
double vec_max (vec v)
idx_t vec_min_index (vec v)
idx_t vec_max_index (vec v)
vec vec_k_min_between (vec v, int k, idx_t a, idx_t b)
vec vec_k_min (vec v, int k)
vec vec_k_max_between (vec v, int k, idx_t a, idx_t b)
vec vec_k_max (vec v, int k)
ivec ivec_k_min_between (ivec v, int k, idx_t a, idx_t b)
ivec ivec_k_min (ivec v, int k)
ivec ivec_k_max_between (ivec v, int k, idx_t a, idx_t b)
ivec ivec_k_max (ivec v, int k)
ivec vec_k_min_index_between (vec v, int k, idx_t a, idx_t b)
ivec vec_k_min_index (vec v, int k)
ivec vec_k_max_index_between (vec v, int k, idx_t a, idx_t b)
ivec vec_k_max_index (vec v, int k)
ivec ivec_k_min_index_between (ivec v, int k, idx_t a, idx_t b)
ivec ivec_k_min_index (ivec v, int k)
ivec ivec_k_max_index_between (ivec v, int k, idx_t a, idx_t b)
ivec ivec_k_max_index (ivec v, int k)
double vec_mean (vec v)
double vec_mean_robust (vec v)
int ivec_median (ivec v)
double vec_median (vec v)
double vec_variance (vec v)
double vec_variance_robust (vec v)
double vec_cov (vec v1, vec v2)
double vec_norm (vec v, double n)
double ivec_norm (ivec v, int n)
void vec_apply_function (vec v, it_function_t function, it_args_t args)
vec vec_new_apply_function (vec v, it_function_t function, it_args_t args)
ivec ivec_apply_function (ivec v, it_ifunction_t function, it_args_t args)
ivec ivec_new_apply_function (ivec v, it_ifunction_t function, it_args_t args)
void vec_reverse (vec v)
void ivec_reverse (ivec v)
void bvec_reverse (bvec v)
void cvec_reverse (cvec v)
vec vec_new_reverse (vec v)
ivec ivec_new_reverse (ivec v)
bvec bvec_new_reverse (bvec v)
cvec cvec_new_reverse (cvec v)
idx_t vec_find_first (vec v, double a)
idx_t ivec_find_first (ivec v, int a)
idx_t bvec_find_first (bvec v, byte a)
idx_t cvec_find_first (cvec v, cplx a)
ivec vec_find (vec v, double a)
ivec ivec_find (ivec v, int a)
ivec bvec_find (bvec v, byte a)
ivec cvec_find (cvec v, cplx a)
idx_t vec_find_sorted (vec v, double a)
idx_t ivec_find_sorted (ivec v, int a)
idx_t bvec_find_sorted (bvec v, byte a)
ivec vec_replace (vec v, double a, double b)
ivec ivec_replace (ivec v, int a, int b)
ivec bvec_replace (bvec v, byte a, byte b)
ivec cvec_replace (cvec v, cplx a, cplx b)
idx_t vec_count (vec v, double a)
idx_t bvec_count (bvec v, byte a)
idx_t ivec_count (ivec v, int a)
idx_t cvec_count (cvec v, cplx a)
vec vec_new_concat (vec v1, vec v2)
ivec ivec_new_concat (ivec v1, ivec v2)
bvec bvec_new_concat (bvec v1, bvec v2)
cvec cvec_new_concat (cvec v1, cvec v2)
vec vec_new_unique (vec v)
ivec ivec_new_unique (ivec v)
bvec bvec_new_unique (bvec v)
vec vec_new_union (vec v1, vec v2)
ivec ivec_new_union (ivec v1, ivec v2)
bvec bvec_new_union (bvec v1, bvec v2)
vec vec_new_intersection (vec v1, vec v2)
ivec ivec_new_intersection (ivec v1, ivec v2)
bvec bvec_new_intersection (bvec v1, bvec v2)
vec vec_index_by (vec v, ivec idx)
ivec ivec_index_by (ivec v, ivec idx)
bvec bvec_index_by (bvec v, ivec idx)
cvec cvec_index_by (cvec v, ivec idx)
void Vec_sort (Vec v, int(*elem_leq)(const void *, const void *))
ivec Vec_sort_index (Vec v, int(*elem_leq_idx)(const void *, const void *))
static int double_leq (const void *d1, const void *d2)
static int double_leq_index (const void *d1, const void *d2)
void vec_sort (vec v)
ivec vec_sort_index (vec v)
static int int_leq (const void *d1, const void *d2)
static int int_leq_index (const void *d1, const void *d2)
void ivec_sort (ivec v)
ivec ivec_sort_index (ivec v)
static int byte_leq (const void *d1, const void *d2)
static int byte_leq_index (const void *d1, const void *d2)
void bvec_sort (bvec v)
ivec bvec_sort_index (bvec v)
void vec_void (vec v)
void ivec_void (ivec v)
void bvec_void (bvec v)
void cvec_void (cvec v)
void vec_zeros (vec v)
void ivec_zeros (ivec v)
void bvec_zeros (bvec v)
void cvec_zeros (cvec v)
vec vec_new_zeros (idx_t N)
ivec ivec_new_zeros (idx_t N)
bvec bvec_new_zeros (idx_t N)
cvec cvec_new_zeros (idx_t N)
void vec_ones (vec v)
void ivec_ones (ivec v)
void bvec_ones (bvec v)
void cvec_ones (cvec v)
vec vec_new_ones (idx_t N)
ivec ivec_new_ones (idx_t N)
bvec bvec_new_ones (idx_t N)
cvec cvec_new_ones (idx_t N)
void vec_range (vec v)
void ivec_range (ivec v)
void bvec_range (bvec v)
void cvec_range (cvec v)
void vec_1N (vec v)
void ivec_1N (ivec v)
void bvec_1N (bvec v)
void cvec_1N (cvec v)
void vec_arithm (vec v, double start, double incr)
void ivec_arithm (ivec v, int start, int incr)
void bvec_arithm (bvec v, byte start, byte incr)
void cvec_arithm (cvec v, cplx start, cplx incr)
void vec_geom (vec v, double start, double r)
void ivec_geom (ivec v, int start, int r)
void bvec_geom (bvec v, byte start, byte r)
void cvec_geom (cvec v, cplx start, cplx r)
vec vec_new_void ()
ivec ivec_new_void ()
bvec bvec_new_void ()
cvec cvec_new_void ()
vec vec_new_set (double val, idx_t N)
ivec ivec_new_set (int val, idx_t N)
bvec bvec_new_set (byte val, idx_t N)
cvec cvec_new_set (cplx val, idx_t N)
vec vec_new_1N (idx_t N)
ivec ivec_new_1N (idx_t N)
bvec bvec_new_1N (idx_t N)
cvec cvec_new_1N (idx_t N)
vec vec_new_range (idx_t N)
ivec ivec_new_range (idx_t N)
bvec bvec_new_range (idx_t N)
cvec cvec_new_range (idx_t N)
vec vec_new_arithm (double start, double incr, idx_t N)
ivec ivec_new_arithm (int start, int incr, idx_t N)
bvec bvec_new_arithm (byte start, byte incr, idx_t N)
cvec cvec_new_arithm (cplx start, cplx incr, idx_t N)
vec vec_new_geom (double start, double r, idx_t N)
ivec ivec_new_geom (int start, int r, idx_t N)
bvec bvec_new_geom (byte start, byte r, idx_t N)
cvec cvec_new_geom (cplx start, cplx r, idx_t N)
cvec cvec_new_unit_roots (idx_t N)
vec vec_conv (vec v1, vec v2)
ivec ivec_conv (ivec v1, ivec v2)
void vec_rand (vec v)
void vec_randn (vec v)
vec vec_new_rand (idx_t n)
vec vec_new_randn (idx_t n)
ivec ivec_new_perm (size_t len)
void vec_to_spvec (vec v, ivec *svi_out, vec *sv_out)
void ivec_to_spivec (ivec v, ivec *svi_out, ivec *sv_out)
vec spvec_to_vec (ivec svi, vec sv, int n)
ivec spivec_to_ivec (ivec svi, ivec sv, int n)
double spvec_inner_product (ivec svi1, vec sv1, ivec svi2, vec sv2)
int spivec_inner_product (ivec svi1, ivec sv1, ivec svi2, ivec sv2)

Variables

static Vec_header_t __vec_null
static Vec_header_t __ivec_null
static Vec_header_t __bvec_null
static Vec_header_t __cvec_null
vec const vec_null = (vec) (&__vec_null + 1)
ivec const ivec_null = (ivec) (&__ivec_null + 1)
bvec const bvec_null = (bvec) (&__bvec_null + 1)
cvec const cvec_null = (cvec) (&__cvec_null + 1)


Function Documentation

void* __Vec_new_alloc ( size_t  elem_size,
idx_t  length,
idx_t  length_max 
)

void* __Vec_new_realloc ( void *  V,
size_t  elem_size,
idx_t  length,
idx_t  length_max 
)

Definition at line 138 of file vec.c.

References __Vec_new_alloc(), Vec_delete, and Vec_length.


Variable Documentation

Initial value:

 {
  0,        
  0,        
  NULL,       
  sizeof (byte),    
}

Definition at line 48 of file vec.c.

Initial value:

 {
  0,        
  0,        
  NULL,       
  sizeof (cplx),    
}

Definition at line 54 of file vec.c.

Initial value:

 {
  0,        
  0,        
  NULL,       
  sizeof (int),     
}

Definition at line 42 of file vec.c.

Initial value:

 {
  0,        
  0,        
  NULL,       
  sizeof (double),    
}

Definition at line 36 of file vec.c.


Hosted by
Copyright (C) 2005-2006 Hervé Jégou
Vivien Chappelier
Francois Cayre
libit logo courtesy of Jonathan Delhumeau