Changeset 27b3cf in git for factory/ffops.h


Ignore:
Timestamp:
Jul 18, 2006, 4:30:25 PM (18 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
dd73043aece50a3b540b469cacfe1e7bb5712915
Parents:
c89c574998a1ffa7816eb2b5e388287e16b1a4b0
Message:
*hannes: re-use NTL optimizations


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

Legend:

Unmodified
Added
Removed
  • factory/ffops.h

    rc89c57 r27b3cf  
    11/* emacs edit mode for this file is -*- C++ -*- */
    2 /* $Id: ffops.h,v 1.9 2005-11-08 18:08:58 Singular Exp $ */
     2/* $Id: ffops.h,v 1.10 2006-07-18 14:30:25 Singular Exp $ */
    33
    44#ifndef INCL_FFOPS_H
     
    88
    99#include "cf_globals.h"
     10#ifdef HAVE_NTL
     11#include <NTL/config.h>
     12#endif
    1013
    1114extern int ff_prime;
     
    2124{
    2225    int n = a % ff_prime;
    23     if ( n < 0 )
    24         return n + ff_prime;
    25     else
    26         return n;
     26#if defined(i386) || defined(NTL_AVOID_BRANCHING)
     27    n += (n >> 31) & ff_prime;
     28    return n;
     29#else
     30    if (n <0) n += ff_prime;
     31    return n;
     32#endif
    2733}
    2834
     
    3844{
    3945    int n = (int)(a % (long)ff_prime);
    40     if ( n < 0 )
    41         return n + ff_prime;
    42     else
    43         return n;
     46#if defined(i386) || defined(NTL_AVOID_BRANCHING)
     47    n += (n >> 31) & ff_prime;
     48    return n;
     49#else
     50    if (n <0) n += ff_prime;
     51    return n;
     52#endif
    4453}
    4554
     
    5665{
    5766    //return ff_norm( a + b );
    58 #ifdef i386
     67#if defined(i386) || defined(NTL_AVOID_BRANCHING)
    5968    int r=( a + b );
    6069    r -= ff_prime;
     
    7180{
    7281    //return ff_norm( a - b );
    73 #ifdef i386
     82#if defined(i386) || defined(NTL_AVOID_BRANCHING)
    7483    int r=( a - b );
    7584    r += (r >> 31) & ff_prime;
Note: See TracChangeset for help on using the changeset viewer.