Sparse vectors over the symbolic ring¶
Implements vectors over the symbolic ring.
AUTHORS:
Robert Bradshaw (2011-05-25): Added more element-wise simplification methods
Joris Vankerschaver (2011-05-15): Initial version
Dima Pasechnik (2023-06-04): cloning from the dense case
EXAMPLES:
sage: x, y = var('x, y')
sage: u = vector([sin(x)^2 + cos(x)^2, log(2*y) + log(3*y)], sparse=True); u
(cos(x)^2 + sin(x)^2, log(3*y) + log(2*y))
sage: type(u)
<class 'sage.modules.free_module.FreeModule_ambient_field_with_category.element_class'>
sage: u.simplify_full()
(1, log(3*y) + log(2*y))
>>> from sage.all import *
>>> x, y = var('x, y')
>>> u = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(Integer(2)*y) + log(Integer(3)*y)], sparse=True); u
(cos(x)^2 + sin(x)^2, log(3*y) + log(2*y))
>>> type(u)
<class 'sage.modules.free_module.FreeModule_ambient_field_with_category.element_class'>
>>> u.simplify_full()
(1, log(3*y) + log(2*y))
- class sage.modules.vector_symbolic_sparse.Vector_symbolic_sparse[source]¶
Bases:
FreeModuleElement_generic_sparse
- canonicalize_radical(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.canonicalize_radical() for optional arguments.
- simplify(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.simplify() for optional arguments.
- simplify_factorial(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.simplify_factorial() for optional arguments.
- simplify_full(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.simplify_full() for optional arguments.
- simplify_log(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.simplify_log() for optional arguments.
- simplify_rational(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.simplify_rational() for optional arguments.
- simplify_trig(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.simplify_trig() for optional arguments.
- trig_expand(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.expand_trig() for optional arguments.
- trig_reduce(*args, **kwds)[source]¶
Generic function used to implement common symbolic operations elementwise as methods of a vector.
EXAMPLES:
sage: var('x,y') (x, y) sage: v = vector([sin(x)^2 + cos(x)^2, log(x*y), sin(x/(x^2 + x)), factorial(x+1)/factorial(x)], sparse=True) sage: v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) sage: v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) sage: v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) sage: v = vector([sin(2*x), sin(3*x)], sparse=True) sage: v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) sage: v.simplify_trig(False) (sin(2*x), sin(3*x)) sage: v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
>>> from sage.all import * >>> var('x,y') (x, y) >>> v = vector([sin(x)**Integer(2) + cos(x)**Integer(2), log(x*y), sin(x/(x**Integer(2) + x)), factorial(x+Integer(1))/factorial(x)], sparse=True) >>> v.simplify_trig() (1, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.canonicalize_radical() (cos(x)^2 + sin(x)^2, log(x) + log(y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_rational() (cos(x)^2 + sin(x)^2, log(x*y), sin(1/(x + 1)), factorial(x + 1)/factorial(x)) >>> v.simplify_factorial() (cos(x)^2 + sin(x)^2, log(x*y), sin(x/(x^2 + x)), x + 1) >>> v.simplify_full() (1, log(x*y), sin(1/(x + 1)), x + 1) >>> v = vector([sin(Integer(2)*x), sin(Integer(3)*x)], sparse=True) >>> v.simplify_trig() (2*cos(x)*sin(x), (4*cos(x)^2 - 1)*sin(x)) >>> v.simplify_trig(False) (sin(2*x), sin(3*x)) >>> v.simplify_trig(expand=False) (sin(2*x), sin(3*x))
See Expression.reduce_trig() for optional arguments.
- sage.modules.vector_symbolic_sparse.apply_map(phi)[source]¶
Return a function that applies
phi
to its argument.EXAMPLES:
sage: from sage.modules.vector_symbolic_sparse import apply_map sage: v = vector([1,2,3], sparse=True) sage: f = apply_map(lambda x: x+1) sage: f(v) (2, 3, 4)
>>> from sage.all import * >>> from sage.modules.vector_symbolic_sparse import apply_map >>> v = vector([Integer(1),Integer(2),Integer(3)], sparse=True) >>> f = apply_map(lambda x: x+Integer(1)) >>> f(v) (2, 3, 4)