Changeset 09171bd in git for factory/ffops.h


Ignore:
Timestamp:
Nov 8, 2005, 7:08:58 PM (18 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
Children:
c91fefd86fa767380ec3afd51615cf5943a61c88
Parents:
79cf7d0d7efe4df23244844b4fcd1285ef913580
Message:
*hannes: removed MWERKS support
         optimized ffops with idea from Singular/kernel/modulop.h


git-svn-id: file:///usr/local/Singular/svn/trunk@8793 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/ffops.h

    r79cf7d0 r09171bd  
    11/* emacs edit mode for this file is -*- C++ -*- */
    2 /* $Id: ffops.h,v 1.8 2005-11-08 16:03:18 Singular Exp $ */
     2/* $Id: ffops.h,v 1.9 2005-11-08 18:08:58 Singular Exp $ */
    33
    44#ifndef INCL_FFOPS_H
     
    4444}
    4545
    46 #ifndef __MWERKS__
    4746inline int ff_bignorm ( const INT64 a )
    4847{
     
    5352        return n;
    5453}
    55 #endif
    5654
    5755inline int ff_add ( const int a, const int b )
    5856{
    5957    //return ff_norm( a + b );
     58#ifdef i386
     59    int r=( a + b );
     60    r -= ff_prime;
     61    r += (r >> 31) & ff_prime;
     62    return r;
     63#else
    6064    int r=( a + b );
    6165    if (r >= ff_prime) r -= ff_prime;
    6266    return r;
     67#endif
    6368}
    6469
     
    6671{
    6772    //return ff_norm( a - b );
     73#ifdef i386
     74    int r=( a - b );
     75    r += (r >> 31) & ff_prime;
     76    return r;
     77#else
    6878    int r=( a - b );
    6979    if (r <0) r += ff_prime;
    7080    return r;
     81#endif
    7182}
    7283
     
    7485{
    7586    //return ff_norm( -a );
    76     if (a==0) return 0;
    77     return ff_prime-a;
     87    return ( a == 0 ? 0 : ff_prime-a );
    7888}
    7989
    80 #ifdef __MWERKS__
    81 int ff_mul ( const int a, const int b );
    82 #else
    8390inline int ff_mul ( const int a, const int b )
    8491{
     
    8895        return ff_longnorm ( (long)a * (long)b );
    8996}
    90 #endif
    9197
    9298inline int ff_inv ( const int a )
Note: See TracChangeset for help on using the changeset viewer.