def ndarray_matrix_to_ext_arr(ndarray: any_arr(), arr: ext_arr(), as_vector: template()): for I in ti.grouped(ndarray): for p in ti.static(range(ndarray[I].n)): for q in ti.static(range(ndarray[I].m)): if ti.static(as_vector): arr[I, p] = ndarray[I][p] else: arr[I, p, q] = ndarray[I][p, q]
def ext_arr_to_ndarray(arr: ext_arr(), ndarray: any_arr()): for I in ti.grouped(ndarray): ndarray[I] = arr[I]
def ndarray_to_ext_arr(ndarray: any_arr(), arr: ext_arr()): for I in ti.grouped(ndarray): arr[I] = ndarray[I]
def fill_ndarray(ndarray: any_arr(), val: template()): for I in ti.grouped(ndarray): ndarray[I] = val
def fill_ndarray_matrix(ndarray: any_arr(), val: template()): for I in ti.grouped(ndarray): ndarray[I].fill(val)
def ndarray_to_ndarray(ndarray: any_arr(), other: any_arr()): for I in ti.grouped(ndarray): ndarray[I] = other[I]