My Project
Data Structures | Macros | Functions
int64vec.h File Reference
#include <string.h>
#include "misc/auxiliary.h"
#include "omalloc/omalloc.h"
#include "omalloc/omallocClass.h"
#include "misc/intvec.h"

Go to the source code of this file.

Data Structures

class  int64vec
 

Macros

#define iv64Test(v)   do {} while (0)
 

Functions

int64veciv64Copy (int64vec *o)
 
int64veciv64Add (int64vec *a, int64vec *b)
 
int64veciv64Sub (int64vec *a, int64vec *b)
 

Macro Definition Documentation

◆ iv64Test

#define iv64Test (   v)    do {} while (0)

Definition at line 96 of file int64vec.h.

Function Documentation

◆ iv64Add()

int64vec* iv64Add ( int64vec a,
int64vec b 
)

Definition at line 172 of file int64vec.cc.

173 {
174  int64vec * iv;
175  int64 mn, ma, i;
176  if (a->cols() != b->cols()) return NULL;
177  mn = si_min(a->rows(),b->rows());
178  ma = si_max(a->rows(),b->rows());
179  if (a->cols() == 1)
180  {
181  iv = new int64vec(ma);
182  for (i=0; i<mn; i++) (*iv)[i] = (*a)[i] + (*b)[i];
183  if (ma > mn)
184  {
185  if (ma == a->rows())
186  {
187  for(i=mn; i<ma; i++) (*iv)[i] = (*a)[i];
188  }
189  else
190  {
191  for(i=mn; i<ma; i++) (*iv)[i] = (*b)[i];
192  }
193  }
194  return iv;
195  }
196  if (mn != ma) return NULL;
197  iv = new int64vec(a);
198  for (i=0; i<mn*a->cols(); i++) { (*iv)[i] += (*b)[i]; }
199  return iv;
200 }
long int64
Definition: auxiliary.h:68
static int si_max(const int a, const int b)
Definition: auxiliary.h:124
static int si_min(const int a, const int b)
Definition: auxiliary.h:125
int i
Definition: cfEzgcd.cc:132
CanonicalForm b
Definition: cfModGcd.cc:4103
int rows() const
Definition: int64vec.h:66
int cols() const
Definition: int64vec.h:65
#define NULL
Definition: omList.c:12

◆ iv64Copy()

int64vec* iv64Copy ( int64vec o)
inline

Definition at line 84 of file int64vec.h.

85 {
86  int64vec * iv=new int64vec(o);
87  return iv;
88 }

◆ iv64Sub()

int64vec* iv64Sub ( int64vec a,
int64vec b 
)

Definition at line 202 of file int64vec.cc.

203 {
204  int64vec * iv;
205  int mn, ma,i;
206  if (a->cols() != b->cols()) return NULL;
207  mn = si_min(a->rows(),b->rows());
208  ma = si_max(a->rows(),b->rows());
209  if (a->cols() == 1)
210  {
211  iv = new int64vec(ma);
212  for (i=0; i<mn; i++) (*iv)[i] = (*a)[i] - (*b)[i];
213  if (ma > mn)
214  {
215  if (ma == a->rows())
216  {
217  for(i=mn; i<ma; i++) (*iv)[i] = (*a)[i];
218  }
219  else
220  {
221  for(i=mn; i<ma; i++) (*iv)[i] = -(*b)[i];
222  }
223  }
224  return iv;
225  }
226  if (mn != ma) return NULL;
227  iv = new int64vec(a);
228  for (i=0; i<mn*a->cols(); i++) { (*iv)[i] -= (*b)[i]; }
229  return iv;
230 }