Changeset 1e6de6 in git for factory/int_int.cc
- Timestamp:
- Jan 7, 2008, 2:33:11 PM (16 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- aa7480c120ef293aaf5a185ec38a2440c23fc879
- Parents:
- 6840b2040b65b549b02b0e852339ab1a0a791484
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/int_int.cc
r6840b2 r1e6de6 1 1 /* emacs edit mode for this file is -*- C++ -*- */ 2 /* $Id: int_int.cc,v 1. 19 2007-12-04 15:24:53Singular Exp $ */2 /* $Id: int_int.cc,v 1.20 2008-01-07 13:33:10 Singular Exp $ */ 3 3 4 4 #include <config.h> … … 86 86 InternalInteger::neg () 87 87 { 88 if ( getRefCount() > 1 ) { 88 if ( getRefCount() > 1 ) 89 { 89 90 decRefCount(); 90 91 MP_INT dummy; … … 92 93 mpz_neg( &dummy, &dummy ); 93 94 return new InternalInteger( dummy ); 94 } else { 95 } 96 else 97 { 95 98 mpz_neg( &thempi, &thempi ); 96 99 return this; … … 102 105 InternalCF* InternalInteger::addsame( InternalCF * c ) 103 106 { 104 if ( getRefCount() > 1 ) { 107 if ( getRefCount() > 1 ) 108 { 105 109 decRefCount(); 106 110 MP_INT dummy; 107 111 mpz_init( &dummy ); 108 112 mpz_add( &dummy, &thempi, &MPI( c ) ); 109 if ( mpz_is_imm( &dummy ) ) { 113 if ( mpz_is_imm( &dummy ) ) 114 { 110 115 InternalCF * res = int2imm( mpz_get_si( &dummy ) ); 111 116 mpz_clear( &dummy ); … … 115 120 return new InternalInteger( dummy ); 116 121 } 117 else { 122 else 123 { 118 124 mpz_add( &thempi, &thempi, &MPI( c ) ); 119 if ( mpz_is_imm( &thempi ) ) { 125 if ( mpz_is_imm( &thempi ) ) 126 { 120 127 InternalCF * res = int2imm( mpz_get_si( &thempi ) ); 121 128 delete this; … … 129 136 InternalCF* InternalInteger::subsame( InternalCF * c ) 130 137 { 131 if ( getRefCount() > 1 ) { 138 if ( getRefCount() > 1 ) 139 { 132 140 decRefCount(); 133 141 MP_INT dummy; 134 142 mpz_init( &dummy ); 135 143 mpz_sub( &dummy, &thempi, &MPI( c ) ); 136 if ( mpz_is_imm( &dummy ) ) { 144 if ( mpz_is_imm( &dummy ) ) 145 { 137 146 InternalCF * res = int2imm( mpz_get_si( &dummy ) ); 138 147 mpz_clear( &dummy ); … … 142 151 return new InternalInteger( dummy ); 143 152 } 144 else { 153 else 154 { 145 155 mpz_sub( &thempi, &thempi, &MPI( c ) ); 146 if ( mpz_is_imm( &thempi ) ) { 156 if ( mpz_is_imm( &thempi ) ) 157 { 147 158 InternalCF * res = int2imm( mpz_get_si( &thempi ) ); 148 159 delete this; … … 156 167 InternalCF* InternalInteger::mulsame( InternalCF * c ) 157 168 { 158 if ( getRefCount() > 1 ) { 169 if ( getRefCount() > 1 ) 170 { 159 171 decRefCount(); 160 172 MP_INT dummy; 161 173 mpz_init( &dummy ); 162 174 mpz_mul( &dummy, &thempi, &MPI( c ) ); 163 if ( mpz_is_imm( &dummy ) ) { 175 if ( mpz_is_imm( &dummy ) ) 176 { 177 // can this happen ??? 164 178 InternalCF * res = int2imm( mpz_get_si( &dummy ) ); 165 179 mpz_clear( &dummy ); … … 169 183 return new InternalInteger( dummy ); 170 184 } 171 else { 185 else 186 { 172 187 mpz_mul( &thempi, &thempi, &MPI( c ) ); 173 if ( mpz_is_imm( &thempi ) ) { 188 if ( mpz_is_imm( &thempi ) ) 189 { 190 // can this happen ??? 174 191 InternalCF * res = int2imm( mpz_get_si( &thempi ) ); 175 192 delete this; … … 202 219 ASSERT( ::is_imm( c ) == INTMARK, "incompatible base coefficients" ); 203 220 int cc = imm2int( c ); 204 if ( getRefCount() > 1 ) { 221 if ( getRefCount() > 1 ) 222 { 205 223 decRefCount(); 206 224 MP_INT dummy; … … 210 228 else 211 229 mpz_add_ui( &dummy, &thempi, cc ); 212 if ( mpz_is_imm( &dummy ) ) { 230 if ( mpz_is_imm( &dummy ) ) 231 { 213 232 InternalCF * res = int2imm( mpz_get_si( &dummy ) ); 214 233 mpz_clear( &dummy );
Note: See TracChangeset
for help on using the changeset viewer.