Name

SPVM::Complex_2d - double Complex Type

Usage

use Complex_2d;

my $z : Complex_2d;

# Set
$z->{re} = 1.5;
$z->{im} = 2.5;

# Get
my $re = $z->{re};
my $im = $z->{im};

Description

Complex_2d is a multi-numeric type to represent a double complex number.

See SPVM::Document::Language::Types about multi-numeric types.

Fields

re

has re : double;

A real number.

im

has im : double;

A imaginary number.

Class Methods

new

static method new : Complex_2d ($re : double = 0, $im : double = 0);

Creates a new Complex_2d multi-numeric value given the real number $re and the imaginary number $im and returns it.

new_array_from_pairs

static method new_array_from_pairs : Complex_2d[] ($pairs : double[]);

Creates a new Complex_2d array given the pairs of a real number and an imaginary number $pairs, and returns the new array.

Examples of Input:

# Input Data
[1, 2, 3, 4]

# Data of a new array
[{re => 1, im => 2}, {re => 3, im => 4}]

new_array_from_re_array

static method new_array_from_re_array : Complex_2d[] ($re_array : double[]);

Creates a new Complex_2d array given real numbers $re_array, and returns the new array.

new_array_from_im_array

static method new_array_from_im_array : Complex_2d[] ($im_array : double[]);

Creates a new Complex_2d array given imaginary numbers $im_array, and returns the new array.

to_re_array

static method to_re_array : double[] ($array : Complex_2d[]);

Converts the Complex_2d array $array to the array of real numbers, and returns it.

to_im_array

static method to_im_array : double[] ($array : Complex_2d[]);

Converts the Complex_2d array $array to the array of imaginary numbers, and returns it.

to_pairs

static method to_pairs : double[] ($array : Complex_2d[]);

Converts the Complex_2d array $array to the pairs of a real number and an imaginary number, and returns it.

Examples of Output:

# Input Data
[{re => 1, im => 2}, {re => 3, im => 4}]

# Output
[1, 2, 3, 4]

to_string

static method to_string : string ($z : Complex_2d);

Converts the Complex_2d multi-numeric value to a string, such as 1+2i.

Implementation:

my $string = (string)undef;
if ($z->{im} < 0) {
  $string = "$z->{re}$z->{im}i";
}
else {
  $string = "$z->{re}+$z->{im}i";
}

See Also

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License