Changeset 29998 in project


Ignore:
Timestamp:
11/05/13 14:10:48 (8 years ago)
Author:
Ivan Raikov
Message:

9ML-toolkit: added SML support files in .setup; small fixes in templates

Location:
release/4/9ML-toolkit/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • release/4/9ML-toolkit/trunk/9ML-toolkit.setup

    r29980 r29998  
    330330(copy-file-to-9ML-dir "templates/Makefile.tmpl")
    331331
     332(copy-file-to-9ML-dir "sml-lib/nodegraph.sml")
     333(copy-file-to-9ML-dir "sml-lib/nodegraph.mlb")
     334
  • release/4/9ML-toolkit/trunk/network.scm

    r29979 r29998  
    12921292                                                   `((sml_lib_home . ,(Tstr (make-pathname
    12931293                                                                             (make-pathname shared-dir "flsim")
    1294                                                                              "sml-lib")))))
    1295                                           ))))
     1294                                                                             "sml-lib")))
     1295                                                     (nineml_lib_home . ,(Tstr (make-pathname
     1296                                                                                (make-pathname shared-dir "9ML-toolkit")
     1297                                                                                "sml-lib")))
     1298                                                     ))
     1299                                          ))
     1300                                  ))
    12961301                              )
    12971302
  • release/4/9ML-toolkit/trunk/templates/Makefile.tmpl

    r29979 r29998  
    11all: Sim{{group.name}}
    22Sim{{group.name}}: Sim{{group.name}}.mlb Sim{{group.name}}.sml {{group.name}}.sml
    3         mlton -cc-opt "-O3" -mlb-path-var "RK_LIB {{sml_lib_home}}/rk" -mlb-path-var "RANDMTZIG_LIB {{sml_lib_home}}/randmtzig" -mlb-path-var "TENSOR_LIB {{sml_lib_home}}/tensor" $< {{sml_lib_home}}/randmtzig/randmtziglib.c
     3        mlton -cc-opt "-O3" -mlb-path-var "RK_LIB {{sml_lib_home}}/rk" -mlb-path-var "RANDMTZIG_LIB {{sml_lib_home}}/randmtzig" -mlb-path-var "TENSOR_LIB {{sml_lib_home}}/tensor" -mlb-path-var "NINEML_LIB {{nineml_lib_home}}"  $< {{sml_lib_home}}/randmtzig/randmtziglib.c
    44
  • release/4/9ML-toolkit/trunk/templates/Network.sml.elec.tmpl

    r29994 r29998  
    1 
    2 signature NODE_GRAPH =
    3 sig
    4     type symbol = Symbol.symbol
    5     type nindex = int
    6     type rangemap = (int * int) list
    7 
    8     val nodeGraph : (symbol * SparseMatrix.matrix * rangemap) ->
    9                     (nindex, real, unit) Graph.graph
    10                    
    11     val junctionMatrix : ((nindex, real, unit) Graph.graph) -> SparseMatrix.matrix
    12 
    13 
    14 end
    15 
    16 structure NodeGraph: NODE_GRAPH =
    17 struct
    18 
    19 type symbol   = Symbol.symbol
    20 type index    = int
    21 type rangemap = {localStart: int, localEnd: int, globalStart: int} list
    22 
    23 exception Index
    24 
    25 fun nodeGraph (S, rangemap) =
    26     let
    27         val mapIndex m i = case List.find (fn (({localStart,localEnd,globalStart} =>
    28                                                 i >= localStart andalso i < localEnd)) m of
    29                                SOME ({localStart,localEnd,globalStart}) => globalStart + (i-localStart)
    30                              | NONE => raise Index
    31        
    32         val [N,_] = SparseMatrix.shape S
    33        
    34         val G as Graph.GRAPH g =
    35             DirectedGraph.graph(Symbol.name modelname,(),N) :
    36             (index,real,unit) Graph.graph
    37 
    38         val idxs  = List.tabulate (N, fn (i) => i)
    39         val gidxs = List.tabulate (N, fn (i) => mapIndex rangemap i)
    40 
    41         val _ = ListPair.app (#add_node g) (gidxs,idxs)
    42 
    43         val add_edge = #add_edge g
    44 
    45         val _ List.app
    46               (fn (s) =>
    47                   let
    48                       val sl = SparseMatrix.slice (S,1,i)
    49                   in
    50                       SparseMatrix.sliceAppi
    51                           (fn (t,v) => add_edge (mapIndex rangemap s, mapIndex rangemap t,v))
    52                           sl
    53                   end)
    54               idxs
    55 
    56     in
    57         G
    58     end
    59 
    60 fun junctionMatrix (Graph.GRAPH g) =
    61     let
    62         fun nodeCoeffs n =
    63             let
    64                 val out  = (#out_edges g) n
    65                 val self = Real.- (~1.0, foldl (fn ((s,t,v),ax) => Real.+(v,ax)) 0.0 out)
    66             in
    67                 (n, (n,self) :: (map (fn (s,t,v) => (t,v)) out))
    68             end
    69 
    70         val lst = ref []
    71            
    72     in
    73         ((#forall_nodes g) (fn (n,_) => (lst := ((nodeCoeffs n) :: !lst)));
    74          SparseMatrix.fromLists (!lst))
    75     end
    76 
    77 end
    781
    792structure {{group.name}} =
  • release/4/9ML-toolkit/trunk/templates/Sim.sml.elec.tmpl

    r29944 r29998  
    1 (*
    2  
    3 val _ =
    4     let
    5         val tasks =
    6             List.tabulate
    7                 (Ntasks,
    8                  fn (i) =>
    9                  let
    10                      val prio = Int.mod (Random.randNat seed, Nprio)
    11                      val r  = Real.fromInt i
    12                  in
    13                      (prio, r)
    14                  end)
    15                                      
    16         val pq = foldl PQ.insert PQ.empty tasks
    17         (* or val pq = PQ.fromList tasks *)
    18 
    19         fun aux pq' =
    20             case PQ.next pq' of
    21                 NONE => ()
    22               | SOME ((prio, r), pq'') => (
    23                   print (Int.toString prio ^ ", " ^ (Real.toString r) ^ "\n");
    24                   aux pq''
    25               )
    26     in
    27         aux pq
    28     end
    29 *)
    301
    312structure Sim{{group.name}} =
Note: See TracChangeset for help on using the changeset viewer.