Changeset 92a473 in git


Ignore:
Timestamp:
Sep 21, 2005, 9:13:10 AM (19 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
d83bbe1632a5e0ab0676e4581f6f2e91fae7b383
Parents:
8062aa63166d4d1d159c8cd2c00a2baf0be49271
Message:
*bricken: ring extraction


git-svn-id: file:///usr/local/Singular/svn/trunk@8633 2c84dea3-7e68-4137-9b89-c4e89433aadc
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • kernel/Ideal.h

    r8062aa r92a473  
    11#ifndef IDEAL_CPP_HEADER
    22#define IDEAL_CPP_HEADER
    3 //$Id: Ideal.h,v 1.5 2005-09-20 07:18:18 bricken Exp $
     3//$Id: Ideal.h,v 1.6 2005-09-21 07:13:10 bricken Exp $
    44#include <vector>
    55#include "Poly.h"
     
    2626   {
    2727   
     28 }
     29 ring getRing() const{
     30  //FIXME: is a hack
     31  if (size()>0){
     32    return storage[0].getRing();
     33  }
     34  else
     35  return (ring) NULL;
    2836 }
    2937 poly_type& operator[] (int n){
  • modules/openmathserver/polyd.py

    r8062aa r92a473  
    1010groebnersym=OMSymbol("groebner",content)
    1111DMPsym=OMSymbol("DMP",content)
     12DMPLsym=OMSymbol("DMPL",content)
    1213SDMPsym=OMSymbol("SDMP",content)
    1314termsym=OMSymbol("term", content)
     15dpsym=OMSymbol("graded_reverse_lexicographic", content)
     16lpsym=OMSymbol("lexicographic", content)
     17
    1418poly_ring_dsym=OMSymbol("poly_ring_d",content)
    1519def groebnerfunc(context, *args):
  • modules/openmathserver/singularom.py

    r8062aa r92a473  
    22from interpreter import *
    33from objects import *
    4 from polyd import DMPsym, SDMPsym, termsym
     4from polyd import DMPsym, SDMPsym, termsym, lpsym,dpsym,poly_ring_dsym, DMPLsym
     5from fieldname1 import Qsym as Rationals
    56singular=singular_globals_proxy()
     7class SingularException(Exception):
     8  pass
     9
    610def encodePoly(p):
    711  terms=[encodeTerm(t) for t in p]
    812  return OMApply(SDMPsym,terms)
    913
     14def encodePolyWithRing(p):
     15  """FIXME: just encodes currentRing"""
     16  p=encodePoly(p)
     17  r=encodeRing(ring())
     18  return OMApply(DMPsym,[r,p])
     19 
     20 
     21orderingTable={
     22  "lp": lpsym,
     23  "dp": dpsym
     24}
     25def encodeOrdering(r):
     26  rl=singular.ringlist(r)
     27  return orderingTable[rl[2][0][0]]
     28
     29def encodeField(r):
     30  char=singular.char(r)
     31  if char==0 and singular.npars(r)==0:
     32    return Rationals
     33  else:
     34    raise SingularException("unknown field to encode")
     35
     36def encodeIdeal(i):
     37  """FIXME: uses only currentRing"""
     38  r=encodeRing(ring())
     39  return OMApply(DMPLsym,[r]+[encodePoly(p) for p in i])
     40def encodeRing(r):
     41    nv=singular.nvars(r)
     42    f=encodeField(r)
     43    return OMApply(poly_ring_dsym,[f,OMint(nv)])   
     44 
    1045def encodeTerm(t):
    1146  """FIXME: ugly because it uses slow interpreter interface"""
  • modules/openmathserver/singulartest.sing

    r8062aa r92a473  
    11ring r=0,(x,y,z),lp;
    22poly f=37x3y+x2yz;
     3ideal i=f,f*f,f*f*f;
    34LIB("python_module.so");
    45Python_module::python("from interpreter import singular_globals_proxy
     
    67from context import *
    78inter=singular_globals_proxy()
     9inter.r.set()
     10inter.__getattr__('print')(inter.f.ring())
    811doc= encodePoly(inter.f)
    9 #print doc
    10 #print doc.children
    1112context=Context()
     13output=context.XMLEncodeObject(doc)
     14print output
     15doc=encodeOrdering(singular.r)
     16output=context.XMLEncodeObject(doc)
     17print output
     18doc=encodeRing(singular.r)
     19output=context.XMLEncodeObject(doc)
     20print output
     21doc=encodePolyWithRing(singular.f)
     22output=context.XMLEncodeObject(doc)
     23print output
     24doc=encodeIdeal(singular.i)
     25output=context.XMLEncodeObject(doc)
     26print output
     27print 'semi encoding groebner basis'
     28doc=encodeIdeal(singular.groebner(singular.i))
    1229output=context.XMLEncodeObject(doc)
    1330print output
  • modules/python/ideal_wrap.cc

    r8062aa r92a473  
    1 //$Id: ideal_wrap.cc,v 1.5 2005-09-20 08:39:44 bricken Exp $
     1//$Id: ideal_wrap.cc,v 1.6 2005-09-21 07:12:48 bricken Exp $
    22#include <poly_wrap.h>
    33#include <boost/python.hpp>
     
    55#include "Poly.h"
    66#include "Ideal.h"
     7#include "ring_wrap.h"
    78#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
    89using boost::python::self;
     
    2728  return res;
    2829}
     30static Ring Ideal_get_Ring(const Ideal & p){
     31  return p.getRing();
     32}
    2933
    3034
     
    3337   boost::python::class_<Ideal>("ideal")
    3438     .def("__str__", Ideal_as_str)
     39     .def("ring",Ideal_get_Ring)
    3540     .def(boost::python::init <>())
    3641     .def(vector_indexing_suite<Ideal >());
  • modules/python/poly_wrap.cc

    r8062aa r92a473  
    33#include "mod2.h"
    44#include "Poly.h"
     5#include "ring_wrap.h"
    56using boost::python::self;
    67boost::python::str Poly_as_str(const Poly& p)
     
    1213  return boost::python::str(out,strlen(out));
    1314}
     15static Ring Poly_get_Ring(const Poly & p){
     16  return p.getRing();
     17}
    1418void export_poly()
    1519{
    1620   boost::python::class_<Poly>("polynomial")
     21    .def("ring",Poly_get_Ring)
    1722    .def(boost::python::init <int>())
    1823    .def(boost::python::init <Poly>())
  • modules/python/ring_wrap.cc

    r8062aa r92a473  
    1 //$Id: ring_wrap.cc,v 1.2 2005-09-20 08:39:44 bricken Exp $
     1//$Id: ring_wrap.cc,v 1.3 2005-09-21 07:12:48 bricken Exp $
    22#include <poly_wrap.h>
    33#include <boost/python.hpp>
     
    1515boost::python::class_<Ring>("ring")
    1616     .def("__str__", Ring_as_str)
     17     .def("set", &Ring::set)
    1718     .def(boost::python::init <>());
    1819
  • modules/python/ring_wrap.h

    r8062aa r92a473  
    1 //$Id: ring_wrap.h,v 1.4 2005-09-20 12:22:59 bricken Exp $
     1//$Id: ring_wrap.h,v 1.5 2005-09-21 07:12:48 bricken Exp $
    22#ifndef RING_WRAP_HEADER
    33#define RING_WRAP_HEADER
     4#include "ring.h"
    45class Ring{
    56  public:
     
    1617        --(pimpl->ref);
    1718    }
     19    void set(){
     20      rChangeCurrRing(pimpl);
     21    }
    1822};
    1923void export_ring();
Note: See TracChangeset for help on using the changeset viewer.