7.8 Vectorized accessor functions
Much like with complex scalars, two functions are defined to get the real and imaginary components of complex-valued objects.
7.8.1 Type “demotion”
These functions return the same shape (e.g., matrix, vector, row vector,
or array) object as their input, but demoted to a real type. For example,
get_real(complex_matrix M) yields a matrix containing the real component of
each value in M.
The following table contains examples of what this notation can mean:
Type T |
Type T_demoted |
|---|---|
complex |
real |
complex_vector |
vector |
complex_row_vector |
row_vector |
complex_matrix |
matrix |
array[] complex |
array[] real |
array[,,] complex |
array[,,] real |
7.8.2 Real and imaginary component accessor functions
T_demoted get_real(T x)
Given an object of complex type T, return the same shape object but of type
real by getting the real component of each element of x.
Available since 2.30
T_demoted get_imag(T x)
Given an object of complex type T, return the same shape object but of type
real by getting the imaginary component of each element of x.
Available since 2.30
For example, given the Stan declaration
complex_vector[2] z = [3+4i, 5+6i]';A call get_real(z) will yield the vector [3, 5]', and a call get_imag(z)
will yield the vector [4, 6]'.