Changeset 086e32 in git
- Timestamp:
- Jan 27, 2016, 2:31:29 PM (8 years ago)
- 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
- Location:
- Singular
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/gfanlib/bbcone.cc
rb35053 r086e32 12 12 #include <Singular/ipshell.h> 13 13 #include <Singular/blackbox.h> 14 15 #include <Singular/links/ssiLink.h> 14 16 15 17 #include <callgfanlib_conversion.h> … … 1739 1741 } 1740 1742 1741 #if 0 1743 1744 static 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 1754 static 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 1742 1767 BOOLEAN bbcone_serialize(blackbox *b, void *d, si_link f) 1743 1768 { 1744 1769 ssiInfo *dd = (ssiInfo *)f->data; 1770 1745 1771 sleftv l; 1746 1772 memset(&l,0,sizeof(l)); … … 1748 1774 l.data=(void*)"cone"; 1749 1775 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 1753 1780 gfan::ZMatrix i=Z->getInequalities(); 1754 .... 1755 /* LINEAR_SPAN or EQUATIONS */ fprintf(dd->f_write("%d ",Z->areImpliedEquationsKnown()); 1781 gfanZMatrixWriteFd(i,dd); 1782 1756 1783 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 1764 1786 return FALSE; 1765 1787 } 1788 1789 static 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 1799 static 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 1766 1815 BOOLEAN bbcone_deserialize(blackbox **b, void **d, si_link f) 1767 1816 { 1768 1817 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 1783 1825 *d=Z; 1784 1826 return FALSE; 1785 1827 } 1786 #endif 1828 1787 1829 void bbcone_setup(SModulFunctions* p) 1788 1830 { … … 1798 1840 b->blackbox_Assign=bbcone_Assign; 1799 1841 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; 1802 1844 p->iiAddCproc("","coneViaInequalities",FALSE,coneViaNormals); 1803 1845 p->iiAddCproc("","coneViaPoints",FALSE,coneViaRays); -
Singular/links/ssiLink.cc
rb35053 r086e32 65 65 // 7->8: qring 66 66 // 8->9: module: added rank 67 68 typedef struct69 {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;80 67 81 68 link_list ssiToBeClosed=NULL; -
Singular/links/ssiLink.h
rb35053 r086e32 11 11 #include <Singular/links/silink.h> 12 12 13 typedef 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 13 26 BOOLEAN ssiOpen(si_link l, short flag, leftv u); 14 27 BOOLEAN ssiWrite(si_link l, leftv v); … … 21 34 void sig_chld_hdl(int sig); 22 35 #endif 23
Note: See TracChangeset
for help on using the changeset viewer.