source: git/libpolys/polys/templates/p_Numbers.h @ 78eba1

spielwiese
Last change on this file since 78eba1 was 78eba1, checked in by Mohamed Barakat <mohamed.barakat@…>, 13 years ago
- replaced nIsZero(tmp) -> n_IsZero__T(tmp,r) - fixed kbuckets reference - added dynamic_modules target
  • Property mode set to 100644
File size: 3.6 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/***************************************************************
5 *  File:    p_Numbers.h
6 *  Purpose: macros/inline functions for number operations
7 *  Author:  obachman (Olaf Bachmann)
8 *  Created: 8/00
9 *  Version: $Id$
10 *******************************************************************/
11#ifndef P_NUMBERS_H
12#define P_NUMBERS_H
13
14#include <coeffs/coeffs.h>
15#include <coeffs/numbers.h>
16#include <polys/monomials/ring.h>
17
18static inline number n_Copy_FieldGeneral(number n,    const ring r)
19{ return r->cf->cfCopy(n,r->cf); }
20
21static inline void   n_Delete_FieldGeneral(number* p, const ring r)
22{ r->cf->cfDelete(p,r->cf); }
23
24static inline number n_Mult_FieldGeneral(number n1, number n2, const ring r)
25{ return r->cf->cfMult(n1, n2, r->cf); }
26
27static inline number n_Add_FieldGeneral(number n1, number n2, const ring r)
28{ return r->cf->cfAdd(n1, n2, r->cf); }
29
30static inline BOOLEAN n_IsZero_FieldGeneral(number n, const ring r)
31{ return r->cf->cfIsZero(n, r->cf); }
32
33static inline BOOLEAN n_Equal_FieldGeneral(number n1, number n2, const ring r)
34{ return r->cf->cfEqual(n1, n2, r->cf); }
35
36static inline number n_Neg_FieldGeneral(number n,     const ring r)
37{ return r->cf->cfNeg(n, r->cf); }
38
39static inline number n_Sub_FieldGeneral(number n1, number n2, const ring r)
40{ return r->cf->cfSub(n1, n2, r->cf); }
41
42static inline void n_InpMult_FieldGeneral(number &n1, number n2, const ring r)
43{ ndInpMult(n1, n2, r->cf); }
44
45static inline void n_InpAdd_FieldGeneral(number &n1, number n2, const ring r)
46{ ndInpAdd(n1, n2, r->cf); }
47
48#ifdef HAVE_RINGS
49#define n_Copy_RingGeneral(n, r)           r->cf->cfCopy(n,r->cf)
50#define n_Delete_RingGeneral(n, r)         r->cf->cfDelete(n,r->cf)
51#define n_Mult_RingGeneral(n1, n2, r)      r->cf->cfMult(n1, n2, r->cf)
52#define n_Add_RingGeneral(n1, n2, r)       r->cf->cfAdd(n1, n2, r->cf)
53#define n_IsZero_RingGeneral(n, r)         r->cf->cfIsZero(n, r->cf)
54#define n_Equal_RingGeneral(n1, n2, r)     r->cf->cfEqual(n1, n2, r->cf)
55#define n_Neg_RingGeneral(n, r)            r->cf->cfNeg(n, r->cf)
56#define n_Sub_RingGeneral(n1, n2, r)       r->cf->cfSub(n1, n2, r->cf)
57//#define n_InpMult_RingGeneral(n1, n2, r)   r->cf->nInpMult(n1, n2, r->cf)
58#define n_InpMult_RingGeneral(n1, n2, r)   ndInpMult(n1, n2, r->cf)
59#define n_InpAdd_RingGeneral(n1, n2, r)    ndInpAdd(n1, n2, r->cf)
60#endif
61
62#include <coeffs/modulop.h>
63#define n_Copy_FieldZp(n, r)        n
64#define n_Delete_FieldZp(n, r)      ((void)0)
65#define n_Mult_FieldZp(n1, n2, r)   npMultM(n1,n2, r->cf)
66#define n_Add_FieldZp(n1, n2, r)    npAddM(n1, n2, r->cf)
67#define n_IsZero_FieldZp(n, r)      npIsZeroM(n, r->cf)
68#define n_Equal_FieldZp(n1, n2, r)  npEqualM(n1, n2, r->cf)
69#define n_Neg_FieldZp(n, r)         npNegM(n, r->cf)
70#define n_Sub_FieldZp(n1, n2, r)    npSubM(n1, n2, r->cf)
71#define n_InpMult_FieldZp(n1, n2, r) n1=npMultM(n1, n2, r->cf)
72
73static inline void n_InpAdd_FieldZp(number &n1, number n2, const ring r)
74{ n1=npAddM(n1, n2, r->cf); }
75
76#define DO_LINLINE
77#include "coeffs/longrat.cc"
78#define n_Copy_FieldQ(n, r)        nlCopy(n, r->cf)
79#define n_Delete_FieldQ(n, r)      nlDelete(n,r->cf)
80#define n_Mult_FieldQ(n1, n2, r)   nlMult(n1,n2, r->cf)
81#define n_Add_FieldQ(n1, n2, r)    nlAdd(n1, n2, r->cf)
82#define n_IsZero_FieldQ(n, r)      nlIsZero(n, r->cf)
83#define n_Equal_FieldQ(n1, n2, r)  nlEqual(n1, n2, r->cf)
84#define n_Neg_FieldQ(n, r)         nlNeg(n, r->cf)
85#define n_Sub_FieldQ(n1, n2, r)    nlSub(n1, n2, r->cf)
86#define n_InpMult_FieldQ(n1, n2, r) nlInpMult(n1, n2, r->cf)
87#define n_InpAdd_FieldQ(n1, n2, r)  nlInpAdd(n1, n2, r->cf)
88#endif
Note: See TracBrowser for help on using the repository browser.