2012-02-01 11 views
32

Czy istnieje odpowiednik polecenia expr, które działa dla liczb zespolonych (reprezentowane listy dwóch podwójnych)?Arytmetyka liczby zespolonej w Tcl?

This biblioteka udostępnia funkcje dla liczby zespolonej arytmetyki i this wydaje się być użytecznym narzędziem do określenia wymaganej cexpr funkcję, ale to nie działa dobrze.

E.g. nie obsługuje poprawnie nawiasów.

ParseExpressions::ParseExpr { (1) + ((2) + (3)) } { } 

zwraca

+ [+ 1 ((2)] (3)) 

podczas gdy powinno powrócić

+ [+ 1 2] 3 

także ParseExpressions :: ParseExpr {{1 2} + {3 {4}}}

powraca

+ 1 2 3 4 

podczas gdy powinien on powrócić

+ {1 2} {3 4} 

Więc w zasadzie Pytam o solidnej wersji this użyteczności.

+1

To jest dobre pytanie; zdobycie akceptowalnego rozwiązania zajmie trochę czasu. –

+0

Podpowiedź: http://wiki.tcl.tk/1612 (o skomplikowanej matematyce zaimplementowanej w TCL) –

Odpowiedz

0

Możesz użyć prawie biblioteki C, jeśli połączysz ją z FFIDL.