# Complex64 > 64-bit complex number.
## Usage ```javascript var Complex64 = require( '@stdlib/complex/float32' ); ``` #### Complex64( real, imag ) 64-bit complex number constructor, where `real` and `imag` are the **real** and **imaginary** components, respectively. ```javascript var z = new Complex64( 5.0, 3.0 ); // returns ``` * * * ## Properties #### Complex64.BYTES_PER_ELEMENT Size (in bytes) of each component. ```javascript var nbytes = Complex64.BYTES_PER_ELEMENT; // returns 4 ``` #### Complex64.prototype.BYTES_PER_ELEMENT Size (in bytes) of each component. ```javascript var z = new Complex64( 5.0, 3.0 ); var nbytes = z.BYTES_PER_ELEMENT; // returns 4 ``` #### Complex64.prototype.byteLength Length (in bytes) of a complex number. ```javascript var z = new Complex64( 5.0, 3.0 ); var nbytes = z.byteLength; // returns 8 ``` ### Instance A `Complex64` instance has the following properties... #### re A **read-only** property returning the **real** component. ```javascript var z = new Complex64( 5.0, 3.0 ); var re = z.re; // returns 5.0 ``` #### im A **read-only** property returning the **imaginary** component. ```javascript var z = new Complex64( 5.0, -3.0 ); var im = z.im; // returns -3.0 ``` * * * ## Methods ### Accessor Methods These methods do **not** mutate a `Complex64` instance and, instead, return a complex number representation. #### Complex64.prototype.toString() Returns a `string` representation of a `Complex64` instance. ```javascript var z = new Complex64( 5.0, 3.0 ); var str = z.toString(); // returns '5 + 3i' z = new Complex64( -5.0, -3.0 ); str = z.toString(); // returns '-5 - 3i' ``` #### Complex64.prototype.toJSON() Returns a [JSON][json] representation of a `Complex64` instance. [`JSON.stringify()`][mdn-json-stringify] implicitly calls this method when stringifying a `Complex64` instance. ```javascript var z = new Complex64( 5.0, -3.0 ); var o = z.toJSON(); /* { "type": "Complex64", "re": 5.0, "im": -3.0 } */ ``` To [revive][mdn-json-parse] a `Complex64` number from a [JSON][json] `string`, see [@stdlib/complex/reviver-float32][@stdlib/complex/reviver-float32].
* * *
## Notes - Both the **real** and **imaginary** components are stored as single-precision floating-point numbers.
* * *
## Examples ```javascript var Complex64 = require( '@stdlib/complex/float32' ); var z = new Complex64( 3.0, -2.0 ); console.log( 'type: %s', typeof z ); // => type: object console.log( 'str: %s', z ); // => str: 3 - 2i console.log( 'real: %d', z.re ); // => real: 3.0 console.log( 'imag: %d', z.im ); // => imag: -2.0 console.log( 'JSON: %s', JSON.stringify( z ) ); // => JSON: {"type":"Complex64","re":3,"im":-2} ```