Logistic Regression for dense matrices with supporting functions

Provided is an implementation of Logistic Regression for dense matrices using PBblas.

Files created:

PBblas/HadamardProduct.ecl - Cell wise multiplication using PBblas

PBblas/AutoMap.ecl - Function to determine map sizes for matrices. Not always optimal and is determined by rows/cols in matrix, max row/col for each partition, and CLUSTERSIZE. Partition sizes can also provided for fine tuning/better performance.

PBblas/Tests/MapTest.ecl - Can be used to predetermine map sizes for matrix. Results can be used as defaults for PBblas/AutoMap.ecl or PBblas/MatrixMap.ecl

PBblas/MU.ecl - Matrix universe for Layout_Part matrices. Same concepts as Mat/MU.ecl

Necessary updated files:
Classify.ecl - Added LR model name logistic. Renamed Original Logistic to Logistic_sparse.

PBblas.Types.ecl - Added PBblas/MU.ecl type

ML/Utils.ecl - Added Rebasing for IDs. Added support for Rebasing ID from Numbers. This is important when moving back and forth between Mat types and PBblas types.

PB.dgemm - More detailed error messages so it is easier to tell which matrices/blocks are not compatible.
It seems odd to me to pass in real values.  The number of rows or columns, the max block, and the cluster size are all naturally positive integers.  Further, you need to go to extra lengths to keep the results of a manipulation as an integer.