Apache Hivemall
Copyright 2016 and onwards The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Copyright (C) 2013-2015 National Institute of Advanced Industrial Science and Technology (AIST)
Copyright (C) 2015-2016 Makoto Yui
Copyright (C) 2015-2016 Treasure Data, Inc.

------------------------------------------------------------------------------------------------------
Copyright notifications which have been relocated from source files

o hivemall/core/src/main/java/hivemall/smile/classification/DecisionTree.java
  hivemall/core/src/main/java/hivemall/smile/regression/RegressionTree.java

    Copyright (c) 2010 Haifeng Li

    https://github.com/haifengl/smile
    Licensed under the Apache License, Version 2.0

o hivemall/core/src/main/java/hivemall/utils/codec/Base91.java

    Copyright (c) 2000-2006 Joachim Henke

    https://github.com/bwaldvogel/base91
    Licensed under the BSD 3-Clause License

o hivemall/core/src/main/java/hivemall/utils/collections/OpenHashMap.java

    Copyright (C) 2010 catchpole.net

    https://github.com/slipperyseal/atomicobjects/
    Licensed under the Apache License, Version 2.0

o hivemall/core/src/main/java/hivemall/utils/math/FastMath.java

     Copyright 2012-2015 Jeff Hain
     
     https://github.com/jeffhain/jafama/
     Licensed under the Apache License, Version 2.0
     
     Copyright (C) 1993 by Sun Microsystems, Inc.
     
     Permission to use, copy, modify, and distribute this software is freely granted, provided that this notice is preserved.

------------------------------------------------------------------------------------------------------
Copyright notifications which have been relocated from ASF projects

o hivemall/core/src/main/java/hivemall/utils/math/MathUtils.java#erfInv()

    Copyright (C) 2003-2016 The Apache Software Foundation.

    http://commons.apache.org/proper/commons-math/
    Licensed under the Apache License, Version 2.0

o hivemall/core/src/main/java/hivemall/utils/buffer/DynamicByteArray.java

    Copyright 2013-2015 The Apache Software Foundation

    https://orc.apache.org/
    Licensed under the Apache License, Version 2.0

o hivemall/spark/spark-2.0/extra-src/hive/src/main/scala/org/apache/spark/sql/hive/HiveShim.scala
  hivemall/spark/spark-2.0/src/test/scala/org/apache/spark/sql/QueryTest.scala
  hivemall/spark/spark-2.0/src/test/scala/org/apache/spark/sql/catalyst/plans/PlanTest.scala
  hivemall/spark/spark-2.0/src/test/scala/org/apache/spark/sql/hive/test/TestHiveSingleton.scala
  hivemall/spark/spark-2.1/extra-src/hive/src/main/scala/org/apache/spark/sql/hive/HiveShim.scala
  hivemall/spark/spark-2.1/src/test/scala/org/apache/spark/sql/QueryTest.scala
  hivemall/spark/spark-2.1/src/test/scala/org/apache/spark/sql/catalyst/plans/PlanTest.scala
  hivemall/spark/spark-2.1/src/test/scala/org/apache/spark/sql/hive/test/TestHiveSingleton.scala
  hivemall/spark/spark-2.1/src/test/scala/org/apache/spark/sql/test/SQLTestUtils.scala
  hivemall/spark/spark-2.1/src/test/scala/org/apache/spark/sql/test/SQLTestData.scala
  hivemall/spark/spark-2.1/src/test/scala/org/apache/spark/sql/execution/benchmark/BenchmarkBase.scala

    Copyright (C) 2014-2017 The Apache Software Foundation.

    http://spark.apache.org/
    Licensed under the Apache License, Version 2.0
 
 