Differences

This shows you the differences between two versions of the page.

Link to this comparison view

documentation:ref:factor [2015/11/21 12:33]
documentation:ref:factor [2015/11/21 12:33] (current)
Line 1: Line 1:
 +====== Factor ======
 +----
 +
 +====Description====
 +  * ''​Factor''​ factors a symbolic polynomial over the integers.
 +
 +
 +  * ''​Factor''​ applies only to scalar parts of expressions.
 +
 +
 +  * ''​Factor''​ applies only to the top algebraic level in an expression.
 +
 +
 +  * ''​Factor''​ tries to factor all scalar combinations of tensors (like ''​k_a*k^a''​),​ which it treats as independent variables. ''​%%Factor[[FactorScalars:​ false]]%%''​ will apply only to symbolic expressions,​ which contain no any indexed variables.
 +
 +====Examples====
 +----
 +Factor a multivariate polynomial:
 +<sxh groovy; gutter: false>
 +def t = '​2*x**3*y - 2*a**2*x*y - 3*a**2*x**2 + 3*a**4'​.t
 +println Factor >> t
 +</​sxh>​
 +<sxh plain; gutter: false>
 +   > (x+a)*(x-a)*(-3*a**2+2*y*x)
 +</​sxh>​
 +
 +----
 +
 +Factor scalar parts in tensorial expression:
 +<sxh groovy; gutter: false>
 +def t = '​(a+b)**4*F_mn + (x**6-y**6)*R_mn'​.t
 +println Factor >> t
 +</​sxh>​
 +<sxh plain; gutter: false>
 +   > (a+b)**4*F_mn+(x+y)*(x-y)*(x*y+x**2+y**2)*(-x*y+x**2+y**2)*R_mn
 +</​sxh>​
 +
 +----
 +
 +Factor expression that contains scalar combinations:​
 +<sxh groovy; gutter: true>
 +def t = '​(a+b)**2*f_m*f^m + (a**2 - b**2)*f_a*f^a*f_b*f^b'​.t
 +println Factor >> t
 +</​sxh>​
 +<sxh plain; gutter: false>
 +   > (a+b+(a-b)*f_{m}*f^{m})*(a+b)*f_{a}*f^{a}
 +</​sxh>​
 +Do not factor "​tensorial"​ scalars:
 +<sxh groovy; gutter: ​ true; first-line: 3>
 +println Factor[[FactorScalras:​false]] >> t
 +</​sxh>​
 +<sxh plain; gutter: false>
 +   > (a+b)**2*f_{m}*f^{m}-(b+a)*(b-a)*f_{a}*f^{a}*f_{b}*f^{b}
 +</​sxh>​
 +----
 +
 +====See also====
 +  * Related guides: [[documentation:​guide:​applying_and_manipulating_transformations]],​ [[documentation:​guide:​list_of_transformations]]
 +  * Related transformations:​ [[documentation:​ref:​expand]]
 +  * JavaDocs: [[http://​api.redberry.cc/​redberry/​1.1.9/​java-api/​cc/​redberry/​core/​transformations/​factor/​FactorTransformation.html|FactorTransformation]]
 +  * Source code: [[https://​bitbucket.org/​redberry/​redberry/​src/​tip/​core/​src/​main/​java/​cc/​redberry/​core/​transformations/​factor/​FactorTransformation.java|FactorTransformation.java]]