Changeset 086e32 in git


Ignore:
Timestamp:
Jan 27, 2016, 2:31:29 PM (8 years ago)
Author:
Yue <ren@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
803fa0dd53591dc136893f7fe2ee9841a5c64f6a
Parents:
b3505315c6774a9d4a7d4479c96f92820f1c6b71
git-author:
Yue <ren@mathematik.uni-kl.de>2016-01-27 14:31:29+01:00
git-committer:
Yue <ren@mathematik.uni-kl.de>2016-01-27 14:32:40+01:00
Message:
new: using cones in parallel.lib
Location:
Singular
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/dyn_modules/gfanlib/bbcone.cc

    rb35053 r086e32  
    1212#include <Singular/ipshell.h>
    1313#include <Singular/blackbox.h>
     14
     15#include <Singular/links/ssiLink.h>
    1416
    1517#include <callgfanlib_conversion.h>
     
    17391741}
    17401742
    1741 #if 0
     1743
     1744static void gfanIntegerWriteFd(gfan::Integer n, ssiInfo* dd)
     1745{
     1746  mpz_t tmp;
     1747  mpz_init(tmp);
     1748  n.setGmp(tmp);
     1749  mpz_out_str (dd->f_write,SSI_BASE, tmp);
     1750  mpz_clear(tmp);
     1751  fputc(' ',dd->f_write);
     1752}
     1753
     1754static void gfanZMatrixWriteFd(gfan::ZMatrix M, ssiInfo* dd)
     1755{
     1756  fprintf(dd->f_write,"%d %d ",M.getHeight(),M.getWidth());
     1757
     1758  for (int i=0; i<M.getHeight(); i++)
     1759  {
     1760    for (int j=0; j<M.getWidth(); j++)
     1761    {
     1762      gfanIntegerWriteFd(M[i][j],dd);
     1763    }
     1764  }
     1765}
     1766
    17421767BOOLEAN bbcone_serialize(blackbox *b, void *d, si_link f)
    17431768{
    17441769  ssiInfo *dd = (ssiInfo *)f->data;
     1770
    17451771  sleftv l;
    17461772  memset(&l,0,sizeof(l));
     
    17481774  l.data=(void*)"cone";
    17491775  f->m->Write(f, &l);
    1750   gfan::ZCone *Z=((gfan::ZCone*) d;
    1751   /* AMBIENT_DIM */ fprintf(dd->f_write("%d ",Z->ambientDimension());
    1752   /* FACETS or INEQUALITIES */ fprintf(dd->f_write("%d ",Z->areFacetsKnown());
     1776
     1777  gfan::ZCone *Z = (gfan::ZCone*) d;
     1778  fprintf(dd->f_write,"%d ",Z->areImpliedEquationsKnown()+Z->areFacetsKnown()*2);
     1779
    17531780  gfan::ZMatrix i=Z->getInequalities();
    1754 ....
    1755   /* LINEAR_SPAN or EQUATIONS */ fprintf(dd->f_write("%d ",Z->areImpliedEquationsKnown());
     1781  gfanZMatrixWriteFd(i,dd);
     1782
    17561783  gfan::ZMatrix e=Z->getEquations();
    1757 ....
    1758   /* RAYS */
    1759   gfan::ZMatrix r=Z->extremeRays();
    1760 ....
    1761   /* LINEALITY_SPACE */
    1762   gfan::ZMatrix l=Z->generatorsOfLinealitySpace();
    1763 ....
     1784  gfanZMatrixWriteFd(e,dd);
     1785
    17641786  return FALSE;
    17651787}
     1788
     1789static gfan::Integer gfanIntegerReadFd(ssiInfo* dd)
     1790{
     1791  mpz_t tmp;
     1792  mpz_init(tmp);
     1793  s_readmpz(dd->f_read,tmp);
     1794  gfan::Integer n(tmp);
     1795  mpz_clear(tmp);
     1796  return n;
     1797}
     1798
     1799static gfan::ZMatrix gfanZMatrixReadFd(ssiInfo* dd)
     1800{
     1801  int r=s_readint(dd->f_read);
     1802  int c=s_readint(dd->f_read);
     1803
     1804  gfan::ZMatrix M(r,c);
     1805  for (int i=0; i<r; i++)
     1806  {
     1807    for (int j=0; j<c; j++)
     1808    {
     1809      M[i][j] = gfanIntegerReadFd(dd);
     1810    }
     1811  }
     1812  return M;
     1813}
     1814
    17661815BOOLEAN bbcone_deserialize(blackbox **b, void **d, si_link f)
    17671816{
    17681817  ssiInfo *dd = (ssiInfo *)f->data;
    1769   gfan::ZCone *Z;
    1770   /* AMBIENT_DIM */ = s_readint(dd->f_read);
    1771   /* areFacetsKnown: */ = s_readint(dd->f_read);
    1772   if (areFacetsKnown)
    1773   ....FACETS
    1774   else
    1775   ....INEQUALITIES
    1776   /* areImpliedEquationsKnown*/ = s_readint(dd->f_read);
    1777   if(areImpliedEquationsKnown)
    1778   ....EQUATIONS
    1779   else
    1780   ...LINEAR_SPAN
    1781   ...RAYS
    1782   ...LINEALITY_SPACE
     1818  int preassumptions = s_readint(dd->f_read);
     1819
     1820  gfan::ZMatrix i = gfanZMatrixReadFd(dd);
     1821  gfan::ZMatrix e = gfanZMatrixReadFd(dd);
     1822
     1823  gfan::ZCone* Z = new gfan::ZCone(i,e,preassumptions);
     1824
    17831825  *d=Z;
    17841826  return FALSE;
    17851827}
    1786 #endif
     1828
    17871829void bbcone_setup(SModulFunctions* p)
    17881830{
     
    17981840  b->blackbox_Assign=bbcone_Assign;
    17991841  b->blackbox_Op2=bbcone_Op2;
    1800   //b->blackbox_serialize=bbcone_serialize;
    1801   //b->blackbox_deserialize=bbcone_deserialize;
     1842  b->blackbox_serialize=bbcone_serialize;
     1843  b->blackbox_deserialize=bbcone_deserialize;
    18021844  p->iiAddCproc("","coneViaInequalities",FALSE,coneViaNormals);
    18031845  p->iiAddCproc("","coneViaPoints",FALSE,coneViaRays);
  • Singular/links/ssiLink.cc

    rb35053 r086e32  
    6565// 7->8: qring
    6666// 8->9: module: added rank
    67 
    68 typedef struct
    69 {
    70   s_buff f_read;
    71   FILE *f_write;
    72   ring r;
    73   pid_t pid; /* only valid for fork/tcp mode*/
    74   int fd_read,fd_write; /* only valid for fork/tcp mode*/
    75   char level;
    76   char send_quit_at_exit;
    77   char quit_sent;
    78 
    79 } ssiInfo;
    8067
    8168link_list ssiToBeClosed=NULL;
  • Singular/links/ssiLink.h

    rb35053 r086e32  
    1111#include <Singular/links/silink.h>
    1212
     13typedef struct
     14{
     15  s_buff f_read;
     16  FILE *f_write;
     17  ring r;
     18  pid_t pid; /* only valid for fork/tcp mode*/
     19  int fd_read,fd_write; /* only valid for fork/tcp mode*/
     20  char level;
     21  char send_quit_at_exit;
     22  char quit_sent;
     23
     24} ssiInfo;
     25
    1326BOOLEAN ssiOpen(si_link l, short flag, leftv u);
    1427BOOLEAN ssiWrite(si_link l, leftv v);
     
    2134void sig_chld_hdl(int sig);
    2235#endif
    23 
Note: See TracChangeset for help on using the changeset viewer.