# Same Kind Casts > Return a list of ndarray [data types][@stdlib/ndarray/dtypes] to which a provided ndarray [data type][@stdlib/ndarray/dtypes] can be safely cast or cast within the same "kind".
## Usage ```javascript var sameKindCasts = require( '@stdlib/ndarray/same-kind-casts' ); ``` #### sameKindCasts( \[dtype] ) If provided a `dtype` argument, returns a list of ndarray [data types][@stdlib/ndarray/dtypes] to which a provided ndarray [data type][@stdlib/ndarray/dtypes] can be safely cast or cast within the same "kind" (e.g., between signed integers or between floating-point numbers). ```javascript var out = sameKindCasts( 'float64' ); // e.g., returns [ 'float64', 'float32', ... ] ``` If not provided a `dtype` argument, the function returns a casting table. ```javascript var out = sameKindCasts(); // returns {...} var f64 = out[ 'float64' ]; // returns {...} var v = f64[ 'float32' ]; // returns 1 ``` If provided an unrecognized or unsupported `dtype`, the function returns `null`. ```javascript var out = sameKindCasts( 'foo' ); // returns null ```
## Examples ```javascript var dtypes = require( '@stdlib/ndarray/dtypes' ); var sameKindCasts = require( '@stdlib/ndarray/same-kind-casts' ); var DTYPES; var list; var i; // Get the list of supported ndarray data types: DTYPES = dtypes(); // Print the list of ndarray data types to which a data type can be cast... for ( i = 0; i < DTYPES.length; i++ ) { list = sameKindCasts( DTYPES[ i ] ); console.log( '%s: %s', DTYPES[ i ], list.join( ', ' ) ); } ```