# Fvec Syntax and Notation

This reference uses the following conventions for syntax and return values.

## Fvec Classes Syntax Notation

Fvec classes use the syntax conventions shown the following examples:

`[Fvec_Class] R = [Fvec_Class] A [operator][Ivec_Class] B;`

Example 1:`F64vec2 R = F64vec2 A & F64vec2 B;`

`[Fvec_Class] R = [operator]([Fvec_Class] A,[Fvec_Class] B);`

Example 2:`F64vec2 R = andnot(F64vec2 A, F64vec2 B);`

`[Fvec_Class] R [operator]= [Fvec_Class] A;`

Example 3:`F64vec2 R &= F64vec2 A;`

where

`[operator]` is an operator (for example, `&, |, or ^` )

`[Fvec_Class]` is any Fvec class ( F64vec2, F32vec4, or F32vec1 )

`R`, `A`, `B` are declared Fvec variables of the type indicated.

## Return Value Notation

Because the Fvec classes have packed elements, the return values typically follow the conventions presented in the Return Value Convention Notation Mappings table. F32vec4 returns four single-precision, floating-point values (R0, R1, R2, and R3); F64vec2 returns two double-precision, floating-point values, and F32vec1 returns the lowest single-precision floating-point value (R0).

Return Value Convention Notation Mappings

Example 1: | Example 2: | Example 3: | F32vec4 | F64vec2 | F32vec1
--- | --- | --- | --- | --- | ---
`R0 := A0 & B0;` | `R0 := A0 andnot B0;` | `R0 &= A0;` | x | x | x
`R1 := A1 & B1;` | `R1 := A1 andnot B1;` | `R1 &= A1;` | x | x | N/A
`R2 := A2 & B2;` | `R2 := A2 andnot B2;` | `R2 &= A2;` | x | N/A | N/A
`R3 := A3 & B3` | `R3 := A3 andhot B3;` | `R3 &= A3;` | x | N/A | N/A

Parent topic: Floating-point Vector Classes