PALISADE Lattice Crypto Library  1.11.9
A lattice crypto library for software engineers by software engineers.
Public Member Functions | Static Public Member Functions | Friends | List of all members
bigintfxd::BigVectorImpl< IntegerType > Class Template Reference

The class for representing vectors of big binary integers. More...

#include <mubintvecfxd.h>

Inheritance diagram for bigintfxd::BigVectorImpl< IntegerType >:
Inheritance graph
[legend]
Collaboration diagram for bigintfxd::BigVectorImpl< IntegerType >:
Collaboration graph
[legend]

Public Member Functions

 BigVectorImpl ()
 
 BigVectorImpl (usint length, const IntegerType &modulus=0)
 
 BigVectorImpl (const BigVectorImpl &bigVector)
 
 BigVectorImpl (BigVectorImpl &&bigVector)
 
 BigVectorImpl (usint length, const IntegerType &modulus, std::initializer_list< std::string > rhs)
 
 BigVectorImpl (usint length, const IntegerType &modulus, std::initializer_list< uint64_t > rhs)
 
virtual ~BigVectorImpl ()
 
const BigVectorImploperator= (const BigVectorImpl &rhs)
 
const BigVectorImploperator= (BigVectorImpl &&rhs)
 
const BigVectorImploperator= (std::initializer_list< std::string > rhs)
 
const BigVectorImploperator= (std::initializer_list< uint64_t > rhs)
 
const BigVectorImploperator= (uint64_t val)
 
IntegerType & at (size_t i)
 
const IntegerType & at (size_t i) const
 
IntegerType & operator[] (size_t idx)
 
const IntegerType & operator[] (size_t idx) const
 
void SetModulus (const IntegerType &value)
 
void SwitchModulus (const IntegerType &value)
 
const IntegerType & GetModulus () const
 
size_t GetLength () const
 
BigVectorImpl Mod (const IntegerType &modulus) const
 
const BigVectorImplModEq (const IntegerType &modulus)
 
BigVectorImpl ModAdd (const IntegerType &b) const
 
const BigVectorImplModAddEq (const IntegerType &b)
 
BigVectorImpl ModAddAtIndex (usint i, const IntegerType &b) const
 
const BigVectorImplModAddAtIndexEq (usint i, const IntegerType &b)
 
BigVectorImpl ModAdd (const BigVectorImpl &b) const
 
const BigVectorImplModAddEq (const BigVectorImpl &b)
 
BigVectorImpl ModSub (const IntegerType &b) const
 
const BigVectorImplModSubEq (const IntegerType &b)
 
BigVectorImpl ModSub (const BigVectorImpl &b) const
 
const BigVectorImplModSubEq (const BigVectorImpl &b)
 
BigVectorImpl ModMul (const IntegerType &b) const
 
const BigVectorImplModMulEq (const IntegerType &b)
 
BigVectorImpl ModMul (const BigVectorImpl &b) const
 
const BigVectorImplModMulEq (const BigVectorImpl &b)
 
BigVectorImpl ModExp (const IntegerType &b) const
 
const BigVectorImplModExpEq (const IntegerType &b)
 
BigVectorImpl ModInverse () const
 
const BigVectorImplModInverseEq ()
 
BigVectorImpl ModByTwo () const
 
const BigVectorImplModByTwoEq ()
 
BigVectorImpl MultWithOutMod (const BigVectorImpl &b) const
 
const BigVectorImplMultWithOutModEq (const BigVectorImpl &b)
 
BigVectorImpl MultiplyAndRound (const IntegerType &p, const IntegerType &q) const
 
const BigVectorImplMultiplyAndRoundEq (const IntegerType &p, const IntegerType &q)
 
BigVectorImpl DivideAndRound (const IntegerType &q) const
 
const BigVectorImplDivideAndRoundEq (const IntegerType &q)
 
BigVectorImpl GetDigitAtIndexForBase (usint index, usint base) const
 
template<class Archive >
std::enable_if<!cereal::traits::is_text_archive< Archive >::value, void >::type save (Archive &ar, std::uint32_t const version) const
 
template<class Archive >
std::enable_if< cereal::traits::is_text_archive< Archive >::value, void >::type save (Archive &ar, std::uint32_t const version) const
 
template<class Archive >
std::enable_if<!cereal::traits::is_text_archive< Archive >::value, void >::type load (Archive &ar, std::uint32_t const version)
 
template<class Archive >
std::enable_if< cereal::traits::is_text_archive< Archive >::value, void >::type load (Archive &ar, std::uint32_t const version)
 
std::string SerializedObjectName () const
 
- Public Member Functions inherited from lbcrypto::BigVectorInterface< BigVectorImpl< IntegerType >, IntegerType >
const BigVectorImpl< IntegerType > & operator= (const BigVectorImpl< IntegerType > &vec)
 
const BigVectorImpl< IntegerType > & operator= (BigVectorImpl< IntegerType > &&vec)
 
const BigVectorImpl< IntegerType > & operator= (std::initializer_list< std::string > strvec)
 
const BigVectorImpl< IntegerType > & operator= (std::initializer_list< uint64_t > vec)
 
const BigVectorImpl< IntegerType > & operator= (uint64_t val)
 
IntegerType & at (size_t idx)
 
const IntegerType & at (size_t idx) const
 
IntegerType & operator[] (size_t idx)
 
const IntegerType & operator[] (size_t idx) const
 
void SetModulus (const IntegerType &value)
 
void SwitchModulus (const IntegerType &value)
 
const IntegerType & GetModulus () const
 
size_t GetLength () const
 
BigVectorImpl< IntegerType > Mod (const IntegerType &modulus) const
 
const BigVectorImpl< IntegerType > & ModEq (const IntegerType &modulus)
 
BigVectorImpl< IntegerType > ModAdd (const IntegerType &b) const
 
BigVectorImpl< IntegerType > ModAdd (const BigVectorImpl< IntegerType > &b) const
 
const BigVectorImpl< IntegerType > & ModAddEq (const IntegerType &b)
 
const BigVectorImpl< IntegerType > & ModAddEq (const BigVectorImpl< IntegerType > &b)
 
BigVectorImpl< IntegerType > ModAddAtIndex (usint i, const IntegerType &b) const
 
const BigVectorImpl< IntegerType > & ModAddAtIndexEq (usint i, const IntegerType &b)
 
BigVectorImpl< IntegerType > ModSub (const IntegerType &b) const
 
BigVectorImpl< IntegerType > ModSub (const BigVectorImpl< IntegerType > &b) const
 
const BigVectorImpl< IntegerType > & ModSubEq (const IntegerType &b)
 
const BigVectorImpl< IntegerType > & ModSubEq (const BigVectorImpl< IntegerType > &b)
 
BigVectorImpl< IntegerType > ModMul (const IntegerType &b) const
 
BigVectorImpl< IntegerType > ModMul (const BigVectorImpl< IntegerType > &b) const
 
const BigVectorImpl< IntegerType > & ModMulEq (const IntegerType &b)
 
const BigVectorImpl< IntegerType > & ModMulEq (const BigVectorImpl< IntegerType > &b)
 
BigVectorImpl< IntegerType > ModExp (const IntegerType &b) const
 
const BigVectorImpl< IntegerType > & ModExpEq (const IntegerType &b)
 
BigVectorImpl< IntegerType > ModInverse () const
 
const BigVectorImpl< IntegerType > & ModInverseEq ()
 
BigVectorImpl< IntegerType > ModByTwo () const
 
const BigVectorImpl< IntegerType > & ModByTwoEq ()
 
BigVectorImpl< IntegerType > MultiplyAndRound (const IntegerType &p, const IntegerType &q) const
 
const BigVectorImpl< IntegerType > & MultiplyAndRoundEq (const IntegerType &p, const IntegerType &q)
 
BigVectorImpl< IntegerType > DivideAndRound (const IntegerType &q) const
 
const BigVectorImpl< IntegerType > & DivideAndRoundEq (const IntegerType &q)
 
BigVectorImpl< IntegerType > GetDigitAtIndexForBase (usint index, usint base) const
 

Static Public Member Functions

static BigVectorImpl Single (const IntegerType &val, const IntegerType &modulus)
 
static uint32_t SerializedVersion ()
 

Friends

template<class IntegerType_c >
std::ostream & operator<< (std::ostream &os, const BigVectorImpl< IntegerType_c > &ptr_obj)
 

Additional Inherited Members

- Public Types inherited from lbcrypto::BigVectorInterface< BigVectorImpl< IntegerType >, IntegerType >
typedef IntegerType Integer
 

Detailed Description

template<class IntegerType>
class bigintfxd::BigVectorImpl< IntegerType >

The class for representing vectors of big binary integers.

Constructor & Destructor Documentation

◆ BigVectorImpl() [1/6]

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::BigVectorImpl ( )

Basic constructor.

◆ BigVectorImpl() [2/6]

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::BigVectorImpl ( usint  length,
const IntegerType &  modulus = 0 
)
explicit

Basic constructor for specifying the length of the vector and the modulus.

Parameters
lengthis the length of the big binary vector, in terms of the number of entries.
modulusis the modulus of the ring.

◆ BigVectorImpl() [3/6]

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::BigVectorImpl ( const BigVectorImpl< IntegerType > &  bigVector)

Basic constructor for copying a vector

Parameters
bigVectoris the big binary vector to be copied.

◆ BigVectorImpl() [4/6]

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::BigVectorImpl ( BigVectorImpl< IntegerType > &&  bigVector)

Basic move constructor for moving a vector

Parameters
&&bigVectoris the big binary vector to be moved.

◆ BigVectorImpl() [5/6]

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::BigVectorImpl ( usint  length,
const IntegerType &  modulus,
std::initializer_list< std::string >  rhs 
)

Basic constructor for specifying the length of the vector the modulus and an initializer list.

Parameters
lengthis the length of the big binary vector, in terms of the number of entries.
modulusis the modulus of the ring.
rhsis an initializer list of strings

◆ BigVectorImpl() [6/6]

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::BigVectorImpl ( usint  length,
const IntegerType &  modulus,
std::initializer_list< uint64_t >  rhs 
)

Basic constructor for specifying the length of the vector the modulus and an initializer list.

Parameters
lengthis the length of the big binary vector, in terms of the number of entries.
modulusis the modulus of the ring.
rhsis an initializer list of usint

◆ ~BigVectorImpl()

template<class IntegerType >
bigintfxd::BigVectorImpl< IntegerType >::~BigVectorImpl ( )
virtual

Destructor.

Member Function Documentation

◆ at()

template<class IntegerType>
IntegerType& bigintfxd::BigVectorImpl< IntegerType >::at ( size_t  i)
inline

Sets/gets a value at an index. This method is slower than operator[] as it checks if index out of range

Parameters
indexis the index to set a value at.

◆ DivideAndRound()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::DivideAndRound ( const IntegerType &  q) const

Divide and Rounding operation. Returns [x/q] where [] is the rounding operation.

Parameters
&qis the denominator to be divided.
Returns
is the result of divide and round operation.

◆ DivideAndRoundEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::DivideAndRoundEq ( const IntegerType &  q)

Divide and Rounding operation. Returns [x/q] where [] is the rounding operation. In-place variant.

Parameters
&qis the denominator to be divided.
Returns
is the result of divide and round operation.

◆ GetDigitAtIndexForBase()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::GetDigitAtIndexForBase ( usint  index,
usint  base 
) const

Digit vector at a specific index for all entries for a given number base. Warning: only power-of-2 bases are currently supported. Example: for vector (83, 1, 45), index 2 and base 4 we have:

                      index:0,1,2,3

|83| |3,0,1,1| |1| |1 | –base 4 decomposition–> |1,0,0,0| –at index 2–> |0| |45| |1,3,2,0| |2|

The return vector is (1,0,2)

Parameters
indexis the index to return the digit from in all entries.
baseis the base to use for the operation.
Returns
is the digit at a specific index for all entries for a given number base

◆ GetLength()

template<class IntegerType>
size_t bigintfxd::BigVectorImpl< IntegerType >::GetLength ( ) const
inline

Gets the vector length.

Returns
vector length.

◆ GetModulus()

template<class IntegerType>
const IntegerType& bigintfxd::BigVectorImpl< IntegerType >::GetModulus ( ) const
inline

Gets the vector modulus.

Returns
the vector modulus.

◆ Mod()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::Mod ( const IntegerType &  modulus) const

Vector modulus operator.

Parameters
&modulusis the modulus to perform on the current vector entries.
Returns
is the result of the modulus operation on current vector.

◆ ModAdd() [1/2]

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModAdd ( const IntegerType &  b) const

Scalar-to-vector modulus addition operation.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus addition operation.

◆ ModAdd() [2/2]

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModAdd ( const BigVectorImpl< IntegerType > &  b) const

Vector component wise modulus addition.

Parameters
&bis the vector to perform operation with.
Returns
is the result of the component wise modulus addition operation.

◆ ModAddAtIndex()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModAddAtIndex ( usint  i,
const IntegerType &  b 
) const

Scalar modulus addition at a particular index.

Parameters
iis the index of the entry to add.
&bis the scalar to add.
Returns
is the result of the modulus addition operation.

◆ ModAddAtIndexEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModAddAtIndexEq ( usint  i,
const IntegerType &  b 
)

Scalar modulus addition at a particular index. In-place variant.

Parameters
iis the index of the entry to add.
&bis the scalar to add.
Returns
is the result of the modulus addition operation.

◆ ModAddEq() [1/2]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModAddEq ( const IntegerType &  b)

Scalar-to-vector modulus addition operation. In-place variant.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus addition operation.

◆ ModAddEq() [2/2]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModAddEq ( const BigVectorImpl< IntegerType > &  b)

Vector component wise modulus addition. In-place variant.

Parameters
&bis the vector to perform operation with.
Returns
is the result of the component wise modulus addition operation.

◆ ModByTwo()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModByTwo ( ) const

Modulus 2 operation, also a least significant bit.

Returns
is the result of the component wise modulus 2 operation, also a least significant bit.

◆ ModByTwoEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModByTwoEq ( )

Modulus 2 operation, also a least significant bit. In-place variant.

Returns
is the result of the component wise modulus 2 operation, also a least significant bit.

◆ ModEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModEq ( const IntegerType &  modulus)

Vector modulus operator. In-place variant.

Parameters
&modulusis the modulus to perform on the current vector entries.
Returns
is the result of the modulus operation on current vector.

◆ ModExp()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModExp ( const IntegerType &  b) const

Scalar modulus exponentiation operation.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus exponentiation operation.

◆ ModExpEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModExpEq ( const IntegerType &  b)

Scalar modulus exponentiation operation. In-place variant.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus exponentiation operation.

◆ ModInverse()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModInverse ( ) const

Modulus inverse operation.

Returns
is the result of the component wise modulus inverse operation.

◆ ModInverseEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModInverseEq ( )

Modulus inverse operation. In-place variant.

Returns
is the result of the component wise modulus inverse operation.

◆ ModMul() [1/2]

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModMul ( const IntegerType &  b) const

Scalar-to-vector modulus multiplication operation. Generalized Barrett modulo reduction algorithm.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus multiplication operation.

◆ ModMul() [2/2]

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModMul ( const BigVectorImpl< IntegerType > &  b) const

Vector component wise modulus multiplication.

Parameters
&bis the vector to perform operation with.
Returns
is the result of the component wise modulus multiplication operation.

◆ ModMulEq() [1/2]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModMulEq ( const IntegerType &  b)

Scalar-to-vector modulus multiplication operation. In-place variant. Generalized Barrett modulo reduction algorithm.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus multiplication operation.

◆ ModMulEq() [2/2]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModMulEq ( const BigVectorImpl< IntegerType > &  b)

Vector component wise modulus multiplication. In-place variant.

Parameters
&bis the vector to perform operation with.
Returns
is the result of the component wise modulus multiplication operation.

◆ ModSub() [1/2]

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModSub ( const IntegerType &  b) const

Scalar-from-vector modulus subtraction operation.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus subtraction operation.

◆ ModSub() [2/2]

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::ModSub ( const BigVectorImpl< IntegerType > &  b) const

Vector component wise modulus subtraction.

Parameters
&bis the vector to perform operation with.
Returns
is the result of the component wise modulus subtraction operation.

◆ ModSubEq() [1/2]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModSubEq ( const IntegerType &  b)

Scalar-from-vector modulus subtraction operation. In-place variant.

Parameters
&bis the scalar to perform operation with.
Returns
is the result of the modulus subtraction operation.

◆ ModSubEq() [2/2]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::ModSubEq ( const BigVectorImpl< IntegerType > &  b)

Vector component wise modulus subtraction. In-place variant.

Parameters
&bis the vector to perform operation with.
Returns
is the result of the component wise modulus subtraction operation.

◆ MultiplyAndRound()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::MultiplyAndRound ( const IntegerType &  p,
const IntegerType &  q 
) const

Multiply and Rounding operation. Returns [x*p/q] where [] is the rounding operation.

Parameters
&pis the numerator to be multiplied.
&qis the denominator to be divided.
Returns
is the result of multiply and round operation.

◆ MultiplyAndRoundEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::MultiplyAndRoundEq ( const IntegerType &  p,
const IntegerType &  q 
)

Multiply and Rounding operation. Returns [x*p/q] where [] is the rounding operation. In-place variant.

Parameters
&pis the numerator to be multiplied.
&qis the denominator to be divided.
Returns
is the result of multiply and round operation.

◆ MultWithOutMod()

template<class IntegerType >
BigVectorImpl< IntegerType > bigintfxd::BigVectorImpl< IntegerType >::MultWithOutMod ( const BigVectorImpl< IntegerType > &  b) const

Vector multiplication without applying the modulus operation.

Parameters
&bis the vector to multiply.
Returns
is the result of the multiplication operation.

◆ MultWithOutModEq()

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::MultWithOutModEq ( const BigVectorImpl< IntegerType > &  b)

Vector multiplication without applying the modulus operation. In-place variant.

Parameters
&bis the vector to multiply.
Returns
is the result of the multiplication operation.

◆ operator=() [1/5]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::operator= ( const BigVectorImpl< IntegerType > &  rhs)

Assignment operator to assign value from rhs

Parameters
&rhsis the big binary vector to be assigned from.
Returns
Assigned BigVectorImpl.

◆ operator=() [2/5]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::operator= ( BigVectorImpl< IntegerType > &&  rhs)

Move assignment operator

Parameters
&&rhsis the big binary vector to be moved.
Returns
moved BigVectorImpl object

◆ operator=() [3/5]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::operator= ( std::initializer_list< std::string >  rhs)

Initializer list for BigVectorImpl.

Parameters
&&rhsis the list of strings containing integers to be assigned to the BBV.
Returns
BigVectorImpl object

◆ operator=() [4/5]

template<class IntegerType >
const BigVectorImpl< IntegerType > & bigintfxd::BigVectorImpl< IntegerType >::operator= ( std::initializer_list< uint64_t >  rhs)

Initializer list for BigVectorImpl.

Parameters
&&rhsis the list of integers to be assigned to the BBV.
Returns
BigVectorImpl object

◆ operator=() [5/5]

template<class IntegerType>
const BigVectorImpl& bigintfxd::BigVectorImpl< IntegerType >::operator= ( uint64_t  val)
inline

Assignment operator to assign value val to first entry, 0 for the rest of entries.

Parameters
valis the value to be assigned at the first entry.
Returns
Assigned BigVectorImpl.

◆ operator[]()

template<class IntegerType>
IntegerType& bigintfxd::BigVectorImpl< IntegerType >::operator[] ( size_t  idx)
inline

operators to get a value at an index.

Parameters
idxis the index to get a value at.
Returns
is the value at the index.

◆ SetModulus()

template<class IntegerType >
void bigintfxd::BigVectorImpl< IntegerType >::SetModulus ( const IntegerType &  value)

Sets the vector modulus.

Parameters
valueis the value to set.
valueis the modulus value to set.

◆ SwitchModulus()

template<class IntegerType >
void bigintfxd::BigVectorImpl< IntegerType >::SwitchModulus ( const IntegerType &  newModulus)

Sets the vector modulus and changes the values to match the new modulus.

Parameters
valueis the value to set.

Switches the integers in the vector to values corresponding to the new modulus Algorithm: Integer i, Old Modulus om, New Modulus nm, delta = abs(om-nm): Case 1: om < nm if i > i > om/2 i' = i + delta Case 2: om > nm i

om/2 i' = i-delta

Friends And Related Function Documentation

◆ operator<<

template<class IntegerType>
template<class IntegerType_c >
std::ostream& operator<< ( std::ostream &  os,
const BigVectorImpl< IntegerType_c > &  ptr_obj 
)
friend

ostream operator to output vector values to console

Parameters
osis the std ostream object.
&ptr_objis the BigVectorImpl object to be printed.
Returns
std ostream object which captures the vector values.

The documentation for this class was generated from the following files: