Changeset afbc156 in git for Singular/ipconv.cc


Ignore:
Timestamp:
Dec 1, 2015, 3:40:16 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
Children:
dda8658f52c301a7a85c69e9d7c88b16ba19c66b
Parents:
1550e4d76ad2eeab9a8ff28e8424eb11e3fcf688
Message:
more chnages for SINGULAR_4_1
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipconv.cc

    r1550e4d rafbc156  
    2828#include <polys/monomials/ring.h>
    2929#include <Singular/ipshell.h>
     30#include <Singular/number2.h>
    3031#include <Singular/ipconv.h>
    3132
     
    175176}
    176177
     178#ifdef SINGULAR_4_1
     179static void * iiI2NN(void *data)
     180{
     181  if (currRing==NULL)
     182  {
     183    WerrorS("missing basering while converting int to Number");
     184    return NULL;
     185  }
     186  number n=nInit((int)(long)data);
     187  number2 nn=(number2)omAlloc(sizeof*nn);
     188  nn->cf=currRing->cf; nn->cf->ref++;
     189  nn->n=n;
     190  return (void *)nn;
     191}
     192#endif
     193
    177194static void * iiBI2N(void *data)
    178195{
     
    188205  return (void*)n;
    189206}
     207
     208#ifdef SINGULAR_4_1
     209static void * iiBI2NN(void *data)
     210{
     211  if (currRing==NULL)
     212  {
     213    WerrorS("missing basering while converting bigint to Number");
     214    return NULL;
     215  }
     216  nMapFunc nMap=n_SetMap(coeffs_BIGINT,currRing->cf);
     217  if (nMap==NULL)
     218  {
     219    Werror("no conversion from bigint to %s",currRing->cf->cfCoeffString(currRing->cf));
     220    return NULL;
     221  }
     222  number n=nMap((number)data,coeffs_BIGINT,currRing->cf);
     223  n_Delete((number *)&data, coeffs_BIGINT);
     224  number2 nn=(number2)omAlloc(sizeof*nn);
     225  nn->cf=currRing->cf; nn->cf->ref++;
     226  return (void*)nn;
     227}
     228#endif
     229
     230#ifdef SINGULAR_4_1
     231static void * iiNN2N(void *data)
     232{
     233  number2 d=(number2)data;
     234  if ((currRing==NULL)
     235  || (currRing->cf!=d->cf))
     236  {
     237    WerrorS("cannot convert: incompatible");
     238    return NULL;
     239  }
     240  number n = n_Copy(d->n, d->cf);
     241  n2Delete(d);
     242  return (void*)n;
     243}
     244#endif
     245
     246#ifdef SINGULAR_4_1
     247static void * iiNN2P(void *data)
     248{
     249  number2 d=(number2)data;
     250  if ((currRing==NULL)
     251  || (currRing->cf!=d->cf))
     252  {
     253    WerrorS("cannot convert: incompatible");
     254    return NULL;
     255  }
     256  number n = n_Copy(d->n, d->cf);
     257  n2Delete(d);
     258  return (void*)p_NSet(n,currRing);
     259}
     260#endif
    190261
    191262static void * iiIm2Ma(void *data)
     
    362433    output->next=input->next;
    363434    input->next=NULL;
    364     return FALSE;
     435    return errorreported;
    365436  }
    366437  if (index!=0) /* iiTestConvert does not returned 'failure' */
     
    395466        return TRUE;
    396467      }
     468      if (errorreported) return TRUE;
    397469      output->next=input->next;
    398470      input->next=NULL;
     
    420492  if ((currRing==NULL) && (outputType>BEGIN_RING) && (outputType<END_RING))
    421493    return 0;
     494  //if ((currRing==NULL) && (outputType==CNUMBER_CMD))
     495  //  return 0;
    422496
    423497  // search the list
     
    434508    i++;
    435509  }
    436   //Print("test convert %d to %d (%s -> %s):0\n",inputType,outputType,
    437   // Tok2Cmdname(inputType), Tok2Cmdname(outputType));
     510  //Print("test convert %d to %d (%s -> %s):0, tested:%d\n",inputType,outputType,
     511  // Tok2Cmdname(inputType), Tok2Cmdname(outputType),i);
    438512  return 0;
    439513}
Note: See TracChangeset for help on using the changeset viewer.