SageMath
性能
SageMathのソースコード、バイナリともに開発元のウェブページからダウンロードできる。SageMathをソースからビルドすると、その環境のプロセッサ数、キャッシュのサイズ、SSEサポートの有無などによって、SageMathの内部で利用するATLAS、FLINT、NTLなどの数値演算ライブラリのチューニングが行われる。SageMathの開発者の多くは実効性能の向上に注力しており、中には世界最速を目指しているものもある。
数式処理
x,a,b,c = var('x,a,b,c')log(sqrt(a))                            # returns log(a)/2log(a/b).simplify_log()                 # returns log(a) - log(b)sin(a+b).simplify_trig()                # returns cos(a)*sin(b) + sin(a)*cos(b)cos(a+b).simplify_trig()                # returns cos(a)*cos(b) - sin(a)*sin(b)(a+b)ˆ5                                 # returns (b + a)ˆ5expand((a+b)ˆ5)                         # returns bˆ5 + 5*a*bˆ4 + 10*aˆ2*bˆ3 +
                                        #         10*aˆ3*bˆ2 + 5*aˆ4*b + aˆ5limit((xˆ2+1)/(2+x+3*xˆ2), x=infinity)  # returns 1/3limit(sin(x)/x, x=0)                    # returns 1diff(acos(x),x)                         # returns -1/sqrt(1 - xˆ2)f = exp(x)*log(x)f.diff(x,3)                             # returns e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3solve(a*x^2 + b*x + c, x)               # returns [x == (-sqrt(b^2 - 4*a*c) - b)/(2*a),
                                        #          x == (sqrt(b^2 - 4*a*c) - b)/(2*a)]f = xˆ2 + 432/xsolve(f.diff(x)==0,x)                   # returns [x == 3*sqrt(3)*I - 3,
                                        #          x == -3*sqrt(3)*I - 3, x == 6]
微分方程式
t = var('t')                            # define a variable tx = function('x',t)                     # define x to be a function of that variableDE = lambda y: diff(y,t) + y - 1desolve(DE(x(t)), [x,t])                # returns '%e^-t*(%e^t+%c)'
線形代数
A = Matrix([[1,2,3],[3,2,1],[1,1,1]])y = vector([0,-4,-1])A.solve_right(y)                        # returns (-2, 1, 0)A.eigenvalues()                         # returns [5, 0, -1]B = Matrix([[1,2,3],[3,2,1],[1,2,1]])B.inverse()                             # returns [   0  1/2 -1/2]
                                        #         [-1/4 -1/4    1]
                                        #         [ 1/2    0 -1/2]# Call numpy for the Moore-Penrose pseudo-inverse,# since Sage does not support that yet.import numpyC = Matrix([[1 , 1], [2 , 2]])matrix(numpy.linalg.pinv(C.numpy()))    # returns [0.1 0.2]
                                        #         [0.1 0.2]
数論
prime_pi(1000000)                       # returns 78498, the number of primes less than one millionE = EllipticCurve('389a')               # construct an elliptic curve from its Cremona labelP, Q = E.gens()7*P + Q                                 # returns (2869/676 : -171989/17576 : 1)