Knowledge

SymbolicC++

Source 📝

1876: 1888: 442: 1434:
was described in using SymbolicC++ in 2002. Subsequently, support for Gröbner bases was added. The third version features a complete rewrite of SymbolicC++ and was released in 2008. This version encapsulates all symbolic expressions in the
1494:
The Nonlinear Workbook: Chaos, Fractals, Cellular Automata, Neural Networks, Genetic Algorithm, Gene Expression Programming, Wavelets, Fuzzy Logic with C++, Java and SymbolicC++ Programs, fourth edition,
367: 1632: 658: 1919: 1914: 1625: 1455: 1682: 1880: 1618: 1146:. The first book described the first version of SymbolicC++. In this version the main data type for symbolic computation was the 1892: 1831: 1717: 1672: 1770: 1657: 1687: 1810: 36: 1549:
SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming, 2nd extended and revised edition,
1662: 135: 101: 1186: 1924: 1826: 1641: 123: 437:{\displaystyle {\begin{pmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \end{pmatrix}}} 1568: 614: 89: 1752: 1649: 1205: 1785: 1727: 84: 1760: 1507:
Continuous Symmetries, Lie Algebras, Differential Equations and Computer Algebra, second edition,
635: 1702: 1431: 622: 1775: 1143: 361: 96: 72: 1430:
class and initial support for simple integration. Support for the algebraic computation of
1805: 1765: 1168: 1605: 77: 138:. SymbolicC++ is used by including a C++ header file or by linking against a library. 1908: 131: 1800: 1195: 630: 1536:
SymbolicC++: An introduction to Computer Algebra Using Object-Oriented Programming
1851: 1598: 1443: 1177: 727:// The operator b is the annihilation operator and bd is the creation operator 111: 22: 1697: 1564:
Applied Geometrical Algebras in computer Science and Engineering AGACSE 2001
1610: 609:
The next program illustrates non-commutative symbols in SymbolicC++. Here
1841: 1722: 1707: 1846: 1780: 1712: 1569:
http://www.ceac.aston.ac.uk/research/staff/jpf/papers/paper25/index.php
1158: 1560:
Fletcher, J.P. (2002). Symbolic Processing of Clifford Numbers in C++
1861: 1856: 1836: 1794: 1677: 1426:
The second version of SymbolicC++ featured new classes such as the
127: 65: 1790: 1742: 1732: 1692: 1667: 1460: 1737: 1614: 664:
operator toggles the commutativity of a variable, i.e. if
1481:
Quantum Mechanics Using Computer Algebra, second edition,
1134:
Further examples can be found in the books listed below.
376: 638: 370: 1819: 1751: 1648: 107: 95: 83: 71: 61: 35: 21: 1442:Newer versions are available from the SymbolicC++ 652: 436: 1583:, M. Sc. Dissertation, Rand Afrikaans University. 1214: : A template class for symbolic expressions 1142:SymbolicC++ is described in a series of books on 1547:Tan Kiat Shi, Steeb, W.-H. and Hardy, Y (2000). 1521:Hardy, Y, Tan Kiat Shi and Steeb, W.-H. (2008). 27:Yorick Hardy, Willi-Hans Steeb and Tan Kiat Shi 1150:class. The list of available classes included 1626: 8: 1562:in Doran C., Dorst L. and Lasenby J. (eds.) 647: 16: 1204: : A template class for matrices (see 112:http://issc.uj.ac.za/symbolic/symbolic.html 1887: 1633: 1619: 1611: 1194: : A template class for vectors (see 15: 1525:, World Scientific Publishing, Singapore. 1517: 1515: 639: 637: 371: 369: 1509:World Scientific Publishing, Singapore. 1496:World Scientific Publishing, Singapore. 1483:World Scientific Publishing, Singapore. 1472: 1534:Tan Kiat Shi and Steeb, W.-H. (1997). 1456:Comparison of computer algebra systems 7: 1606:Programming exercises in SymbolicC++ 126:written in the programming language 42:3.35 / September 15, 2010 14: 1523:Computer Algebra with SymbolicC++ 343:// => -sin(y)*df(y,x)*e^cos(y) 1886: 1875: 1874: 134:released under the terms of the 1920:Free software programmed in C++ 1581:Gröbner bases with Symbolic C++ 360:The following program fragment 640: 1: 1915:Free computer algebra systems 1185: : A template class for 1176: : A template class for 1167: : A template class for 1811:Engineering Equation Solver 1538:Springer-Verlag, Singapore. 1941: 672:is non-commutative and if 653:{\displaystyle |0\rangle } 136:GNU General Public License 1870: 1187:automatic differentiation 1078:"result2*vs = " 955:"result1*vs = " 694:"symbolicc++.h" 157:"symbolicc++.h" 57: 31: 1642:Computer algebra systems 1551:Springer-Verlag, London. 1220: 682: 446: 145: 124:computer algebra system 1797:symbolic math toolbox) 1579:Kruger, P.J.M (2003). 1232:"rational.h" 1039:"result2 = " 916:"result1 = " 654: 438: 44:; 14 years ago 1566:, Birkhauser, Basel. 1505:Steeb, W.-H. (2007). 1492:Steeb, W.-H. (2008). 1479:Steeb, W.-H. (2010). 1238:"msymbol.h" 1157: : An unbounded 655: 615:annihilation operator 439: 122:is a general purpose 90:Mathematical software 1206:matrix (mathematics) 668:is commutative that 636: 368: 235:// => 1/2*x^(2)+x 676:is non-commutative 18: 650: 434: 428: 1902: 1901: 1432:Clifford algebras 623:creation operator 458:"theta" 117: 116: 1932: 1890: 1889: 1878: 1877: 1761:ClassPad Manager 1635: 1628: 1621: 1612: 1602: 1601: 1599:Official website 1584: 1577: 1571: 1558: 1552: 1545: 1539: 1532: 1526: 1519: 1510: 1503: 1497: 1490: 1484: 1477: 1438: 1429: 1422: 1419: 1416: 1413: 1410: 1409:// => df(y,x) 1407: 1404: 1401: 1398: 1395: 1392: 1389: 1386: 1383: 1380: 1377: 1374: 1371: 1368: 1365: 1364:// => 1/2 yˆ2 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1335: 1332: 1329: 1326: 1323: 1320: 1317: 1314: 1311: 1308: 1305: 1302: 1299: 1296: 1293: 1290: 1287: 1284: 1281: 1278: 1275: 1272: 1269: 1266: 1263: 1260: 1257: 1254: 1251: 1248: 1245: 1242: 1239: 1236: 1233: 1230: 1227: 1226:<iostream> 1224: 1213: 1203: 1193: 1184: 1175: 1169:rational numbers 1166: 1156: 1149: 1144:computer algebra 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1106: 1103: 1100: 1097: 1094: 1091: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 896: 893: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 821: 818: 815: 812: 809: 806: 803: 800: 797: 794: 791: 788: 785: 782: 779: 776: 773: 770: 767: 764: 761: 758: 755: 752: 749: 746: 743: 740: 737: 734: 731: 728: 725: 722: 719: 716: 713: 710: 707: 704: 701: 698: 695: 692: 689: 688:<iostream> 686: 680:is commutative. 679: 675: 671: 667: 663: 659: 657: 656: 651: 643: 628: 625:. The variable 620: 612: 600: 597: 594: 591: 588: 585: 582: 579: 576: 573: 570: 567: 564: 561: 558: 555: 552: 549: 546: 543: 540: 537: 534: 531: 528: 525: 522: 519: 516: 513: 510: 507: 504: 501: 498: 495: 492: 489: 486: 483: 480: 477: 474: 471: 468: 465: 462: 459: 456: 453: 450: 443: 441: 440: 435: 433: 432: 356: 353: 350: 347: 344: 341: 338: 335: 332: 329: 326: 323: 320: 317: 314: 311: 308: 305: 304:// => df(y,x) 302: 299: 296: 293: 290: 287: 284: 281: 278: 275: 272: 269: 266: 263: 260: 257: 254: 251: 248: 245: 242: 239: 236: 233: 230: 227: 224: 221: 218: 215: 212: 209: 206: 203: 200: 197: 194: 191: 188: 185: 182: 179: 176: 173: 170: 167: 164: 161: 158: 155: 152: 151:<iostream> 149: 73:Operating system 52: 50: 45: 19: 1940: 1939: 1935: 1934: 1933: 1931: 1930: 1929: 1905: 1904: 1903: 1898: 1866: 1815: 1806:TI InterActive! 1747: 1644: 1639: 1597: 1596: 1593: 1588: 1587: 1578: 1574: 1567: 1561: 1559: 1555: 1546: 1542: 1533: 1529: 1520: 1513: 1504: 1500: 1491: 1487: 1478: 1474: 1469: 1452: 1436: 1427: 1424: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1291: 1288: 1285: 1282: 1279: 1276: 1273: 1270: 1267: 1264: 1261: 1258: 1255: 1252: 1249: 1246: 1243: 1240: 1237: 1234: 1231: 1228: 1225: 1222: 1211: 1201: 1191: 1182: 1173: 1164: 1154: 1147: 1140: 1132: 1131: 1128: 1125: 1122: 1119: 1116: 1113: 1110: 1107: 1104: 1101: 1098: 1095: 1092: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 957: 954: 951: 948: 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 894: 891: 888: 885: 882: 879: 876: 873: 870: 867: 864: 861: 858: 855: 852: 849: 846: 843: 840: 837: 834: 831: 828: 825: 822: 819: 816: 813: 810: 807: 804: 801: 798: 795: 792: 789: 786: 783: 780: 777: 774: 771: 768: 765: 762: 759: 756: 753: 750: 747: 744: 741: 738: 735: 732: 729: 726: 723: 720: 717: 714: 711: 708: 705: 702: 699: 696: 693: 690: 687: 684: 677: 673: 669: 665: 661: 634: 633: 626: 618: 610: 607: 602: 601: 598: 595: 592: 589: 586: 583: 580: 577: 574: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 535: 532: 529: 526: 523: 520: 517: 514: 511: 508: 505: 502: 499: 496: 493: 490: 487: 484: 481: 478: 475: 472: 469: 466: 463: 460: 457: 454: 451: 448: 427: 426: 415: 400: 399: 388: 372: 366: 365: 358: 357: 354: 351: 348: 345: 342: 339: 336: 333: 330: 327: 324: 321: 318: 315: 312: 309: 306: 303: 300: 297: 294: 291: 288: 285: 282: 279: 276: 273: 270: 267: 264: 261: 258: 255: 252: 249: 246: 243: 240: 237: 234: 231: 228: 225: 222: 219: 216: 213: 210: 207: 204: 201: 198: 195: 192: 189: 186: 183: 180: 177: 174: 171: 168: 165: 162: 159: 156: 153: 150: 147: 144: 53: 48: 46: 43: 12: 11: 5: 1938: 1936: 1928: 1927: 1922: 1917: 1907: 1906: 1900: 1899: 1897: 1896: 1884: 1871: 1868: 1867: 1865: 1864: 1859: 1854: 1849: 1844: 1839: 1834: 1829: 1823: 1821: 1817: 1816: 1814: 1813: 1808: 1803: 1798: 1788: 1783: 1778: 1773: 1768: 1763: 1757: 1755: 1749: 1748: 1746: 1745: 1740: 1735: 1730: 1725: 1720: 1715: 1710: 1705: 1700: 1695: 1690: 1685: 1680: 1675: 1670: 1665: 1660: 1654: 1652: 1646: 1645: 1640: 1638: 1637: 1630: 1623: 1615: 1609: 1608: 1603: 1592: 1591:External links 1589: 1586: 1585: 1572: 1553: 1540: 1527: 1511: 1498: 1485: 1471: 1470: 1468: 1465: 1464: 1463: 1458: 1451: 1448: 1221: 1216: 1215: 1209: 1199: 1189: 1180: 1171: 1162: 1161:implementation 1139: 1136: 763:"vs" 751:"bd" 683: 649: 646: 642: 606: 604:The output is 447: 444:symbolically. 431: 425: 422: 419: 416: 414: 411: 408: 405: 402: 401: 398: 395: 392: 389: 387: 384: 381: 378: 377: 375: 146: 143: 140: 115: 114: 109: 105: 104: 99: 93: 92: 87: 81: 80: 78:Cross-platform 75: 69: 68: 63: 59: 58: 55: 54: 41: 39: 37:Stable release 33: 32: 29: 28: 25: 13: 10: 9: 6: 4: 3: 2: 1937: 1926: 1925:C++ libraries 1923: 1921: 1918: 1916: 1913: 1912: 1910: 1895: 1894: 1885: 1883: 1882: 1873: 1872: 1869: 1863: 1860: 1858: 1855: 1853: 1850: 1848: 1845: 1843: 1840: 1838: 1835: 1833: 1830: 1828: 1825: 1824: 1822: 1818: 1812: 1809: 1807: 1804: 1802: 1799: 1796: 1792: 1789: 1787: 1784: 1782: 1779: 1777: 1774: 1772: 1769: 1767: 1764: 1762: 1759: 1758: 1756: 1754: 1750: 1744: 1741: 1739: 1736: 1734: 1731: 1729: 1726: 1724: 1721: 1719: 1716: 1714: 1711: 1709: 1706: 1704: 1701: 1699: 1696: 1694: 1691: 1689: 1686: 1684: 1681: 1679: 1676: 1674: 1671: 1669: 1666: 1664: 1661: 1659: 1656: 1655: 1653: 1651: 1647: 1643: 1636: 1631: 1629: 1624: 1622: 1617: 1616: 1613: 1607: 1604: 1600: 1595: 1594: 1590: 1582: 1576: 1573: 1570: 1565: 1557: 1554: 1550: 1544: 1541: 1537: 1531: 1528: 1524: 1518: 1516: 1512: 1508: 1502: 1499: 1495: 1489: 1486: 1482: 1476: 1473: 1466: 1462: 1459: 1457: 1454: 1453: 1449: 1447: 1445: 1440: 1433: 1328:"y" 1289:"x" 1219: 1210: 1207: 1200: 1197: 1190: 1188: 1181: 1179: 1172: 1170: 1163: 1160: 1153: 1152: 1151: 1145: 1137: 1135: 739:"b" 681: 644: 632: 624: 616: 605: 566:// sin(theta) 445: 429: 423: 420: 417: 412: 409: 406: 403: 396: 393: 390: 385: 382: 379: 373: 363: 247:"y" 199:"x" 141: 139: 137: 133: 132:free software 129: 125: 121: 113: 110: 106: 103: 100: 98: 94: 91: 88: 86: 82: 79: 76: 74: 70: 67: 64: 60: 56: 40: 38: 34: 30: 26: 24: 20: 1891: 1879: 1820:Discontinued 1801:SMath Studio 1580: 1575: 1563: 1556: 1548: 1543: 1535: 1530: 1522: 1506: 1501: 1493: 1488: 1480: 1475: 1441: 1425: 1217: 1196:vector space 1141: 1133: 997:// Example 2 874:// Example 1 631:vacuum state 629:denotes the 608: 603: 359: 119: 118: 23:Developer(s) 1786:Mathematica 1753:Proprietary 1650:Open-source 1178:quaternions 364:the matrix 120:SymbolicC++ 17:SymbolicC++ 1909:Categories 1852:Mathomatic 1467:References 1428:Polynomial 1174:Quaternion 621:is a Bose 613:is a Bose 277:// => 0 62:Written in 49:2010-09-15 1738:Xcas/Giac 1698:Macaulay2 1244:namespace 1218:Example: 1099:subst_all 1051:subst_all 976:subst_all 928:subst_all 814:Equations 700:namespace 648:⟩ 424:θ 421:⁡ 413:θ 410:⁡ 404:− 397:θ 394:⁡ 386:θ 383:⁡ 211:integrate 163:namespace 1881:Category 1842:LiveMath 1728:Singular 1723:SageMath 1708:Normaliz 1450:See also 1437:Symbolic 1388:<< 1343:<< 1307:Rational 1235:#include 1229:#include 1223:#include 1165:Rational 1155:Verylong 1111:<< 1081:<< 1075:<< 1063:<< 1042:<< 1036:<< 1000:Symbolic 988:<< 958:<< 952:<< 940:<< 919:<< 913:<< 877:Symbolic 730:Symbolic 691:#include 685:#include 593:<< 569:Symbolic 545:<< 464:Symbolic 449:Symbolic 310:<< 283:<< 256:<< 238:Symbolic 208:<< 190:Symbolic 154:#include 148:#include 142:Examples 130:. It is 1847:Macsyma 1781:Mathcad 1713:PARI/GP 1663:Cadabra 1444:website 1439:class. 1159:integer 1138:History 1087:result2 1045:result2 1003:result2 964:result1 922:result1 880:result1 584:inverse 362:inverts 108:Website 97:License 47: ( 1862:ALTRAN 1857:muMATH 1837:Erable 1832:Derive 1795:MATLAB 1718:Reduce 1703:Maxima 1678:FriCAS 1673:Fermat 1412:return 1373:depend 1202:Matrix 1192:Vector 1183:Derive 1120:return 660:. The 346:return 1827:CAMAL 1791:muPAD 1776:Maple 1771:Magma 1743:Yacas 1733:SymPy 1693:GiNaC 1668:CoCoA 1658:Axiom 1461:GiNaC 1241:using 1105:rules 1057:rules 982:rules 934:rules 817:rules 697:using 530:theta 518:theta 497:theta 485:theta 452:theta 160:using 1893:List 1766:KANT 1683:FORM 1385:cout 1340:cout 1319:> 1316:> 1310:< 1304:< 1280:> 1274:< 1262:void 1256:main 1114:endl 1072:cout 1066:endl 1033:cout 991:endl 949:cout 943:endl 910:cout 718:void 712:main 617:and 590:cout 542:cout 307:cout 280:cout 253:cout 205:cout 181:void 175:main 85:Type 1688:GAP 1346:Int 1313:int 1301:Sum 1277:int 1271:Sum 1253:int 1247:std 1212:Sum 1148:Sum 709:int 703:std 587:(); 524:cos 512:sin 491:sin 479:cos 418:cos 407:sin 391:sin 380:cos 334:)), 325:cos 319:exp 172:int 166:std 128:C++ 102:GPL 66:C++ 1911:: 1514:^ 1446:. 1406:); 1391:df 1382:); 1361:); 1337:); 1298:); 1096:). 1093:vs 1018:bd 973:). 970:vs 904:bd 892:bd 871:); 865:== 862:vs 838:bd 835:== 832:bd 808:vs 799:vs 793:bd 784:bd 766:); 757:vs 754:), 745:bd 742:), 678:~b 670:~b 627:vs 619:bd 596:RI 572:RI 563:); 539:); 521:), 503:), 488:), 461:); 340:); 313:df 301:); 286:df 274:); 259:df 250:); 232:); 202:); 1793:( 1634:e 1627:t 1620:v 1421:} 1418:; 1415:0 1403:x 1400:, 1397:y 1394:( 1379:x 1376:( 1370:. 1367:y 1358:y 1355:, 1352:y 1349:( 1334:1 1331:, 1325:( 1322:y 1295:1 1292:, 1286:( 1283:x 1268:{ 1265:) 1259:( 1250:; 1208:) 1198:) 1129:} 1126:; 1123:0 1117:; 1108:) 1102:( 1090:* 1084:( 1069:; 1060:) 1054:( 1048:. 1030:; 1027:4 1024:^ 1021:) 1015:+ 1012:b 1009:( 1006:= 994:; 985:) 979:( 967:* 961:( 946:; 937:) 931:( 925:. 907:; 901:* 898:b 895:* 889:* 886:b 883:= 868:0 859:* 856:b 853:, 850:1 847:+ 844:b 841:* 829:* 826:b 823:( 820:= 811:; 805:~ 802:= 796:; 790:~ 787:= 781:; 778:b 775:~ 772:= 769:b 760:( 748:( 736:( 733:b 724:{ 721:) 715:( 706:; 674:b 666:b 662:~ 645:0 641:| 611:b 599:; 581:. 578:R 575:= 560:1 557:, 554:0 551:( 548:R 536:) 533:) 527:( 515:( 509:- 506:( 500:) 494:( 482:( 476:( 473:( 470:= 467:R 455:( 430:) 374:( 355:} 352:; 349:0 337:x 331:y 328:( 322:( 316:( 298:x 295:, 292:y 289:( 271:x 268:, 265:y 262:( 244:( 241:y 229:x 226:, 223:1 220:+ 217:x 214:( 196:( 193:x 187:{ 184:) 178:( 169:; 51:)

Index

Developer(s)
Stable release
C++
Operating system
Cross-platform
Type
Mathematical software
License
GPL
http://issc.uj.ac.za/symbolic/symbolic.html
computer algebra system
C++
free software
GNU General Public License
inverts
annihilation operator
creation operator
vacuum state
computer algebra
integer
rational numbers
quaternions
automatic differentiation
vector space
matrix (mathematics)
Clifford algebras
website
Comparison of computer algebra systems
GiNaC

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.