# Constructors and Initialization

The following table shows how to create and initialize F32vec objects with the Fvec classes.

## Constructors and Initialization for Fvec Classes

Example | Intrinsic | Returns
--- | --- | ---
Constructor Declaration
`F64vec2 A;` `F32vec4 B;` `F32vec1 C;` | N/A | N/A
__m128 Object Initialization
`F64vec2 A(__m128d mm);` `F32vec4 B(__m128 mm);` `F32vec1 C(__m128 mm);` | N/A | N/A
Double Initialization
`/* Initializes two doubles. */ F64vec2 A(double d0, double d1); F64vec2 A = F64vec2(double d0, double d1);` | _mm_set_pd | A0 := d0; A1 := d1;
`F64vec2 A(double d0);` `/* Initializes both return values with the same double precision value */.` | _mm_set1_pd | A0 := d0; A1 := d0;
Float Initialization
`F32vec4 A(float f3, float f2, float f1, float f0);` `F32vec4 A = F32vec4(float f3, float f2, float f1, float f0);` | _mm_set_ps | A0 := f0; A1 := f1; A2 := f2; A3 := f3;
`F32vec4 A(float f0);` `/* Initializes all return values with the same floating point value. */` | _mm_set1_ps | A0 := f0; A1 := f0; A2 := f0; A3 := f0;
`F32vec4 A(double d0);` `/* Initialize all return values with the same double-precision value. */` | _mm_set1_ps(d) | A0 := d0; A1 := d0; A2 := d0; A3 := d0;
`F32vec1 A(double d0);` `/* Initializes the lowest value of A with d0 and the other values with 0.*/` | _mm_set_ss(d) | A0 := d0; A1 := 0; A2 := 0; A3 := 0;
`F32vec1 B(float f0);` `/* Initializes the lowest value of B with f0 and the other values with 0.*/` | _mm_set_ss | B0 := f0; B1 := 0; B2 := 0; B3 := 0;
`F32vec1 B(int I); /* Initializes the lowest value of B with f0, other values are undefined.*/` | _mm_cvtsi32_ss | B0 := f0; B1 := {} B2 := {} B3 := {}

Parent topic: Floating-point Vector Classes