function factory( x ) {
		var options;
		var opts;

		opts = {
			'kind': kind
		};
		if ( arguments.length < 2 ) {
			return new ndindex( x, opts );
		}
		options = arguments[ 1 ];
		if ( !isObject( options ) ) {
			throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
		}
		if ( hasOwnProp( options, 'persist' ) ) {
			opts.persist = options.persist;
		}
		return new ndindex( x, opts );
	}
Returns an ndarray index having a specialized "kind".

@private
@param {ndarray} x - input ndarray
@param {Options} [options] - function options
@param {boolean} [options.persist=false] - boolean indicating whether to continue persisting an index object after first usage
@throws {TypeError} first argument must be an ndarray-like object
@throws {TypeError} first argument must be a valid index ndarray
@throws {TypeError} options argument must be an object
@throws {TypeError} must provide valid options
@returns {ndindex} ndindex instance