Sha256: e548e3f427b8d1c31bd22577b9bd4579172403318737d0368f8eb68fef606042

Contents?: true

Size: 1.01 KB

Versions: 80

Compression:

Stored size: 1.01 KB

Contents

module ComplexNumbers

open System

type ComplexNumber = { real: float; imaginary: float }

let create real imaginary = { real = real; imaginary = imaginary }

let mul z1 z2 = { real = z1.real * z2.real - z1.imaginary * z2.imaginary; imaginary = z1.imaginary * z2.real + z1.real * z2.imaginary }

let add z1 z2 = { real = z1.real + z2.real; imaginary = z1.imaginary + z2.imaginary }

let sub z1 z2 = { real = z1.real - z2.real; imaginary = z1.imaginary - z2.imaginary }

let div z1 z2 = 
    { real = (z1.real * z2.real + z1.imaginary * z2.imaginary) / (Math.Pow(z2.real, 2.0) + Math.Pow(z2.imaginary, 2.0))
      imaginary = (z1.imaginary * z2.real - z1.real * z2.imaginary) / (Math.Pow(z2.real, 2.0) + Math.Pow(z2.imaginary, 2.0)) }

let abs z = Math.Sqrt(Math.Pow(z.real, 2.0) + Math.Pow(z.imaginary, 2.0))

let conjugate z = { z with imaginary = -z.imaginary }

let real z = z.real

let imaginary z = z.imaginary

let exp z = { real = Math.Cos(z.imaginary) * Math.Exp(z.real); imaginary = Math.Sin(z.imaginary) * Math.Exp(z.real) }

Version data entries

80 entries across 80 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.179 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.178 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.177 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.176 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.175 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.174 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.173 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.172 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.171 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.170 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.169 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.167 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.166 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.165 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.164 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.163 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.162 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.161 tracks/fsharp/exercises/complex-numbers/Example.fs
trackler-2.2.1.160 tracks/fsharp/exercises/complex-numbers/Example.fs