Package org.apache.sysds.runtime.controlprogram.paramserv

## Class HEParamServer

- java.lang.Object
- - org.apache.sysds.runtime.controlprogram.paramserv.ParamServer
  - - org.apache.sysds.runtime.controlprogram.paramserv.LocalParamServer
    - - org.apache.sysds.runtime.controlprogram.paramserv.HEParamServer

    public class HEParamServer
    extends LocalParamServer

This class implements Homomorphic Encryption (HE) for LocalParamServer. It only supports modelAvg=true.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`PublicKey` `aggregatePartialPublicKeys​(PublicKey[] partial_public_keys)`
`static HEParamServer` `create​(ListObject model, String aggFunc, Statement.PSUpdateType updateType, Statement.PSFrequency freq, ExecutionContext ec, int workerNum, String valFunc, int numBatchesPerEpoch, MatrixObject valFeatures, MatrixObject valLabels, int nbatches)`
`byte[]` `generateA()`
`void` `push​(int workerID, ListObject encrypted_model)`
`void` `registerThread​(int thread_id, FederatedPSControlThread thread)`

### Methods inherited from class org.apache.sysds.runtime.controlprogram.paramserv.LocalParamServer

`create, pull`

### Methods inherited from class org.apache.sysds.runtime.controlprogram.paramserv.ParamServer

`getAggInst, getNumWorkers, getResult`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### create

    public static HEParamServer create​(ListObject model,
                                       String aggFunc,
                                       Statement.PSUpdateType updateType,
                                       Statement.PSFrequency freq,
                                       ExecutionContext ec,
                                       int workerNum,
                                       String valFunc,
                                       int numBatchesPerEpoch,
                                       MatrixObject valFeatures,
                                       MatrixObject valLabels,
                                       int nbatches)

#### registerThread

    public void registerThread​(int thread_id,
                               FederatedPSControlThread thread)

#### generateA

    public byte[] generateA()

#### aggregatePartialPublicKeys

    public PublicKey aggregatePartialPublicKeys​(PublicKey[] partial_public_keys)

#### push

    public void push​(int workerID,
                     ListObject encrypted_model)

Overrides:
  `push` in class `LocalParamServer`