function liftedFn()

in rfcs/20210731-tfjs-named-tensors/gtensor.ts [153:165]


  function liftedFn(input: Dims<G|D>): { [key in keyof MapDim]: Dims<MapDim[key]|D> } {
    if (!((liftDim as string) in input)) {
      throw new ValueError(`The lift dimension ${liftDim} must occur in input's dimensions: ${Object.keys(input)}`);
    }
    const unstacked_dims = input[liftDim as D].unstack() as never as Dims<G>[];
    const unstackedApplications = unstacked_dims.map(toLiftFn);
    const stackedApplications = {} as { [key in keyof MapDim]: Dims<MapDim[key]|D> };
    for(const key of Object.keys(unstackedApplications[0]) as (keyof MapDim)[]) {
      const toStack = unstackedApplications.map(a => a[key] as Dims<MapDim[keyof MapDim]>);
      stackedApplications[key] = stack(liftDim as D, toStack);
    }
    return stackedApplications;
  }