def sparse_api_demo(): ti.activate(block1, [0, 1]) ti.activate(block2, [1, 2]) for i, j in x: print('field x[{}, {}] = {}'.format(i, j, x[i, j])) # outputs: # field x[2, 4] = 0 # field x[2, 5] = 0 # field x[3, 4] = 0 # field x[3, 5] = 0 for i, j in block2: print('Active block2: [{}, {}]'.format(i, j)) # output: Active block2: [1, 2] for i, j in block1: print('Active block1: [{}, {}]'.format(i, j)) # output: Active block1: [0, 1] for j in range(4): print('Activity of block2[2, {}] = {}'.format( j, ti.is_active(block2, [1, j]))) ti.deactivate(block2, [1, 2]) for i, j in block2: print('Active block2: [{}, {}]'.format(i, j)) # output: nothing for i, j in block1: print('Active block1: [{}, {}]'.format(i, j)) # output: Active block1: [0, 1] print(ti.rescale_index(x, block1, ti.Vector([9, 17]))) # output = [2, 4] # Note: ti.Vector is optional in ti.rescale_index. print(ti.rescale_index(x, block1, [9, 17])) # output = [2, 4] ti.activate(block2, [1, 2])
def active_all(): for i in ti.ndrange(num_elements): ti.activate(block, [i])
def activate_pointer_fields(): ti.activate(p, [7]) ti.activate(p, [3])
def foo(): ti.activate(ptr, [0])
def activate(): ti.activate(ptr, 1) ti.activate(ptr, 32)
def activate(): for i, j in ti.ndrange(n, n): if i < j: x[i, j] = 1 ti.activate(cell, [10, 3])
def active_all(): for i, j in ti.ndrange(block_elements_2d[0], block_elements_2d[0]): ti.activate(block, [i, j])