Commits

Peer Stritzinger  committed 7c986ca

OTP dir structure + Emakefile

  • Participants
  • Parent commits 3377886

Comments (0)

Files changed (3)

+{'src/*', [debug_info,
+           {i, "src"},
+           {i, "include"},
+           {outdir, "ebin"}]}.

File ndarray.erl

-%% Copyright 2011 Peer Stritzinger GmbH, Aumuellerstr. 14, 82216
-%% Ueberacker, Germany http://www.stritzinger.com. All rights reserved. 
-%% Redistribution is permitted under a Simplified BSD License, for
-%% details see the end of this file.
-%%
-%% @author Peer Stritzinger 
-
--module(ndarray). 
-
--export([new/3, new/4, to_list/1]). 
-
--record(ndarray, {dimensions, strides, type, elem_size, data}).
-
-new(Dims, Type, Elem_size) ->
-    new(Dims, Type, Elem_size, 0).
-
-new(Dims, Type, Elem_size, Value) ->
-    Count = lists:foldl(fun(X, Prod) -> X*Prod end, 1, Dims),
-    {Strides, _Bc} = lists:mapfoldl(fun(X, Prod) -> {Prod, X*Prod} end,  
-				    Elem_size, lists:reverse(Dims)),
-    Data = repl_value(Count, Type, Elem_size, Value),
-    #ndarray{dimensions=Dims, data=Data, strides=Strides, 
-	     type=Type, elem_size=Elem_size}.
-
-repl_value(Count, integer, Elem_size, Value) ->
-    << <<X:Elem_size/integer>> || X <- lists:duplicate(Count, Value) >>;
-repl_value(Count, float, Elem_size, Value) ->
-    << <<X:Elem_size/float>> || X <- lists:duplicate(Count, Value) >>.
-
-to_list(#ndarray{strides=Strides, data=Data, 
-		  type=Type, elem_size=Elem_size}) ->
-    to_list(lists:reverse(Strides), Type, Elem_size, Data).
-
-to_list([Elem_size], integer, Elem_size, Data) ->
-    [ X || <<X:Elem_size/integer>> <= Data ];
-to_list([S|Strides], Type, Elem_size, Data) ->
-    [ to_list(Strides, Type, Elem_size, X) 
-      || <<X:S/bitstring>> <= Data ].
-    
-%% Copyright 2011 Peer Stritzinger GmbH, Aumuellerstr. 14, 82216
-%% Ueberacker, Germany http://www.stritzinger.com. All rights reserved. 
-%% 
-%% Redistribution and use in source and binary forms, with or without
-%% modification, are permitted provided that the following conditions are
-%% met: 
-%% 
-%%    1. Redistributions of source code must retain the above copyright
-%%       notice, this list of conditions and the following disclaimer. 
-%% 
-%%    2. Redistributions in binary form must reproduce the above
-%%       copyright notice, this list of conditions and the following
-%%       disclaimer in the documentation and/or other materials provided
-%%       with the distribution. 
-%% 
-%% THIS SOFTWARE IS PROVIDED BY Peer Stritzinger GmbH ''AS IS'' AND ANY
-%% EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-%% PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
-%% CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-%% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-%% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-%% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-%% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-%% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-%% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
-%% 
-%% The views and conclusions contained in the software and documentation
-%% are those of the authors and should not be interpreted as representing
-%% official policies, either expressed or implied, of Peer Stritzinger GmbH.
-

File src/ndarray.erl

+%% Copyright 2011 Peer Stritzinger GmbH, Aumuellerstr. 14, 82216
+%% Ueberacker, Germany http://www.stritzinger.com. All rights reserved. 
+%% Redistribution is permitted under a Simplified BSD License, for
+%% details see the end of this file.
+%%
+%% @author Peer Stritzinger 
+
+-module(ndarray). 
+
+-export([new/3, new/4, to_list/1]). 
+
+-record(ndarray, {dimensions, strides, type, elem_size, data}).
+
+new(Dims, Type, Elem_size) ->
+    new(Dims, Type, Elem_size, 0).
+
+new(Dims, Type, Elem_size, Value) ->
+    Count = lists:foldl(fun(X, Prod) -> X*Prod end, 1, Dims),
+    {Strides, _Bc} = lists:mapfoldl(fun(X, Prod) -> {Prod, X*Prod} end,  
+				    Elem_size, lists:reverse(Dims)),
+    Data = repl_value(Count, Type, Elem_size, Value),
+    #ndarray{dimensions=Dims, data=Data, strides=Strides, 
+	     type=Type, elem_size=Elem_size}.
+
+repl_value(Count, integer, Elem_size, Value) ->
+    << <<X:Elem_size/integer>> || X <- lists:duplicate(Count, Value) >>;
+repl_value(Count, float, Elem_size, Value) ->
+    << <<X:Elem_size/float>> || X <- lists:duplicate(Count, Value) >>.
+
+to_list(#ndarray{strides=Strides, data=Data, 
+		  type=Type, elem_size=Elem_size}) ->
+    to_list(lists:reverse(Strides), Type, Elem_size, Data).
+
+to_list([Elem_size], integer, Elem_size, Data) ->
+    [ X || <<X:Elem_size/integer>> <= Data ];
+to_list([S|Strides], Type, Elem_size, Data) ->
+    [ to_list(Strides, Type, Elem_size, X) 
+      || <<X:S/bitstring>> <= Data ].
+    
+%% Copyright 2011 Peer Stritzinger GmbH, Aumuellerstr. 14, 82216
+%% Ueberacker, Germany http://www.stritzinger.com. All rights reserved. 
+%% 
+%% Redistribution and use in source and binary forms, with or without
+%% modification, are permitted provided that the following conditions are
+%% met: 
+%% 
+%%    1. Redistributions of source code must retain the above copyright
+%%       notice, this list of conditions and the following disclaimer. 
+%% 
+%%    2. Redistributions in binary form must reproduce the above
+%%       copyright notice, this list of conditions and the following
+%%       disclaimer in the documentation and/or other materials provided
+%%       with the distribution. 
+%% 
+%% THIS SOFTWARE IS PROVIDED BY Peer Stritzinger GmbH ''AS IS'' AND ANY
+%% EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+%% PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+%% CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+%% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+%% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+%% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+%% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+%% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+%% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+%% 
+%% The views and conclusions contained in the software and documentation
+%% are those of the authors and should not be interpreted as representing
+%% official policies, either expressed or implied, of Peer Stritzinger GmbH.
+