Changeset 798f721 in git for kernel/gfan.cc


Ignore:
Timestamp:
Mar 31, 2009, 11:59:14 AM (15 years ago)
Author:
Martin Monerjan
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
2b7bb5d62530e14bffcd668b38aba478016be940
Parents:
19567be673a59b344557c01d516e211ba26b36c3
Message:
Started work on facet::flip(ideal I, facet *f) method to compute the groebner basis
on the other side of a flippable facet.
Is there a kernel implementation to check the rank of a matrix?


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

Legend:

Unmodified
Added
Removed
  • kernel/gfan.cc

    r19567b r798f721  
    22Compute the Groebner fan of an ideal
    33$Author: monerjan $
    4 $Date: 2009-03-30 14:07:21 $
    5 $Header: /exports/cvsroot-2/cvsroot/kernel/gfan.cc,v 1.24 2009-03-30 14:07:21 monerjan Exp $
    6 $Id: gfan.cc,v 1.24 2009-03-30 14:07:21 monerjan Exp $
     4$Date: 2009-03-31 09:59:14 $
     5$Header: /exports/cvsroot-2/cvsroot/kernel/gfan.cc,v 1.25 2009-03-31 09:59:14 monerjan Exp $
     6$Id: gfan.cc,v 1.25 2009-03-31 09:59:14 monerjan Exp $
    77*/
    88
     
    1717#include "kmatrix.h"
    1818#include "fast_maps.h"  //Mapping of ideals
     19#include "maps.h"
    1920#include "iostream.h"   //deprecated
    2021
     
    7677                        fNormal->show();
    7778                }
     79               
     80                /** \brief The Groebner basis on the other side of a shared facet
     81                *
     82                * In order not to have to compute the flipped GB twice we store the basis we already get
     83                * when identifying search facets. Thus in the next step of the reverse search we can
     84                * just copy the old cone and update the facet and the gcBasis
     85                */
     86                ideal flibGB;           //The Groebner Basis on the other side, computed via gcone::flip
    7887               
    7988                bool isFlippable;       //flippable facet? Want to have cone->isflippable.facet[i]
     
    278287                }//method getConeNormals(ideal I)       
    279288               
    280                 void flip();            //Compute "the other side"
     289                /** \brief Compute the Groebner Basis on the other side of a shared facet
     290                *
     291                * Implements algorithm 4.3.2 from Anders' thesis.
     292                * As shown there it is not necessary to compute an interior point. The knowledge of the facet normal
     293                * suffices. A term \f$ x^\gamma \f$ of \f$ g \f$ is in \f$  in_\omega(g) \f$ iff \f$ \gamma - leadexp(g)\f$
     294                * is parallel to \f$ leadexp(g) \f$
     295                * Checking for parallelity is done by computing the rank of the matrix consisting of the vectors in question.
     296                * Another possibility would be to compute an interior point of the facet and taking all terms having the same
     297                * weight with respect to this interior point.
     298                *\param ideal, facet
     299                */
     300                void flip(ideal I, facet *f)            //Compute "the other side"
     301                {
     302                        /*1st step: Compute the initial ideal*/
     303                        map mapping;
     304                        idhdl h;
     305                        ideal image;
     306                        mapping=IDMAP(h);
     307                        image=idInit(1,1);
     308                        image=maGetPreimage(currRing,mapping,image);                   
     309                }
    281310                               
    282311                /** \brief Compute a Groebner Basis
     
    354383        gcAct->getGB(inputIdeal);
    355384        gcAct->getConeNormals(gcAct->gcBasis);  //hopefully compute the normals
     385       
    356386        /*Now it is time to compute the search facets, respectively start the reverse search.
    357         But since we are in the root all facets should be search facets.
     387        But since we are in the root all facets should be search facets. IS THIS TRUE?
    358388        MIND: AS OF NOW, THE LIST OF FACETS IS NOT PURGED OF NON-FLIPPAPLE FACETS
    359389        */
Note: See TracChangeset for help on using the changeset viewer.