[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |

__Function:__void**vector_add_dimensions***(pkint_t**`q2`, const pkint_t*`q1`, size_t`size`, int`dimsup`)- If
`dimsup`is positive, adds`dimsup`

dimensions at the end of`q1`and puts the result in`q2`; If`dimsup`is negative, deletes the`-dimsup`

last dimensions of`q1`and puts the result in`q2`.`q2`is supposed to have a sufficient size.

__Function:__void**vector_add_dimensions_multi***(pkint_t**`q2`, const pkint_t*`q1`, size_t`size`, const dimsup_t*`tab`, int`multi`)- Fills the vector
`q2`by inserting new columns with null values in vector`q1`, according to the array`tab`of size`multi`.For each element

`dimsup`

of that array,`dimsup.nbdims`

dimensions are inserted starting from rank`dimsup.pos`

(of the initial vector). The coefficient`q1[polka_dec+dimsup.pos]`

is pushed on the right. For instance, if the array`tab`is`[(0,2);(1,1);(2,3)]`

,- the vector
`[d,b, a_0, a_1, a_2,a_3,...,a_{d-1}]`

- becomes
`[d,b,0,0,a_0,0,a_1,0,0,0,a_2,a_3,...,a_{d-1}]`

.

`[d,b,s,a_0,...,a_{d-1}]`

becomes`[d,b,s,0,0,a_0,0,a_1,0,0,0,,a_2,a_3,...,a_{d-1}]`

.The array

`tab`is supposed to be sorted in ascending order w.r.t.`tab[i].pos`

.`q2`is supposed to have a sufficient size.

__Function:__void**vector_remove_dimensions_multi***(pkint_t**`q2`, const pkint_t*`q1`, size_t`size`, const dimsup_t*`tab`, int`multi`)- Fills the vector
`q2`by deleting some columns in vector`q1`, according to the array`tab`of size`multi`.For each element

`dimsup`

of that array,`dimsup.nbdims`

dimensions are deleted starting from rank`dimsup.pos`

(of the initial vector). For instance, if the array`tab`is`[(0,2);(3,1);(5,3)]`

,- the vector
`[d,b,a_0,a_1,a_2,a_3,a_4,a_5,a_6,a_7,a_8,...,a_{d-1}]`

- becomes
`[d,b, a_2, a_4, a_8, ...,a_{d-1}]`

.

`tab`is supposed to be sorted in ascending order w.r.t.`tab[i].pos`

.`q2`is supposed to have a sufficient size.

__Function:__void**vector_add_permute_dimensions***(pkint_t**`newq`, const pkint_t*`q`, size_t`size`, int`dimsup`, const int*`permut`)`dimsup`is supposed to be positive or null. Add`dimsup`dimensions to`q`and apply the permutation`permutation`. The result is stored in`newq`. The array`permutation`is supposed to be of size`size+dimsup-polka_dec`

.The permutation

`permutation`defines a permutation (i.e., a bijection) from`[0..(size+dimsup-polka_dec)-1`

to itself. BE CAUTIOUS: value`0`

in the permutation means columns`polka_dec`

.

__Function:__void**vector_permute_remove_dimensions***(pkint_t**`newq`, const pkint_t*`q`, size_t`size`, int`dimsup`, const int*`permut`)`dimsup`is supposed to be strictly positive. Apply the permutation`permutation`to`q`, then delete the last`dimsup`dimensions. The result is stored in`newq`. The array`permutation`is supposed to of size`size-dimsup-polka_dec`

.The permutation

`permutation`defines a permutation (i.e., a bijection) from`[0..(size-polka_dec)-1`

to itself. BE CAUTIOUS: value`0`

in the permutation means columns`polka_dec`

.

[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |

This document was generated on