withNdAlgebra

@JvmName(name = withNdGroup)
inline fun <T, A : Group<T>, R> A.withNdAlgebra(noinline bufferFactory: BufferFactory<T>, vararg shape: Int, action: BufferedGroupND<T, A>.() -> R): R
@JvmName(name = withNdRing)
inline fun <T, A : Ring<T>, R> A.withNdAlgebra(noinline bufferFactory: BufferFactory<T>, vararg shape: Int, action: BufferedRingND<T, A>.() -> R): R
@JvmName(name = withNdField)
inline fun <T, A : Field<T>, R> A.withNdAlgebra(noinline bufferFactory: BufferFactory<T>, vararg shape: Int, action: BufferedFieldND<T, A>.() -> R): R
inline fun <R> ShortRing.withNdAlgebra(vararg shape: Int, action: ShortRingND.() -> R): R
inline fun <R> DoubleField.withNdAlgebra(vararg shape: Int, action: DoubleFieldND.() -> R): R

Produce a context for n-dimensional operations inside this real field