[ 
https://issues.apache.org/jira/browse/MAHOUT-1500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14081111#comment-14081111
 ] 

ASF GitHub Bot commented on MAHOUT-1500:
----------------------------------------

Github user dlyubimov commented on a diff in the pull request:

    https://github.com/apache/mahout/pull/21#discussion_r15654554
  
    --- Diff: h2o/src/main/java/org/apache/mahout/h2obindings/ops/AtB.java ---
    @@ -0,0 +1,66 @@
    +/*
    + *  Licensed to the Apache Software Foundation (ASF) under one or more
    + *  contributor license agreements.  See the NOTICE file distributed with
    + *  this work for additional information regarding copyright ownership.
    + *  The ASF licenses this file to You under the Apache License, Version 2.0
    + *  (the "License"); you may not use this file except in compliance with
    + *  the License.  You may obtain a copy of the License at
    + *
    + *      http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an "AS IS" BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +
    +package org.apache.mahout.h2obindings.ops;
    +
    +import org.apache.mahout.h2obindings.H2OHelper;
    +import org.apache.mahout.h2obindings.drm.H2ODrm;
    +
    +import water.MRTask;
    +import water.fvec.Frame;
    +import water.fvec.Vec;
    +import water.fvec.Chunk;
    +import water.fvec.NewChunk;
    +
    +public class AtB {
    +  /* Calculate A'B */
    +  public static H2ODrm AtB(H2ODrm DrmA, H2ODrm DrmB) {
    +    final Frame A = DrmA.frame;
    +    final Frame B = DrmB.frame;
    +
    +    /* First create an empty frame of the required dimensions */
    +    Frame AtB = H2OHelper.empty_frame(A.numCols(), B.numCols(), -1, -1);
    +
    +    /* Execute MRTask on the new Frame, and fill each cell (initially 0) by
    +       computing appropriate values from A and B.
    +
    +       chks.length == B.numCols()
    +    */
    +    new MRTask() {
    +      public void map(Chunk chks[]) {
    +        int chunk_size = chks[0].len();
    +        long start = chks[0].start();
    +        long A_rows = A.numRows();
    +        Vec A_vecs[] = A.vecs();
    +        Vec B_vecs[] = B.vecs();
    +
    +        for (int c = 0; c < chks.length; c++) {
    +          for (int r = 0; r < chunk_size; r++) {
    +            double v = 0;
    +            for (long i = 0; i < A_rows; i++) {
    +              v += (A_vecs[(int)(start+r)].at(i) * B_vecs[c].at(i));
    --- End diff --
    
    Here and elsewhere. Operator spacing style. please use autoformatting 
features in idea.


> H2O integration
> ---------------
>
>                 Key: MAHOUT-1500
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-1500
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Anand Avati
>             Fix For: 1.0
>
>
> Provide H2O backend for the Mahout DSL



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to