htestu-0.1.1.2: cbits/testu/include/vectorsF2.h
#ifndef VECTORSF2_H
#define VECTORSF2_H
#include "gdef.h"
#define vectorsF2_WL 32
typedef struct{
int n;
unsigned long *vect;
} BitVect;
void AllocBV ( BitVect *A,
int l
);
void FreeBV ( BitVect *A
);
void BVCanonic ( BitVect *B,
int t
);
void AllOnes ( BitVect *B
);
void Mask ( BitVect *B,
int t
);
void InvMask ( BitVect *B,
int t
);
lebool BVisZero ( BitVect *A
);
int ValBitBV ( BitVect *A,
int noBit
);
void PutBitBV ( BitVect *A,
int noBit,
int valBit
);
void PutBVToZero ( BitVect *A
);
void CopyBV ( BitVect *A,
BitVect *B
);
void CopyBVPart ( BitVect *A,
BitVect *B,
int l
);
lebool CompareBV ( BitVect *A,
BitVect *B
);
void XORBV ( BitVect *A,
BitVect *B,
BitVect *C
);
void XOR2BV ( BitVect *A,
BitVect *B,
BitVect *C,
BitVect *D
);
void ANDBV ( BitVect *A,
BitVect *B,
BitVect *C
);
void ANDBVSelf ( BitVect *A,
BitVect *B
);
void ANDBVMask ( BitVect *A,
BitVect *B,
int t
);
void ANDBVInvMask ( BitVect *A,
BitVect *B,
int t
);
void XORBVSelf ( BitVect *A,
BitVect *B
);
void BVLShift ( BitVect *R,
BitVect *A,
int n
);
void BVRShift ( BitVect *R,
BitVect *A,
int n
);
void BVLShiftSelf ( BitVect *R,
int n
);
void BVLS1Self ( BitVect *R
);
void BVRShiftSelf ( BitVect *R,
int n
);
void InverseBV ( BitVect *A
);
void DispBitVect ( BitVect *A,
int l,
int mathematica
);
void RandVect ( BitVect *v
);
lebool VerifBitsCommuns ( BitVect *ds1,
BitVect *ds2
);
typedef struct{
BitVect **lignes;
int nblignes;
int t;
int l;
} Matrix;
void AllocMat ( Matrix* m,
int nblines,
int l,
int t
);
void FreeMat ( Matrix *m
);
void CopyMat ( Matrix *m,
Matrix *ms,
int nl,
int t
);
void CopyNTupleMat ( Matrix *m,
Matrix *ms,
int nl,
int *colonnes,
int t
);
lebool Diag ( Matrix *m,
int kg,
int t,
int l,
int *gr
);
int GaussianElimination ( Matrix *m,
int nblignes,
int l,
int t
);
int CompleteElimination ( Matrix *m,
int nblignes,
int l,
int t
);
int SpecialGaussianElimination ( Matrix *m,
int nblignes,
int l,
int t,
int *indices
);
void MultMatrixByBV ( BitVect *A,
Matrix *m,
BitVect *B
);
void TransposeMatrices ( Matrix *T,
Matrix *M,
int nblines,
int t,
int l
);
void ExchangeVect ( Matrix *m,
int i,
int j
);
void XorVect ( Matrix *m,
int r,
int s,
int min,
int max
);
void DispMat ( Matrix *m,
int t,
int l,
int nblines,
lebool mathematica
);
lebool InverseMatrix ( Matrix *MInv,
Matrix *M
);
void MultMatrixByMatrix ( Matrix *A,
Matrix *B,
Matrix *C
);
void MatrixTwoPow ( Matrix *A,
Matrix *B,
unsigned int e
);
#ifdef USE_LONGLONG
void MatrixPow (Matrix * A, Matrix * B, longlong e);
#else
void MatrixPow (Matrix * A, Matrix * B, long e);
#endif
#endif