source: git/libpolys/polys/templates/p_Numbers.h @ 825fb7

fieker-DuValspielwiese
Last change on this file since 825fb7 was d101b1, checked in by Oleksandr Motsak <http://goo.gl/mcpzY>, 11 years ago
Silence some warnings about statements without effect Insired by [039a51b3aa3c77c2b7bae73d24de8521df45aed2]
  • Property mode set to 100644
File size: 3.8 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 *******************************************************************/
10#ifndef P_NUMBERS_H
11#define P_NUMBERS_H
12
13#include <coeffs/coeffs.h>
14#include <coeffs/numbers.h>
15#include <polys/monomials/ring.h>
16
17static inline number n_Copy_FieldGeneral(number n,    const ring r)
18{ return r->cf->cfCopy(n,r->cf); }
19
20static inline void   n_Delete_FieldGeneral(number* p, const ring r)
21{ r->cf->cfDelete(p,r->cf); }
22
23static inline number n_Mult_FieldGeneral(number n1, number n2, const ring r)
24{ return r->cf->cfMult(n1, n2, r->cf); }
25
26static inline number n_Add_FieldGeneral(number n1, number n2, const ring r)
27{ return r->cf->cfAdd(n1, n2, r->cf); }
28
29static inline BOOLEAN n_IsZero_FieldGeneral(number n, const ring r)
30{ return r->cf->cfIsZero(n, r->cf); }
31
32static inline BOOLEAN n_Equal_FieldGeneral(number n1, number n2, const ring r)
33{ return r->cf->cfEqual(n1, n2, r->cf); }
34
35static inline number n_Neg_FieldGeneral(number n,     const ring r)
36{ return r->cf->cfNeg(n, r->cf); }
37
38static inline number n_Sub_FieldGeneral(number n1, number n2, const ring r)
39{ return r->cf->cfSub(n1, n2, r->cf); }
40
41static inline void n_InpMult_FieldGeneral(number &n1, number n2, const ring r)
42{ ndInpMult(n1, n2, r->cf); }
43
44static inline void n_InpAdd_FieldGeneral(number &n1, number n2, const ring r)
45{ ndInpAdd(n1, n2, r->cf); }
46
47#ifdef HAVE_RINGS
48#define n_Copy_RingGeneral(n, r)           r->cf->cfCopy(n,r->cf)
49#define n_Delete_RingGeneral(n, r)         r->cf->cfDelete(n,r->cf)
50#define n_Mult_RingGeneral(n1, n2, r)      r->cf->cfMult(n1, n2, r->cf)
51#define n_Add_RingGeneral(n1, n2, r)       r->cf->cfAdd(n1, n2, r->cf)
52#define n_IsZero_RingGeneral(n, r)         r->cf->cfIsZero(n, r->cf)
53#define n_Equal_RingGeneral(n1, n2, r)     r->cf->cfEqual(n1, n2, r->cf)
54#define n_Neg_RingGeneral(n, r)            r->cf->cfNeg(n, r->cf)
55#define n_Sub_RingGeneral(n1, n2, r)       r->cf->cfSub(n1, n2, r->cf)
56//#define n_InpMult_RingGeneral(n1, n2, r)   r->cf->nInpMult(n1, n2, r->cf)
57#define n_InpMult_RingGeneral(n1, n2, r)   ndInpMult(n1, n2, r->cf)
58static inline void n_InpAdd_RingGeneral(number &n1, number n2, const ring r)
59{ assume(rField_is_Ring(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)      do {} while (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{ assume(rField_is_Zp(r)); n1=npAddM(n1, n2, r->cf); }
75
76#define DO_LINLINE
77#include <coeffs/longrat.cc> // TODO: fix this Uglyness?!!!
78
79#define n_Copy_FieldQ(n, r)        nlCopy(n, r->cf)
80#define n_Delete_FieldQ(n, r)      nlDelete(n,r->cf)
81#define n_Mult_FieldQ(n1, n2, r)   nlMult(n1,n2, r->cf)
82#define n_Add_FieldQ(n1, n2, r)    nlAdd(n1, n2, r->cf)
83#define n_IsZero_FieldQ(n, r)      nlIsZero(n, r->cf)
84#define n_Equal_FieldQ(n1, n2, r)  nlEqual(n1, n2, r->cf)
85#define n_Neg_FieldQ(n, r)         nlNeg(n, r->cf)
86#define n_Sub_FieldQ(n1, n2, r)    nlSub(n1, n2, r->cf)
87#define n_InpMult_FieldQ(n1, n2, r) nlInpMult(n1, n2, r->cf)
88
89static inline void n_InpAdd_FieldQ(number &n1, number n2, const ring r)
90{ assume(rField_is_Q(r)); nlInpAdd(n1, n2, r->cf); }
91#endif
Note: See TracBrowser for help on using the repository browser.