Givaro
Data Structures | Namespaces | Defines | Functions
givaromm.h File Reference
#include <cstring>
#include <stddef.h>
#include <iostream>
#include <new>
#include "givaro/givmodule.h"
#include "givaro/givbasictype.h"

Data Structures

class  GivMMInfo
class  BlocFreeList
class  GivMMFreeList
class  GivMMRefCount
class  GivaroMM< T >

Namespaces

namespace  Givaro
 

Arithmetic on GF(p^k), with p a prime number less than 2^15.


Defines

#define GIVARO_MM_SPECIALIZED(TYPE)

Functions

std::ostream & operator<< (std::ostream &o, const GivMMInfo &T)

Define Documentation

#define GIVARO_MM_SPECIALIZED (   TYPE)
Value:
template<> class GivaroMM<TYPE> {\
public: \
    typedef TYPE* ptType;\
    typedef TYPE Type;\
    static ptType allocate (const size_t s);\
    static void desallocate ( ptType bloc, const size_t sz =0 );\
    static void initone( ptType p, const Type V = 0);\
    static void initialize(ptType bloc, const size_t s, const Type V =0);\
    static void destroy(GivaroMM<TYPE>::ptType bloc, const size_t s);\
};\
inline GivaroMM<TYPE>::ptType GivaroMM<TYPE>::allocate (const size_t s)\
{ return (GivaroMM<TYPE>::ptType)GivMMFreeList::allocate(s*sizeof(GivaroMM<TYPE>::Type)); }\
inline void GivaroMM<TYPE>::desallocate(GivaroMM<TYPE>::ptType bloc, const size_t sz)\
{ GivMMFreeList::desallocate((void*)bloc,sz); }\
inline void GivaroMM<TYPE>::initone( GivaroMM<TYPE>::ptType p, const GivaroMM<TYPE>::Type v) \
{ *p = v; }\
inline void GivaroMM<TYPE>::initialize(GivaroMM<TYPE>::ptType bloc, const size_t s, const GivaroMM<TYPE>::Type V)\
{ for (size_t i=0; i<s; i++) bloc[i] = V; }\
inline void GivaroMM<TYPE>::destroy(GivaroMM<TYPE>::ptType bloc, const size_t s){}