| // Copyright ©2013 The Gonum Authors. All rights reserved. |
| // Use of this code is governed by a BSD-style |
| // license that can be found in the LICENSE file |
| |
| package cmplxs_test |
| |
| import ( |
| "fmt" |
| |
| "gonum.org/v1/gonum/cmplxs" |
| ) |
| |
| // Set of examples for all the functions |
| |
| func ExampleAdd_simple() { |
| // Adding three slices together. Note that |
| // the result is stored in the first slice |
| s1 := []complex128{1 + 1i, 2 + 2i, 3 + 3i, 4 + 4i} |
| s2 := []complex128{5 + 7i, 6 + 7i, 7 + 7i, 8 + 8i} |
| s3 := []complex128{1 + 2i, 1 + 2i, 1 + 2i, 1 + 2i} |
| cmplxs.Add(s1, s2) |
| cmplxs.Add(s1, s3) |
| |
| fmt.Println("s1 =", s1) |
| fmt.Println("s2 =", s2) |
| fmt.Println("s3 =", s3) |
| |
| // Output: |
| // s1 = [(7+10i) (9+11i) (11+12i) (13+14i)] |
| // s2 = [(5+7i) (6+7i) (7+7i) (8+8i)] |
| // s3 = [(1+2i) (1+2i) (1+2i) (1+2i)] |
| } |
| |
| func ExampleAdd_newslice() { |
| // If one wants to store the result in a |
| // new container, just make a new slice |
| s1 := []complex128{1 + 1i, 2 + 2i, 3 + 3i, 4 + 4i} |
| s2 := []complex128{5 + 7i, 6 + 7i, 7 + 7i, 8 + 8i} |
| s3 := []complex128{1 + 2i, 1 + 2i, 1 + 2i, 1 + 2i} |
| dst := make([]complex128, len(s1)) |
| |
| cmplxs.AddTo(dst, s1, s2) |
| cmplxs.Add(dst, s3) |
| |
| fmt.Println("dst =", dst) |
| fmt.Println("s1 =", s1) |
| fmt.Println("s2 =", s2) |
| fmt.Println("s3 =", s3) |
| |
| // Output: |
| // dst = [(7+10i) (9+11i) (11+12i) (13+14i)] |
| // s1 = [(1+1i) (2+2i) (3+3i) (4+4i)] |
| // s2 = [(5+7i) (6+7i) (7+7i) (8+8i)] |
| // s3 = [(1+2i) (1+2i) (1+2i) (1+2i)] |
| } |
| |
| func ExampleAdd_unequallengths() { |
| // If the lengths of the slices are unknown, |
| // use EqualLengths to check |
| s1 := []complex128{1 + 1i, 2 + 2i, 3 + 3i} |
| s2 := []complex128{5 + 5i, 6 + 6i, 7 + 7i, 8 + 8i} |
| |
| eq := cmplxs.EqualLengths(s1, s2) |
| if eq { |
| cmplxs.Add(s1, s2) |
| } else { |
| fmt.Println("Unequal lengths") |
| } |
| |
| // Output: |
| // Unequal lengths |
| } |
| |
| func ExampleAddConst() { |
| s := []complex128{1 - 1i, -2 - 1i, 3 - 1i, -4 - 1i} |
| c := 5 + 1i |
| |
| cmplxs.AddConst(c, s) |
| |
| fmt.Println("s =", s) |
| |
| // Output: |
| // s = [(6+0i) (3+0i) (8+0i) (1+0i)] |
| } |
| |
| func ExampleCumProd() { |
| s := []complex128{1 + 1i, -2 - 2i, 3 + 3i, -4 - 4i} |
| dst := make([]complex128, len(s)) |
| |
| cmplxs.CumProd(dst, s) |
| |
| fmt.Println("dst =", dst) |
| fmt.Println("s =", s) |
| |
| // Output: |
| // dst = [(1+1i) (0-4i) (12-12i) (-96+0i)] |
| // s = [(1+1i) (-2-2i) (3+3i) (-4-4i)] |
| } |
| |
| func ExampleCumSum() { |
| s := []complex128{1 + 1i, -2 - 2i, 3 + 3i, -4 - 4i} |
| dst := make([]complex128, len(s)) |
| |
| cmplxs.CumSum(dst, s) |
| |
| fmt.Println("dst =", dst) |
| fmt.Println("s =", s) |
| |
| // Output: |
| // dst = [(1+1i) (-1-1i) (2+2i) (-2-2i)] |
| // s = [(1+1i) (-2-2i) (3+3i) (-4-4i)] |
| } |