# isSingleSegmentCompatible > Determine if an array is compatible with a single memory segment.
An array is compatible with a single memory segment when an array view spans **only** the elements belonging to the array. When an array is compatible with a single memory segment, array data can be stored as a single block of memory.
## Usage ```javascript var isSingleSegmentCompatible = require( '@stdlib/ndarray/base/assert/is-single-segment-compatible' ); ``` #### isSingleSegmentCompatible( shape, strides, offset ) Returns a `boolean` indicating if an array is compatible with a single memory segment. ```javascript var shape = [ 2, 2 ]; var strides = [ 2, 1 ]; var offset = 25; var bool = isSingleSegmentCompatible( shape, strides, offset ); // returns true shape = [ 10 ]; strides = [ 3 ]; // every third memory element offset = 0; bool = isSingleSegmentCompatible( shape, strides, offset ); // returns false ```
## Examples ```javascript var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var shape2strides = require( '@stdlib/ndarray/base/shape2strides' ); var strides2offset = require( '@stdlib/ndarray/base/strides2offset' ); var randu = require( '@stdlib/random/base/randu' ); var isSingleSegmentCompatible = require( '@stdlib/ndarray/base/assert/is-single-segment-compatible' ); var strides; var offset; var shape; var bool; var i; var j; shape = [ 0, 0, 0 ]; for ( i = 0; i < 100; i++ ) { // Generate a random array shape: shape[ 0 ] = discreteUniform( 1, 10 ); shape[ 1 ] = discreteUniform( 1, 10 ); shape[ 2 ] = discreteUniform( 1, 10 ); // Generate strides: if ( randu() < 0.5 ) { strides = shape2strides( shape, 'row-major' ); } else { strides = shape2strides( shape, 'column-major' ); } j = discreteUniform( 0, shape.length-1 ); strides[ j ] *= ( randu() < 0.5 ) ? -1 : 1; strides[ 0 ] *= discreteUniform( 1, 4 ); // if scaled by 1, then single segment // Compute the index offset: offset = strides2offset( shape, strides ); // Determine if the array is compatible with a single memory segment: bool = isSingleSegmentCompatible( shape, strides, offset ); console.log( 'Shape: %s. Strides: %s. Offset: %d. Single segment compatible: %s.', shape.join( 'x' ), strides.join( ',' ), offset, bool ); } ```