## Uses of Class
org.apache.sysds.runtime.controlprogram.federated.FederationMap

- Packages that use FederationMap
  Package | Description
  --- | ---
  org.apache.sysds.runtime.controlprogram.caching |
  org.apache.sysds.runtime.controlprogram.federated |
  org.apache.sysds.runtime.instructions.fed |
  org.apache.sysds.runtime.io |

- - ### Uses of FederationMap in org.apache.sysds.runtime.controlprogram.caching

    Methods in org.apache.sysds.runtime.controlprogram.caching that return FederationMap
    Modifier and Type | Method | Description
    --- | --- | ---
    `FederationMap` | CacheableData.`getFedMapping()` | Gets the mapping of indices ranges to federated objects.

    Methods in org.apache.sysds.runtime.controlprogram.caching with parameters of type FederationMap
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | CacheableData.`setFedMapping​(FederationMap fedMapping)` | Sets the mapping of indices ranges to federated objects.

  - ### Uses of FederationMap in org.apache.sysds.runtime.controlprogram.federated

    Methods in org.apache.sysds.runtime.controlprogram.federated that return FederationMap
    Modifier and Type | Method | Description
    --- | --- | ---
    `FederationMap` | FederationMap.`bind​(long rOffset, long cOffset, FederationMap that)` |
    `FederationMap` | FederationMap.`clone()` |
    `FederationMap` | FederationMap.`copyWithNewID()` | Copy the federation map with the next available federated ID as reference to the federated data.
    `FederationMap` | FederationMap.`copyWithNewID​(long id)` | Copy the federation map with the given ID as reference to the federated data.
    `FederationMap` | FederationMap.`copyWithNewID​(long id, long clen)` | Copy the federation map with the given ID as reference to the federated data and with given clen as end dimension for the columns in the range.
    `FederationMap` | FederationMap.`copyWithNewIDAndRange​(int[][] ix, long outputID, FTypes.FType type)` |
    `FederationMap` | FederationMap.`copyWithNewIDAndRange​(long rowRangeEnd, long colRangeEnd, long outputID)` | Copy federated mapping while giving the federated data new IDs and setting the ranges from zero to row and column ends specified.
    `FederationMap` | FederationMap.`copyWithNewIDAndRange​(long rowRangeEnd, long colRangeEnd, long outputID, FTypes.FType type)` |
    `static FederationMap` | FederationUtils.`federateLocalData​(CacheableData<?> data)` |
    `FederationMap` | FederationMap.`filter​(IndexRange ixrange)` |
    `FederationMap` | MatrixLineagePair.`getFedMapping()` |
    `FederationMap` | FederationMap.`identCopy​(long tid, long id)` |
    `FederationMap` | FederationMap.`mapParallel​(long newVarID, BiFunction<FederatedRange,​FederatedData,​Void> mappingFunction)` | Execute a function for each `FederatedRange` + `FederatedData` pair mapping the pairs to their new form by directly changing both `FederatedRange` and `FederatedData`.
    `FederationMap` | FederationMap.`modifyFedRanges​(long value, int dim)` | Take the federated mapping and sets one dimension of all federated ranges to the specified value.
    `FederationMap` | FederationMap.`transpose()` |

    Methods in org.apache.sysds.runtime.controlprogram.federated with parameters of type FederationMap
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MatrixBlock` | FederationUtils.`aggMatrix​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, Future<FederatedResponse>[] meanFfr, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggMatrix​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggMean​(Future<FederatedResponse>[] ffr, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggMinMaxIndex​(Future<FederatedResponse>[] ffr, boolean isMin, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggProd​(Future<FederatedResponse>[] ffr, FederationMap fedMap, AggregateUnaryOperator aop)` |
    `static ScalarObject` | FederationUtils.`aggScalar​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, Future<FederatedResponse>[] meanFfr, FederationMap map)` |
    `static ScalarObject` | FederationUtils.`aggScalar​(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr, FederationMap map)` |
    `static MatrixBlock` | FederationUtils.`aggVar​(Future<FederatedResponse>[] ffr, Future<FederatedResponse>[] meanFfr, FederationMap map, boolean isRowAggregate, boolean isScalar)` |
    `FederationMap` | FederationMap.`bind​(long rOffset, long cOffset, FederationMap that)` |
    `boolean` | FederationMap.`isAligned​(FederationMap that, boolean transposed)` | Determines if the two federation maps are aligned row/column partitions at the same federated sites (which allows for purely federated operation)
    `boolean` | FederationMap.`isAligned​(FederationMap that, boolean transposed, boolean equalRows, boolean equalCols)` | determines if the two federated data are aligned row/column partitions (depending on parameters equalRows/equalCols) at the same federated site (which often allows for purely federated operations)
    `boolean` | FederationMap.`isAligned​(FederationMap that, FTypes.AlignType... alignTypes)` | helper function for checking multiple allowed alignment types

  - ### Uses of FederationMap in org.apache.sysds.runtime.instructions.fed

    Methods in org.apache.sysds.runtime.instructions.fed with parameters of type FederationMap
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | MultiReturnParameterizedBuiltinFEDInstruction.`encodeFederatedFrames​(FederationMap fedMapping, MultiColumnEncoder globalencoder, MatrixObject transformedMat)` |

  - ### Uses of FederationMap in org.apache.sysds.runtime.io

    Methods in org.apache.sysds.runtime.io with parameters of type FederationMap
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | ReaderWriterFederated.`write​(String file, FederationMap fedMap)` | TODO add writing to each of the federated locations so that they also save their matrices.