File: factor-doc.m2

package info (click to toggle)
macaulay2 1.25.05%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 172,152 kB
  • sloc: cpp: 107,824; ansic: 16,193; javascript: 4,189; makefile: 3,899; lisp: 702; yacc: 604; sh: 476; xml: 177; perl: 114; lex: 65; python: 33
file content (69 lines) | stat: -rw-r--r-- 2,522 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
document {
     Key => factor,
     Headline => "factor a ring element or a ZZ-module",
     PARA {
	  "(Disambiguation: for division of matrices, which can be thought of as factoring
	  one homomorphism through another, instead see ", TO (symbol //,Matrix, Matrix), ".  For
	  lifting a map between modules to a map between their free resolutions, see ", TO extend, ".)"
	  }
     }

document {
     Key => (factor,Module),
     Headline => "factor a ZZ-module",
     Usage => "factor M",
     Inputs => { "M" },
     Outputs => {{ "a symbolic expression describing the decomposition of ", TT "M", " into a direct sum of principal modules"}},
     "The ring of ", TT "M", " must be ", TO "ZZ", ".",
     PARA {},
     "In the following example we construct a module with a known (but disguised) factorization.",
     EXAMPLE lines ///
     	  f = random(ZZ^6, ZZ^4)
          M = subquotient ( f * diagonalMatrix{2,3,8,21}, f * diagonalMatrix{2*11,3*5*13,0,21*5} )
	  factor M
     ///}

document {
     Key => {(factor,RingElement),(factor,QQ),(factor,ZZ)},
     Headline => "factor a ring element",
     Usage => "factor x",
     Inputs => {"x" => {"or ", ofClass{QQ,ZZ}}},
     Outputs => {Product => {"the factorization of ", TT "x"}},
     PARA{
	  "The result is a ", TO "Product", " each of whose factors is a
	  ", TO "Power", " whose base is one of the factors found and whose
	  exponent is an integer.",
	  },
     EXAMPLE {
         "factor 124744878111332355674003415153753485211381849014286981744945",
         "y = (2^15-4)/(2^15-5)",
      	 "x = factor y",
      	 "value x"
     },
     PARA {
	  "We may ", TO "peek", " inside ", TT "x", " to a high depth to see
	  its true structure as ", TO "Expression", "."
	  },
     EXAMPLE "peek'(100,x)",
     PARA {
	  "For integers, factorization is done by ", TO "FLINT", TEX ", and the factors $x$ are actually
	  just probably prime, as described in the documentation of ", TO "isPseudoprime", "."
	  },
     PARA {
	  "For multivariate polynomials the
	  factorization is done with code of Michael Messollen (see
	  ", TO "Singular-Factory", ").  For univariate
	  polynomials the factorization is in turn done with code of
	  Gert-Martin Greuel and Ruediger Stobbe (see ", TO "Singular-Factory", ").",
	  },
     EXAMPLE {
	  "R = ZZ/101[u]",
      	  "factor (u^3-1)",
	  },
     "The constant term is provided as the last factor, if it's not equal
     to 1.",
     EXAMPLE {
	  "F = frac(ZZ/101[t])",
      	  "factor ((t^3-1)/(t^3+1))",
	  }
     }