Changeset a79a128 in git for Singular/ipprint.cc
- Timestamp:
- Apr 17, 1999, 4:58:54 PM (25 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- a30caa3e79912e5d42b9d62c6d2e1aa1239e5486
- Parents:
- b45d9738be1be20b4a90b80e61feae602bc1558d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ipprint.cc
rb45d97 ra79a128 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ipprint.cc,v 1. 9 1999-04-17 12:30:18 SingularExp $ */4 /* $Id: ipprint.cc,v 1.10 1999-04-17 14:58:49 obachman Exp $ */ 5 5 /* 6 6 * ABSTRACT: interpreter: printing … … 18 18 #include "ipshell.h" 19 19 #include "ipprint.h" 20 #include "ideals.h" 20 21 21 22 /*2 22 23 * print for: int, string, poly, vector, ideal 23 24 */ 24 BOOLEAN jjPRINT_GEN(leftv res, leftv u)25 {26 char *s=u->String();27 if (s==NULL) return TRUE;28 PrintS(s);29 PrintLn();30 FreeL((ADDRESS)s);31 return FALSE;32 }33 34 /*235 * print for: list36 */37 BOOLEAN jjPRINT_LIST(leftv res, leftv u)38 {39 u->Print();40 return FALSE;41 }42 43 25 /*2 44 26 * print for: intvec 45 27 */ 46 BOOLEAN jjPRINT_INTVEC(leftv res,leftv u)28 static BOOLEAN ipPrint_INTVEC(leftv u) 47 29 { 48 30 intvec *v=(intvec *)u->Data(); … … 55 37 * print for: intmat 56 38 */ 57 BOOLEAN jjPRINT_INTMAT(leftv res,leftv u)39 static BOOLEAN ipPrint_INTMAT(leftv u) 58 40 { 59 41 intvec *v=(intvec *)u->Data(); … … 73 55 * internal print for: matrix 74 56 */ 75 void jjPRINT_MA0(matrix m, const char *name)57 static void ipPrint_MA0(matrix m, const char *name) 76 58 { 77 59 if (MATCOLS(m)>0) … … 196 178 * print for: matrix 197 179 */ 198 BOOLEAN jjPRINT_MA(leftv res,leftv u)180 static BOOLEAN ipPrint_MA(leftv u) 199 181 { 200 182 matrix m=(matrix)u->Data(); 201 jjPRINT_MA0(m,u->Fullname());183 ipPrint_MA0(m,u->Fullname()); 202 184 return FALSE; 203 185 } … … 206 188 * print for: vector 207 189 */ 208 BOOLEAN jjPRINT_V(leftv res,leftv u)190 static BOOLEAN ipPrint_V(leftv u) 209 191 { 210 192 polyset m=NULL; … … 232 214 } 233 215 216 BOOLEAN jjPRINT(leftv res, leftv u) 217 { 218 switch(u->Typ()) 219 { 220 case INTVEC_CMD: 221 return ipPrint_INTVEC(u); 222 223 case INTMAT_CMD: 224 return ipPrint_INTMAT(u); 225 226 case MATRIX_CMD: 227 return ipPrint_MA(u); 228 229 case IDEAL_CMD: 230 { 231 char* s = u->String(); 232 PrintS(s); 233 PrintLn(); 234 FreeL(s); 235 return FALSE; 236 } 237 238 case MODUL_CMD: 239 { 240 matrix m = idModule2Matrix(idCopy((ideal) u->Data())); 241 ipPrint_MA0(m, u->Fullname()); 242 idDelete((ideal *) &m); 243 return FALSE; 244 } 245 246 case VECTOR_CMD: 247 return ipPrint_V(u); 248 249 default: 250 u->Print(); 251 return FALSE; 252 } 253 } 254 255 234 256 /*2 235 257 * dbprint … … 252 274 hh=h->next; 253 275 h->next=NULL; 254 if ( iiExprArith1(res,h,PRINT_CMD)) return TRUE;276 if (jjPRINT(res, h)) return TRUE; 255 277 h->next=hh; 256 278 h=hh; … … 260 282 } 261 283 284 static void ipPrintBetti(leftv u) 285 { 286 int i,j; 287 intvec * betti=(intvec *)u->Data(); 288 // head line -------------------------------------------------------- 289 PrintS(" "); // 6 spaces for no. and : 290 for(j=0;j<betti->cols();j++) Print(" %5d",j); // 6 spaces pro column 291 PrintS("\n------"); // 6 spaces for no. and : 292 for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column 293 PrintLn(); 294 // the table -------------------------------------------------------- 295 for(i=0;i<betti->rows();i++) 296 { 297 Print("%5d:",i); 298 for(j=1;j<=betti->cols();j++) 299 { 300 Print(" %5d",IMATELEM(*betti,i+1,j)); 301 } 302 PrintLn(); 303 } 304 // sum -------------------------------------------------------------- 305 PrintS("------"); // 6 spaces for no. and : 306 for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column 307 PrintS("\ntotal:"); 308 for(j=0;j<betti->cols();j++) 309 { 310 int s=0; 311 for(i=0;i<betti->rows();i++) 312 { 313 s+=IMATELEM(*betti,i+1,j+1); 314 } 315 Print(" %5d",s); // 6 spaces pro column 316 } 317 PrintLn(); 318 } 319 320 262 321 /*2 263 322 * print(...,"format") … … 268 327 if ((u->Typ()==INTMAT_CMD)&&(strcmp((char *)v->Data(),"betti")==0)) 269 328 { 270 int i,j; 271 intvec * betti=(intvec *)u->Data(); 272 // head line -------------------------------------------------------- 273 PrintS(" "); // 6 spaces for no. and : 274 for(j=0;j<betti->cols();j++) Print(" %5d",j); // 6 spaces pro column 275 PrintS("\n------"); // 6 spaces for no. and : 276 for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column 277 PrintLn(); 278 // the table -------------------------------------------------------- 279 for(i=0;i<betti->rows();i++) 280 { 281 Print("%5d:",i); 282 for(j=1;j<=betti->cols();j++) 283 { 284 Print(" %5d",IMATELEM(*betti,i+1,j)); 285 } 286 PrintLn(); 287 } 288 // sum -------------------------------------------------------------- 289 PrintS("------"); // 6 spaces for no. and : 290 for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column 291 PrintS("\ntotal:"); 292 for(j=0;j<betti->cols();j++) 293 { 294 int s=0; 295 for(i=0;i<betti->rows();i++) 296 { 297 s+=IMATELEM(*betti,i+1,j+1); 298 } 299 Print(" %5d",s); // 6 spaces pro column 300 } 301 PrintLn(); 329 ipPrintBetti(u); 330 res->data = NULL; 331 res->rtyp = NONE; 302 332 return FALSE; 303 333 } 304 334 /* ======================== end betti ================================= */ 305 335 306 return jjPRINT_GEN(res,u); 307 } 336 if (strcmp((char *)v->Data(),"%s") == 0) 337 { 338 res->data = (char*) u->String(); 339 } 340 else if (strcmp((char *)v->Data(),"%;") == 0) 341 { 342 SPrintStart(); 343 u->Print(); 344 res->data = SPrintEnd(); 345 } 346 else if (strcmp((char *)v->Data(),"%p") == 0) 347 { 348 SPrintStart(); 349 iiExprArith1(res, u, PRINT_CMD); 350 res->data = SPrintEnd(); 351 } 352 else if (strcmp((char *)v->Data(),"%b") == 0 && (u->Typ()==INTMAT_CMD)) 353 { 354 SPrintStart(); 355 ipPrintBetti(u); 356 res->data = SPrintEnd(); 357 } 358 else 359 { 360 res->data = u->String(); 361 } 362 363 res->rtyp = STRING_CMD; 364 return FALSE; 365 } 366 367 368 369 370 371 372 373 374 375 376 377 378 379
Note: See TracChangeset
for help on using the changeset viewer.