Changeset 6b32990 in git for Singular/p_Procs_Impl.h


Ignore:
Timestamp:
Dec 12, 2000, 9:44:55 AM (23 years ago)
Author:
Olaf Bachmann <obachman@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
de7793b9aaa39c2f00b6e30ee4ad5c82915497aa
Parents:
52ea3f939ec0aa2915d2d6a747bab3976eb9bfb7
Message:
* dynamic kernel modules for MP and DBM links
* p_Procs improvements


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

Legend:

Unmodified
Added
Removed
  • Singular/p_Procs_Impl.h

    r52ea3f r6b32990  
    66 *  Purpose: implementation of primitive procs for polys
    77 *  Author:  obachman (Olaf Bachmann)
    8  *  Created: 8/00
    9  *  Version: $Id: p_Procs_Impl.h,v 1.1 2000-12-07 15:04:00 obachman Exp $
     8 *  Created: 12/00
     9 *  Version: $Id: p_Procs_Impl.h,v 1.2 2000-12-12 08:44:50 obachman Exp $
    1010 *******************************************************************/
    1111#ifndef P_PROCS_IMPL_H
     
    102102
    103103// If you add/remove things from here, also remeber to adjust the
    104 // respective *_2_String 
     104// respective *_2_String
    105105typedef enum p_Field
    106106{
    107107  FieldGeneral = 0,
    108108  FieldZp,         
     109  FieldQ,
    109110  FieldR,
    110111  FieldGF,
    111   FieldQ,
    112112#if HAVE_MORE_FIELDS_IMPLEMENTED
    113113  FieldLong_R,
     
    199199      case FieldGeneral: return "FieldGeneral";
    200200      case FieldZp: return "FieldZp";         
     201      case FieldQ: return "FieldQ";
    201202      case FieldR: return "FieldR";
    202203      case FieldGF: return "FieldGF";
    203       case FieldQ: return "FieldQ";
    204204#if HAVE_MORE_FIELDS_IMPLEMENTED
    205205      case FieldLong_R: return "FieldLong_R";
     
    284284}
    285285
     286static inline int p_ProcDependsOn_Field(p_Proc proc)
     287{
     288  if (proc == p_ShallowCopyDelete_Proc ||
     289      proc == p_Merge_q_Proc)
     290    return 0;
     291  return 1;
     292}
     293
     294static inline int p_ProcDependsOn_Ord(p_Proc proc)
     295{
     296  switch(proc)
     297  {
     298      case p_Add_q_Proc:
     299      case p_Minus_mm_Mult_qq_Proc:
     300      case pp_Mult_mm_Noether_Proc:
     301      case p_kBucketSetLm_Proc:
     302      case p_Merge_q_Proc:
     303        return 1;
     304       
     305      default:
     306        return 0;
     307  }
     308}
     309
     310static inline int p_ProcDependsOn_Length(p_Proc proc)
     311{
     312  switch(proc)
     313  {
     314      case p_Delete_Proc:
     315      case p_Mult_nn_Proc:
     316      case p_Neg_Proc:
     317        return 0;
     318       
     319      default:
     320        return 1;
     321  }
     322}
     323 
     324// returns string specifying the module into which the p_Proc
     325// should go
     326static inline const char* p_ProcField_2_Module(p_Proc proc,  p_Field field)
     327{
     328  if (! p_ProcDependsOn_Field(proc))
     329    return "FieldIndep";
     330  else
     331  {
     332    if (field > FieldQ) field = FieldGeneral;
     333    return p_FieldEnum_2_String(field);
     334  }
     335}
     336
    286337/***************************************************************
    287338 * 
     
    454505        break;
    455506       
    456       case p_kBucketSetLm_Proc:
    457       {
    458         if (field != FieldZp)
    459         {
    460           field = FieldGeneral;
    461           length = LengthGeneral;
    462           ord = OrdGeneral;
    463           return;
    464         }
    465       }
    466 
    467507      default: break;
    468508  }
Note: See TracChangeset for help on using the changeset viewer.