← All NMath Code Examples
#light
namespace CenterSpace.NMath.Examples.FSharp
open System
open CenterSpace.NMath.Core
module VectorExample =
/// <summary>
/// A .NET example in C# showing some of the basic functionality of the vector classes.
/// </summary>
let v = new DoubleVector("[1 2 3 4 5 6]")
// You can obtain different vector "views" of the data in v.
// For example, vector viewing every other element of v.
let everyOther = v.[new Range(0, Position.End, 2)]
printfn "everyOther = %s" (everyOther.ToString()) // [1 3 5]
printfn ""
// Remember that this vector is a different views of the data in
// v. Changing a value in everyOther will change
// the corresponding value in v.
everyOther.[1] <- 10.0
printfn "Value of v[2] == 10 is %A" (v.[2] = 10.0) // True
printfn ""
// You can make sure that your data is not being shared with anyone
// else by invoking the DeepenThisCopy method. This will insure that
// you have your own private copy of the data and that it occupies
// contiguous storage.
v.DeepenThisCopy() |> ignore
everyOther.[1] <- 100.0
printfn "Value of v[2] == 100 is %A" (v.[2] = 100.0) // False
printfn ""
// The Resize method changes the length of a vector. Values are
// truncated or padded with zeros as appropriate.
// First lets save vs original values.
let vOrig = v.Clone() :?> DoubleVector
// Now resize v.
v.Resize(v.Length + 2) |> ignore
// v will have its original values in the first v.Length-1 elements.
// The last two elements will be zero.
let vOrig1 = v.[new Slice(0, vOrig.Length)]
printfn "values of v preserved during resize is %s" ((vOrig = vOrig1).ToString())
printfn ""
printfn "v resized = %s" (v.ToString())
printfn ""
// vector dot, or inner, products are available as
// static methods in the NMathFunctions class.
let u = new DoubleVector(v.Length, 1.0, 1.0)
let dp = NMathFunctions.Dot(v, u)
printfn "The dot product of %s with %s = %A" (v.ToString()) (u.ToString()) dp
printfn ""
// There are also functions for computing mean and variance of the numbers in a vector.
let mean = NMathFunctions.Mean(v)
let var = NMathFunctions.Variance(v)
printfn "The mean of v is %A, and the variance is %A" mean var
printfn ""
printfn "Press Enter Key"
Console.Read() |> ignore
← All NMath Code Examples