Macaulay2 » Documentation
Packages » Macaulay2Doc » rings » basic rings of numbers » CCi
next | previous | forward | backward | up | index | toc

CCi -- the class of all complex intervals

Description

A complex interval is entered as a pair of real intervals to the interval function. It is stored internally as a pair of arbitrary precision intervals using the MPFI library.
i1 : interval(interval(3.1415,3.1416), interval(2.7182,2.7183))

o1 = [3.1415,3.1416]+[2.7182,2.7183]*ii

o1 : CCi (of precision 53)
The precision is measured in bits, is visible in the ring displayed on the second of each pair of output lines, and can be recovered using precision.
i2 : precision interval(interval(3.1415,3.1416), interval(2.7182,2.7183))

o2 = 53
Complex intervals are objects in class CCi which is an InexactFieldFamily.For complex intervals, the functions class and ring yield different results. That allows numbers of various precisions to be used without creating a new ring for each precision.
i3 : class interval(interval(3.1,3.5),interval(1.1,1.2))

o3 = CCi

o3 : InexactFieldFamily
The precision can be specified on input by specifying the precision of both input CC numbers. Alternatively, the precision can be specified by including the option Precision.
i4 : interval(interval(2.5p1000,3.2p100),interval(2.3,3.1,Precision=>200))

o4 = [2.5,3.200000000000000000000000000001]+[2.299999999999999822364316059975
     ,3.100000000000000088817841970013]*ii

o4 : CCi (of precision 100)
Complex intervals can also be created using span(Sequence) to create the smallest complex axis-aligned rectangle containing the inputs.
i5 : span(2+3*ii,Precision=>100)

o5 = [2,2]+[3,3]*ii

o5 : CCi (of precision 100)
i6 : span(2,3*ii,interval(interval(-1.5,-0.5),interval(3,3.1)),73)

o6 = [-1.5,73]+[0,3.1]*ii

o6 : CCi (of precision 53)
Operations using complex intervals are computed as sets so that the resulting intervals contain all possible outputs from pairs of points in input intervals.
i7 : (I, J, K) = (interval(interval(.5,.8),interval(.6,.9)), interval(interval(.54,.78),interval(.65,.89)), interval(interval(.45,.6),interval(.3,.78)));
i8 : I + J

o8 = [1.04,1.58]+[1.25,1.79]*ii

o8 : CCi (of precision 53)
i9 : I - J

o9 = [-.28,.26]+[-.29,.25]*ii

o9 : CCi (of precision 53)
i10 : I * K

o10 = [-.4770000000000001,.3000000000000001]+[.4199999999999999,1.164]*ii

o10 : CCi (of precision 53)
i11 : I / K

o11 = [.4182156133828995,4.041025641025643]+[-1.210256410256411,
      1.333333333333334]*ii

o11 : CCi (of precision 53)
i12 : I ^ 3

o12 = [-1.744,-.1359999999999998]+[-.2040000000000001,1.404000000000001]*ii

o12 : CCi (of precision 53)
i13 : 2 * I

o13 = [1,1.6]+[1.2,1.8]*ii

o13 : CCi (of precision 53)
i14 : (2+3*ii) * I

o14 = [-1.7,-.1999999999999997]+[2.7,4.200000000000001]*ii

o14 : CCi (of precision 53)
The real and imaginary parts of a complex interval can be accessed with realPart and imaginaryPart. These are real intervals of class RRi. The diameter of a complex interval is the (rounded) approximation to the length of its diagonal, while its midpoint is the complex midpoint of its real and imaginary parts
i15 : realPart interval(1+2*ii,3+4*ii)

o15 = [1,3]

o15 : RRi (of precision 53)
i16 : imaginaryPart interval(1+2*ii,3+4*ii)

o16 = [2,4]

o16 : RRi (of precision 53)
i17 : diameter interval(1+2*ii,3+4*ii)

o17 = 2.82842712474619

o17 : RR (of precision 53)
i18 : midpoint interval(1+2*ii,3+4*ii)

o18 = 2+3*ii

o18 : CC (of precision 53)

See also

Menu

Functions and methods returning a complex interval:

  • CC * CCi -- see * -- a binary operator, usually used for multiplication
  • CC * RRi -- see * -- a binary operator, usually used for multiplication
  • CCi * CC -- see * -- a binary operator, usually used for multiplication
  • CCi * CCi -- see * -- a binary operator, usually used for multiplication
  • CCi * QQ -- see * -- a binary operator, usually used for multiplication
  • CCi * RR -- see * -- a binary operator, usually used for multiplication
  • CCi * RRi -- see * -- a binary operator, usually used for multiplication
  • CCi * ZZ -- see * -- a binary operator, usually used for multiplication
  • QQ * CCi -- see * -- a binary operator, usually used for multiplication
  • RR * CCi -- see * -- a binary operator, usually used for multiplication
  • RRi * CC -- see * -- a binary operator, usually used for multiplication
  • RRi * CCi -- see * -- a binary operator, usually used for multiplication
  • ZZ * CCi -- see * -- a binary operator, usually used for multiplication
  • + CCi -- see + -- a unary or binary operator, usually used for addition
  • CC + CCi -- see + -- a unary or binary operator, usually used for addition
  • CC + RRi -- see + -- a unary or binary operator, usually used for addition
  • CCi + CC -- see + -- a unary or binary operator, usually used for addition
  • CCi + CCi -- see + -- a unary or binary operator, usually used for addition
  • CCi + QQ -- see + -- a unary or binary operator, usually used for addition
  • CCi + RR -- see + -- a unary or binary operator, usually used for addition
  • CCi + RRi -- see + -- a unary or binary operator, usually used for addition
  • CCi + ZZ -- see + -- a unary or binary operator, usually used for addition
  • QQ + CCi -- see + -- a unary or binary operator, usually used for addition
  • RR + CCi -- see + -- a unary or binary operator, usually used for addition
  • RRi + CC -- see + -- a unary or binary operator, usually used for addition
  • RRi + CCi -- see + -- a unary or binary operator, usually used for addition
  • ZZ + CCi -- see + -- a unary or binary operator, usually used for addition
  • - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CC - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CC - RRi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CCi - CC -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CCi - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CCi - QQ -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CCi - RR -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CCi - RRi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CCi - ZZ -- see - -- a unary or binary operator, usually used for negation or subtraction
  • QQ - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • RR - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • RRi - CC -- see - -- a unary or binary operator, usually used for negation or subtraction
  • RRi - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • ZZ - CCi -- see - -- a unary or binary operator, usually used for negation or subtraction
  • CC / CCi -- see / -- a binary operator, usually used for division
  • CC / RRi -- see / -- a binary operator, usually used for division
  • CCi / CC -- see / -- a binary operator, usually used for division
  • CCi / CCi -- see / -- a binary operator, usually used for division
  • CCi / QQ -- see / -- a binary operator, usually used for division
  • CCi / RR -- see / -- a binary operator, usually used for division
  • CCi / RRi -- see / -- a binary operator, usually used for division
  • CCi / ZZ -- see / -- a binary operator, usually used for division
  • QQ / CCi -- see / -- a binary operator, usually used for division
  • RR / CCi -- see / -- a binary operator, usually used for division
  • RRi / CC -- see / -- a binary operator, usually used for division
  • RRi / CCi -- see / -- a binary operator, usually used for division
  • ZZ / CCi -- see / -- a binary operator, usually used for division
  • intersect(CCi) -- see intersect(RRi) -- intersection of input intervals
  • intersect(CCi,CCi) -- see intersect(RRi) -- intersection of input intervals
  • intersect(CCi,RRi) -- see intersect(RRi) -- intersection of input intervals
  • intersect(RRi,CCi) -- see intersect(RRi) -- intersection of input intervals

Methods that use a complex interval:

  • conjugate(CCi) -- see conjugate -- complex conjugate
  • diameter(CCi) -- see diameter -- diameter of an interval
  • interval(CCi) -- see interval -- construct an interval
  • interval(CCi,Number) -- see interval -- construct an interval
  • interval(Number,CCi) -- see interval -- construct an interval
  • isEmpty(CCi) -- see isEmpty(RRi) -- empty test for an interval
  • isMember(CC,CCi) -- see isMember(QQ,CCi) -- membership test in an interval
  • isMember(QQ,CCi) -- membership test in an interval
  • isMember(RR,CCi) -- see isMember(QQ,CCi) -- membership test in an interval
  • isMember(ZZ,CCi) -- see isMember(QQ,CCi) -- membership test in an interval
  • isReal(CCi) -- see isReal -- whether a number is real
  • isSubset(CCi,CCi) -- subset test for intervals
  • isSubset(CCi,RRi) -- see isSubset(CCi,CCi) -- subset test for intervals
  • isSubset(RRi,CCi) -- see isSubset(CCi,CCi) -- subset test for intervals
  • left(CCi) -- see left -- left endpoint of an interval
  • lift(CCi,type of CC_*) -- see lift -- lift to another ring
  • lift(CCi,type of CCi_*) -- see lift -- lift to another ring
  • lift(CCi,type of QQ) -- see lift -- lift to another ring
  • lift(CCi,type of RR_*) -- see lift -- lift to another ring
  • lift(CCi,type of RRi_*) -- see lift -- lift to another ring
  • lift(CCi,type of ZZ) -- see lift -- lift to another ring
  • lngamma(CCi) -- see lngamma -- logarithm of the Gamma function
  • lowerLeft(CCi) (missing documentation)
  • lowerRight(CCi) (missing documentation)
  • midpoint(CCi) -- see midpoint -- midpoint of an interval
  • numeric(CCi) -- see numeric -- convert to floating point
  • numeric(ZZ,CCi) -- see numeric -- convert to floating point
  • right(CCi) -- see right -- right endpoint of an interval
  • ring(CCi) -- see ring -- get the associated ring of an object
  • size2(CCi) -- see size2 -- number of binary digits to the left of the point
  • span(CCi,CCi) -- see span -- construct smallest interval
  • span(CCi,RRi) -- see span -- construct smallest interval
  • span(RRi,CCi) -- see span -- construct smallest interval
  • upperLeft(CCi) (missing documentation)
  • upperRight(CCi) (missing documentation)

For the programmer

The object CCi is an inexact field family, with ancestor classes InexactNumber < Number < Thing.


The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/Macaulay2Doc/ov_rings.m2:537:0.