package water.api; import hex.la.DMatrix; import water.Futures; import water.Key; import water.Request2; import water.fvec.*; /** * Created by tomasnykodym on 11/19/14. */ public class MatrixMultiply extends Request2 { static final int API_WEAVER = 1; // This file has auto-gen'd doc & json fields static public DocGen.FieldDoc[] DOC_FIELDS; // Initialized from Auto-Gen code. @API(help = "", required = true, filter = Default.class, gridable = false) Frame x; @API(help = "", required = true, filter = Default.class, gridable = false) Frame y; @API(help="",required = true, filter = Default.class, gridable = false) boolean skip_first_col = true; @Request.API(help = "Key for rebalanced frame", filter = Request.Default.class, json=true) public Key after = (x != null && y != null) ? Key.make(x._key + "%*%" + y._key) : null; @Override protected Response serve() { Key jk = Key.make(after + "_job"); Futures fs = new Futures(); if(skip_first_col && x.numCols() == (y.numRows()+1)) { // hack to remove columns added during smvlight conversion x.remove(0).remove(fs); y.remove(0).remove(fs); } new DMatrix.MatrixMulJob(jk,after,x,y).fork(); return Response.redirect(this, "/2/Inspector", "src_key",after); } }