swh:1:snp:d7f1b9eb7ccb596c2622c4780febaa02549830f9
Tip revision: ad58ae426e7e9200530d18bf439d02657503426c authored by fclement on 23 November 2010, 11:33:06 UTC
Ignore all generated files.
Ignore all generated files.
Tip revision: ad58ae4
template.mli
(***********************************************************************)
(* *)
(* OCamlP3l *)
(* *)
(* (C) 2004-2007 *)
(* Roberto Di Cosmo (dicosmo@dicosmo.org) *)
(* Zheng Li (zli@lip6.fr) *)
(* Pierre Weis (Pierre.Weis@inria.fr) *)
(* Francois Clement (Francois.Clement@inria.fr) *)
(* *)
(* Based on original Ocaml P3L System *)
(* (C) 1997 by *)
(* Roberto Di Cosmo (dicosmo@ens.fr) *)
(* Marco Danelutto (marcod@di.unipi.it) *)
(* Xavier Leroy (Xavier.Leroy@inria.fr) *)
(* Susanna Pelagatti (susanna@di.unipi.it) *)
(* *)
(* This program is free software; you can redistribute it and/or *)
(* modify it under the terms of the GNU Library General Public License *)
(* as published by the Free Software Foundation; either version 2 *)
(* of the License, or (at your option) any later version. *)
(* *)
(* This program is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)
(* GNU Library General Public License for more details. *)
(* *)
(***********************************************************************)
(* $Id: template.mli,v 1.3 2007-01-23 15:50:04 weis Exp $ *)
type tag =
Maptag of index * dimension
| Farmtag
| Reducetag of weight
| Reduceseqtag
| ReduceLoop
| Reducepartag of int * int
| Seqtag
| Looptag
and index = int
and dimension = int
and weight = int
type ('a, 'b, 'c) packet =
UserPacket of 'a * sequencenum * tag list
| EndStream
| EndOneStream
| EndLoop of sequencenum
| EndOneLoop of sequencenum
and sequencenum = int
type demand = Request of Commlib.vpinfo
val exceptq : 'a -> 'a list -> 'a list
val msg : ('a, 'b, 'c) packet -> string
val eloop : sequencenum -> ('a, 'b, 'c) packet -> ('d, 'e, 'f) packet
val instanciate_io : (unit -> 'a) -> 'b -> 'c -> 'a
val seqtempl :
(unit -> 'a -> 'b) -> Commlib.vp_chan -> Commlib.vp_chan -> unit
val demandseqtempl :
(unit -> 'a -> 'b) -> Commlib.vp_chan -> Commlib.vp_chan -> unit
val localredfunction : ('a -> 'a -> 'a) -> 'a array -> 'a
val curry : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
val redseqtempl :
(unit -> 'a * 'a -> 'a) -> Commlib.vp_chan -> Commlib.vp_chan -> unit
val parfunstartempl :
(unit -> 'a) -> Commlib.vp_chan -> Commlib.vp_chan -> unit
val startempl :
(unit -> 'a) -> (unit -> 'b) -> Commlib.vp_chan -> Commlib.vp_chan -> unit
val stoptempl :
('a -> unit) ->
(unit -> 'b) -> (unit -> 'c) -> Commlib.vp_chan -> 'd -> unit
val farmetempl :
(Commlib.vp_chan list -> Commlib.vp_chan) ->
Commlib.vp_chan -> Commlib.vp_chan list -> unit
val closedemandocl : Commlib.vp_chan list -> string -> unit
val extdemandfarmetempl :
'a -> Commlib.vp_chan -> Commlib.vp_chan list -> unit
val intdemandfarmetempl :
'a -> Commlib.vp_chan -> Commlib.vp_chan list -> unit
val mkinctest : 'a list -> int * (unit -> bool)
val farmctempl : 'a -> Commlib.vp_chan list -> Commlib.vp_chan -> unit
val registered : 'a -> 'a list -> bool
val keeptrack : int -> int list -> int list
val unkeeptrack : int -> int list -> int list
val condtestertempl :
('a -> bool) -> Commlib.vp_chan -> Commlib.vp_chan list -> unit
val loopdisttempl :
(Commlib.vp_chan list -> ('a, 'b, 'c) packet * Commlib.vp_chan) ->
Commlib.vp_chan list -> Commlib.vp_chan -> unit
val mapetempl :
(Commlib.vp_chan list -> Commlib.vp_chan) ->
Commlib.vp_chan -> Commlib.vp_chan list -> unit
val vector_of_item_list : (int * 'a) list -> 'a array
val ins_packet :
('a, 'b, 'c) packet ->
(sequencenum * (index * 'a) list) list ->
(sequencenum * (index * 'a) list) list
val print_packetlist : (int * (int * 'a) list) list -> string
val list_complete :
('a, 'b, 'c) packet -> (sequencenum * 'd list) list -> 'd list
val pck_list_remove :
('a, 'b, 'c) packet -> (sequencenum * 'd) list -> (sequencenum * 'd) list
val mapctempl :
(Commlib.vp_chan list -> ('a, 'b, 'c) packet * Commlib.vp_chan) ->
Commlib.vp_chan list -> Commlib.vp_chan -> unit
val split_list : 'a list -> int -> int -> 'a list -> 'a list list
val packl_of_vect : 'a array -> ('a * 'a) list * 'a option
val reduceparetempl :
(Commlib.vp_chan list -> Commlib.vp_chan) ->
Commlib.vp_chan list -> Commlib.vp_chan list -> unit
val process_result :
'a ->
'b -> 'c -> ('b * 'a * 'c) list -> ('b * 'a * 'c) list * ('a * 'c) option
val reduceparctempl :
(Commlib.vp_chan list -> (int, 'a, 'b) packet * Commlib.vp_chan) ->
Commlib.vp_chan list -> Commlib.vp_chan list -> unit