File: complex.fsi

package info (click to toggle)
fsharp 3.1.1.26%2Bdfsg2-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 59,244 kB
  • ctags: 4,190
  • sloc: cs: 13,398; ml: 1,098; sh: 399; makefile: 293; xml: 82
file content (136 lines) | stat: -rwxr-xr-x 5,412 bytes parent folder | download | duplicates (2)
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// (c) Microsoft Corporation 2005-2009. 

namespace Microsoft.FSharp.Math

    open System
      
    /// The type of complex numbers stored as pairs of 64-bit floating point numbers in rectangular coordinates
    [<Struct>]
    [<CustomEquality; CustomComparison>]
    type Complex = 
        /// The real part of a complex number
        member r: float
        /// The imaginary part of a complex number
        member i: float
        /// The polar-coordinate magnitude of a complex number
        member Magnitude: float
        /// The polar-coordinate phase of a complex number
        member Phase: float
        /// The real part of a complex number
        member RealPart: float
        /// The imaginary part of a complex number
        member ImaginaryPart: float
        /// The conjugate of a complex number, i.e. x-yi
        member Conjugate: Complex
        /// Create a complex number x+ij using rectangular coordinates
        static member Create      : float * float -> Complex
        /// Create a complex number using magnitude/phase polar coordinates
        static member CreatePolar : float * float -> Complex
        /// The complex number 0+0i
        static member Zero   : Complex
        /// The complex number 1+0i
        static member One    : Complex
        /// The complex number 0+1i
        static member OneI   : Complex
        /// Add two complex numbers
        static member ( +  ) : Complex * Complex -> Complex
        /// Subtract one complex number from another
        static member ( -  ) : Complex * Complex -> Complex
        /// Multiply two complex numbers
        static member ( *  ) : Complex * Complex -> Complex
        /// Complex division of two complex numbers
        static member ( /  ) : Complex * Complex -> Complex
        /// Unary negation of a complex number
        static member ( ~- ) : Complex           -> Complex
        /// Multiply a scalar by a complex number 
        static member ( * ) : float   * Complex -> Complex
        /// Multiply a complex number by a scalar
        static member ( * ) : Complex * float   -> Complex

        static member Sin : Complex -> Complex
        static member Cos : Complex -> Complex
        
        /// Computes the absolute value of a complex number: e.g. Abs x+iy = sqrt(x**2.0 + y**2.0.)
        /// Note: Complex.Abs(z) is the same as z.Magnitude
        static member Abs : Complex -> float
        static member Tan : Complex -> Complex
        static member Log : Complex -> Complex
        static member Exp : Complex -> Complex
        static member Sqrt : Complex -> Complex
        
        override ToString : unit -> string
        override Equals : obj -> bool
        interface System.IComparable
        member ToString : format:string -> string
        member ToString : format:string * provider:System.IFormatProvider -> string

    /// The type of complex numbers 
    type complex = Complex


    [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
    [<RequireQualifiedAccess>]
    module Complex =

        val mkRect: float * float -> complex

          /// The polar-coordinate magnitude of a complex number
        val magnitude: complex -> float
          /// The polar-coordinate phase of a complex number
        val phase     : complex -> float
          /// The real part of a complex number
        val realPart  : complex -> float
          /// The imaginary part of a complex number
        val imagPart  : complex -> float
          /// Create a complex number using magnitude/phase polar coordinates
        val mkPolar : float * float -> complex
        /// A complex of magnitude 1 and the given phase and , i.e. cis x = mkPolar 1.0 x
        val cis     : float -> complex
        
          /// The conjugate of a complex number, i.e. x-yi
        val conjugate : complex -> complex

          /// The complex number 0+0i
        val zero    : complex
          /// The complex number 1+0i
        val one     : complex
          /// The complex number 0+1i
        val onei    : complex
          /// Add two complex numbers
        val add     : complex -> complex -> complex
          /// Subtract one complex number from another
        val sub     : complex -> complex -> complex
          /// Multiply two complex numbers
        val mul     : complex -> complex -> complex
          /// Complex division of two complex numbers
        val div     : complex -> complex -> complex
          /// Unary negation of a complex number
        val neg     : complex -> complex
          /// Multiply a scalar by a complex number 
        val smul    : float -> complex -> complex
          /// Multiply a complex number by a scalar
        val muls    : complex -> float -> complex

          /// pi
        val pi  : Complex
          /// exp(x) = e^x
        val exp : Complex -> Complex
          /// log(x) is natural log (base e)
        val log : Complex -> Complex
          /// sqrt(x) and 0 <= phase(x) < pi
        val sqrt : Complex -> Complex
          /// Sine
        val sin : Complex -> Complex    
          /// Cosine
        val cos : Complex -> Complex
          /// Tagent
        val tan : Complex -> Complex
        

    [<AutoOpen>]
    module ComplexTopLevelOperators = 
        /// Constructs a complex number from both the real and imaginary part.
        val complex : float -> float -> complex