Пример #1
0
def index_function(n):
    index = Function.index(nargs=(n, ), shape=(), integer=True)
    k = Symbol.k(integer=True)

    def eval(x, *indices):
        (j, ), *_ = indices
        return LAMBDA[k:n](KroneckerDelta(x[k], j)) @ LAMBDA[k:n](k)

    index.eval = eval
    return index

    k = Symbol.k(integer=True)
    index = Function.index(nargs=(n, ),
                           shape=(),
                           integer=True,
                           eval=lambda x, *indices: LAMBDA[k:n]
                           (KroneckerDelta(x[k], indices[0][0])) @ LAMBDA[k:n]
                           (k))
    return index