code: def get_bottomup_P(S: np.ndarray):
      """BottomUp Reconciliation Matrix.
  
      Creates BottomUp hierarchical \"projection\" matrix is defined as:
      $$\mathbf{P}_{\\text{BU}} = [\mathbf{0}_{\mathrm{[b],[a]}}\;|\;\mathbf{I}_{\mathrm{[b][b]}}]$$
  
      **Parameters:**<br>
      `S`: Summing matrix of size (`base`, `bottom`).<br>
  
      **Returns:**<br>
      `P`: Reconciliation matrix of size (`bottom`, `base`).<br>
  
      **References:**<br>
      - [Orcutt, G.H., Watts, H.W., & Edwards, J.B.(1968). \"Data aggregation and information loss\". The American
      Economic Review, 58 , 773(787)](http://www.jstor.org/stable/1815532).
      """
      n_series = len(S)
      n_agg = n_series - S.shape[1]
      P = np.zeros_like(S)
      P[n_agg:, :] = S[n_agg:, :]
      P = P.T
      return P
  
file_path: neuralforecast/neuralforecast/models/hint.py
imports: from typing import Optional
  import numpy
  import torch
label_desc: Use image node_id 1 for calling a global function with example usage: get_bottomup_P(S) and returns: P