File: gaussian.gd

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (102 lines) | stat: -rw-r--r-- 3,323 bytes parent folder | download | duplicates (3)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#############################################################################
##
##  This file is part of GAP, a system for computational discrete algebra.
##  This files's authors include Thomas Breuer.
##
##  Copyright of GAP belongs to its developers, whose names are too numerous
##  to list here. Please refer to the COPYRIGHT file for details.
##
##  SPDX-License-Identifier: GPL-2.0-or-later
##
##  This file contains declarations for Gaussian rationals and Gaussian
##  integers.
##
##  Gaussian rationals are elements of the form $a + b * I$ where $I$ is the
##  square root of -1 and $a,b$ are rationals.
##  Note that $I$ is written as `E(4)', i.e., as a fourth root of unity in
##  {\GAP}.
##  Gauss was the first to investigate such numbers, and already proved that
##  the ring of integers of this field, i.e., the elements of the form
##  $a + b * I$ where $a,b$ are integers, forms a Euclidean Ring.
##  It follows that this ring is a Unique Factorization Domain.
##


#############################################################################
##
#F  IsGaussInt( <x> ) . . . . . . . . test if an object is a Gaussian integer
##
##  <#GAPDoc Label="IsGaussInt">
##  <ManSection>
##  <Func Name="IsGaussInt" Arg='x'/>
##
##  <Description>
##  <Ref Func="IsGaussInt"/> returns <K>true</K> if the object <A>x</A> is
##  a Gaussian integer (see&nbsp;<Ref Var="GaussianIntegers"/>),
##  and <K>false</K> otherwise.
##  Gaussian integers are of the form <M>a + b</M><C>*E(4)</C>,
##  where <M>a</M> and <M>b</M> are integers.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareGlobalFunction( "IsGaussInt" );


#############################################################################
##
#F  IsGaussRat( <x> ) . . . . . . .  test if an object is a Gaussian rational
##
##  <#GAPDoc Label="IsGaussRat">
##  <ManSection>
##  <Func Name="IsGaussRat" Arg='x'/>
##
##  <Description>
##  <Ref Func="IsGaussRat"/> returns <K>true</K> if the object <A>x</A> is
##  a Gaussian rational (see&nbsp;<Ref Var="GaussianRationals"/>),
##  and <K>false</K> otherwise.
##  Gaussian rationals are of the form <M>a + b</M><C>*E(4)</C>,
##  where <M>a</M> and <M>b</M> are rationals.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareGlobalFunction( "IsGaussRat" );


#############################################################################
##
#C  IsGaussianIntegers( <obj> )
##
##  <#GAPDoc Label="IsGaussianIntegers">
##  <ManSection>
##  <Filt Name="IsGaussianIntegers" Arg='obj' Type='Category'/>
##
##  <Description>
##  is the defining category for the domain <Ref Var="GaussianIntegers"/>.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareCategory( "IsGaussianIntegers", IsEuclideanRing and IsFLMLOR
  and IsFiniteDimensional );


#############################################################################
##
#V  GaussianIntegers  . . . . . . . . . . . . . . . ring of Gaussian integers
##
##  <#GAPDoc Label="GaussianIntegers">
##  <ManSection>
##  <Var Name="GaussianIntegers"/>
##
##  <Description>
##  <Ref Var="GaussianIntegers"/> is the ring <M>&ZZ;[\sqrt{{-1}}]</M>
##  of Gaussian integers.
##  This is a subring of the cyclotomic field
##  <Ref Var="GaussianRationals"/>.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareGlobalName( "GaussianIntegers");