/* * <!-- * * ************************************************************** * This Java source has been automatically generated. * MODIFICATIONS TO THIS SOURCE MAY BE OVERWRITTEN - DO NOT MODIFY THIS FILE * ************************************************************** * * * This file (CAL_LongMap_internal.java) * was generated from CAL module: Cal.Collections.LongMap. * The constants and methods provided are intended to facilitate accessing the * Cal.Collections.LongMap module from Java code. * * Creation date: Fri Mar 16 13:11:57 PST 2007 * --!> * */ package org.openquark.cal.internal.module.Cal.Collections; import org.openquark.cal.compiler.ModuleName; import org.openquark.cal.compiler.QualifiedName; import org.openquark.cal.compiler.SourceModel; /** * An efficient implementation of maps from <code>Cal.Core.Prelude.Long</code> to values. * <p> * The implementation is based on <em>big-endian patricia trees</em>. This data structure * performs especially well on binary operations like <code>Cal.Collections.LongMap.union</code> and <code>Cal.Collections.LongMap.intersection</code>. * <ul> * <li> * Chris Okasaki and Andy Gill, "Fast Mergeable Integer Maps", * Workshop on ML, September 1998, pages 77--86, <a href='http://www.cse.ogi.edu/~andy/pub/finite.htm'>http://www.cse.ogi.edu/~andy/pub/finite.htm</a> * </li> * <li> * D.R. Morrison, "PATRICIA -- Practical Algorithm To Retrieve Information * Coded In Alphanumeric", Journal of the ACM, 15(4), October 1968, pages 514--534. * * </li> * </ul> * <p> * Many operations have a worst-case complexity of O(min(n,W)). This means that the * operation can become linear in the number of elements * with a maximum of W -- the number of bits in an <code>Cal.Core.Prelude.Long</code>. * <p> * This module is an adaptation of functionality from Daan Leijen's DData collections library for Haskell. * The library was obtained from <a href='http://www.cs.uu.nl/~daan/ddata.html'>http://www.cs.uu.nl/~daan/ddata.html</a>. * See the file <code>ThirdPartyComponents/ThirdPartyComponents.txt</code> for the DData license. * * * <dl><dt><b>See Also:</b> * <dd><b>Modules:</b> Cal.Collections.Map, Cal.Collections.IntMap * </dl> * * @author Bo Ilic */ public final class CAL_LongMap_internal { public static final ModuleName MODULE_NAME = ModuleName.make("Cal.Collections.LongMap"); /** * This inner class (DataConstructors) contains constants * and methods related to binding to CAL DataConstructors in the Cal.Collections.LongMap module. */ public static final class DataConstructors { /* * DataConstructors for the Cal.Collections.LongMap.LongMap data type. */ /** * Binding for DataConstructor: Cal.Collections.LongMap.Nil. * @return the SourceModule.Expr representing an application of Cal.Collections.LongMap.Nil */ public static final SourceModel.Expr Nil() { return SourceModel.Expr.DataCons.make(DataConstructors.Nil); } /** * Name binding for DataConstructor: Cal.Collections.LongMap.Nil. * @see #Nil() */ public static final QualifiedName Nil = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "Nil"); /** * Ordinal of DataConstructor Cal.Collections.LongMap.Nil. * @see #Nil() */ public static final int Nil_ordinal = 0; /** * Binding for DataConstructor: Cal.Collections.LongMap.Tip. * @param key * @param value * @return the SourceModule.Expr representing an application of Cal.Collections.LongMap.Tip */ public static final SourceModel.Expr Tip(SourceModel.Expr key, SourceModel.Expr value) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.DataCons.make(DataConstructors.Tip), key, value}); } /** * @see #Tip(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param key * @param value * @return org.openquark.cal.compiler.SourceModel.Expr */ public static final SourceModel.Expr Tip(long key, SourceModel.Expr value) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.DataCons.make(DataConstructors.Tip), SourceModel.Expr.makeLongValue(key), value}); } /** * Name binding for DataConstructor: Cal.Collections.LongMap.Tip. * @see #Tip(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName Tip = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "Tip"); /** * Ordinal of DataConstructor Cal.Collections.LongMap.Tip. * @see #Tip(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final int Tip_ordinal = 1; /** * Binding for DataConstructor: Cal.Collections.LongMap.Bin. * @param prefix * @param mask * @param leftMap * @param rightMap * @return the SourceModule.Expr representing an application of Cal.Collections.LongMap.Bin */ public static final SourceModel.Expr Bin(SourceModel.Expr prefix, SourceModel.Expr mask, SourceModel.Expr leftMap, SourceModel.Expr rightMap) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.DataCons.make(DataConstructors.Bin), prefix, mask, leftMap, rightMap}); } /** * @see #Bin(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param prefix * @param mask * @param leftMap * @param rightMap * @return org.openquark.cal.compiler.SourceModel.Expr */ public static final SourceModel.Expr Bin(long prefix, long mask, SourceModel.Expr leftMap, SourceModel.Expr rightMap) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.DataCons.make(DataConstructors.Bin), SourceModel.Expr.makeLongValue(prefix), SourceModel.Expr.makeLongValue(mask), leftMap, rightMap}); } /** * Name binding for DataConstructor: Cal.Collections.LongMap.Bin. * @see #Bin(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName Bin = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "Bin"); /** * Ordinal of DataConstructor Cal.Collections.LongMap.Bin. * @see #Bin(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final int Bin_ordinal = 2; } /** * This inner class (Functions) contains constants * and methods related to binding to CAL functions in the Cal.Collections.LongMap module. */ public static final class Functions { /** * Helper binding method for function: arbitraryLongMap. * @return the SourceModule.expr representing an application of arbitraryLongMap */ public static final SourceModel.Expr arbitraryLongMap() { return SourceModel.Expr.Var.make(Functions.arbitraryLongMap); } /** * Name binding for function: arbitraryLongMap. * @see #arbitraryLongMap() */ public static final QualifiedName arbitraryLongMap = QualifiedName.make( CAL_LongMap_internal.MODULE_NAME, "arbitraryLongMap"); /** * Helper binding method for function: bin. * @param p * @param m * @param l * @param r * @return the SourceModule.expr representing an application of bin */ public static final SourceModel.Expr bin(SourceModel.Expr p, SourceModel.Expr m, SourceModel.Expr l, SourceModel.Expr r) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.bin), p, m, l, r}); } /** * @see #bin(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param p * @param m * @param l * @param r * @return the SourceModel.Expr representing an application of bin */ public static final SourceModel.Expr bin(long p, long m, SourceModel.Expr l, SourceModel.Expr r) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.bin), SourceModel.Expr.makeLongValue(p), SourceModel.Expr.makeLongValue(m), l, r}); } /** * Name binding for function: bin. * @see #bin(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName bin = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "bin"); /** * Helper binding method for function: branchMask. * @param p1 * @param p2 * @return the SourceModule.expr representing an application of branchMask */ public static final SourceModel.Expr branchMask(SourceModel.Expr p1, SourceModel.Expr p2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.branchMask), p1, p2}); } /** * @see #branchMask(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param p1 * @param p2 * @return the SourceModel.Expr representing an application of branchMask */ public static final SourceModel.Expr branchMask(long p1, long p2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.branchMask), SourceModel.Expr.makeLongValue(p1), SourceModel.Expr.makeLongValue(p2)}); } /** * Name binding for function: branchMask. * @see #branchMask(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName branchMask = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "branchMask"); /** * Helper binding method for function: coarbitraryLongMap. * @param map * @param arg_2 * @return the SourceModule.expr representing an application of coarbitraryLongMap */ public static final SourceModel.Expr coarbitraryLongMap(SourceModel.Expr map, SourceModel.Expr arg_2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.coarbitraryLongMap), map, arg_2}); } /** * Name binding for function: coarbitraryLongMap. * @see #coarbitraryLongMap(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName coarbitraryLongMap = QualifiedName.make( CAL_LongMap_internal.MODULE_NAME, "coarbitraryLongMap"); /** * Helper binding method for function: foldR. * @param f * @param z * @param t * @return the SourceModule.expr representing an application of foldR */ public static final SourceModel.Expr foldR(SourceModel.Expr f, SourceModel.Expr z, SourceModel.Expr t) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.foldR), f, z, t}); } /** * Name binding for function: foldR. * @see #foldR(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName foldR = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "foldR"); /** * Helper binding method for function: inputLongMap. * @param list * @return the SourceModule.expr representing an application of inputLongMap */ public static final SourceModel.Expr inputLongMap(SourceModel.Expr list) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.inputLongMap), list}); } /** * Name binding for function: inputLongMap. * @see #inputLongMap(org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName inputLongMap = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "inputLongMap"); /** * Helper binding method for function: join. * @param p1 * @param t1 * @param p2 * @param t2 * @return the SourceModule.expr representing an application of join */ public static final SourceModel.Expr join(SourceModel.Expr p1, SourceModel.Expr t1, SourceModel.Expr p2, SourceModel.Expr t2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.join), p1, t1, p2, t2}); } /** * @see #join(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param p1 * @param t1 * @param p2 * @param t2 * @return the SourceModel.Expr representing an application of join */ public static final SourceModel.Expr join(long p1, SourceModel.Expr t1, long p2, SourceModel.Expr t2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.join), SourceModel.Expr.makeLongValue(p1), t1, SourceModel.Expr.makeLongValue(p2), t2}); } /** * Name binding for function: join. * @see #join(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName join = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "join"); /** * Helper binding method for function: mapAccumL. * @param f * @param a * @param t * @return the SourceModule.expr representing an application of mapAccumL */ public static final SourceModel.Expr mapAccumL(SourceModel.Expr f, SourceModel.Expr a, SourceModel.Expr t) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.mapAccumL), f, a, t}); } /** * Name binding for function: mapAccumL. * @see #mapAccumL(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName mapAccumL = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "mapAccumL"); /** * Helper binding method for function: mapAccumR. * @param f * @param a * @param t * @return the SourceModule.expr representing an application of mapAccumR */ public static final SourceModel.Expr mapAccumR(SourceModel.Expr f, SourceModel.Expr a, SourceModel.Expr t) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.mapAccumR), f, a, t}); } /** * Name binding for function: mapAccumR. * @see #mapAccumR(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName mapAccumR = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "mapAccumR"); /** * Helper binding method for function: mask. * @param i * @param m * @return the SourceModule.expr representing an application of mask */ public static final SourceModel.Expr mask(SourceModel.Expr i, SourceModel.Expr m) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.mask), i, m}); } /** * @see #mask(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param i * @param m * @return the SourceModel.Expr representing an application of mask */ public static final SourceModel.Expr mask(long i, long m) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.mask), SourceModel.Expr.makeLongValue(i), SourceModel.Expr.makeLongValue(m)}); } /** * Name binding for function: mask. * @see #mask(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName mask = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "mask"); /** * Helper binding method for function: outputLongMap. * @param m * @return the SourceModule.expr representing an application of outputLongMap */ public static final SourceModel.Expr outputLongMap(SourceModel.Expr m) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.outputLongMap), m}); } /** * Name binding for function: outputLongMap. * @see #outputLongMap(org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName outputLongMap = QualifiedName.make( CAL_LongMap_internal.MODULE_NAME, "outputLongMap"); /** * Helper binding method for function: shorter. * @param m1 * @param m2 * @return the SourceModule.expr representing an application of shorter */ public static final SourceModel.Expr shorter(SourceModel.Expr m1, SourceModel.Expr m2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.shorter), m1, m2}); } /** * @see #shorter(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param m1 * @param m2 * @return the SourceModel.Expr representing an application of shorter */ public static final SourceModel.Expr shorter(long m1, long m2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.shorter), SourceModel.Expr.makeLongValue(m1), SourceModel.Expr.makeLongValue(m2)}); } /** * Name binding for function: shorter. * @see #shorter(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName shorter = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "shorter"); /** * Helper binding method for function: showLongMap. * @param m * @return the SourceModule.expr representing an application of showLongMap */ public static final SourceModel.Expr showLongMap(SourceModel.Expr m) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.showLongMap), m}); } /** * Name binding for function: showLongMap. * @see #showLongMap(org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName showLongMap = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "showLongMap"); /** * Helper binding method for function: submapCmp. * @param pred * @param t1 * @param t2 * @return the SourceModule.expr representing an application of submapCmp */ public static final SourceModel.Expr submapCmp(SourceModel.Expr pred, SourceModel.Expr t1, SourceModel.Expr t2) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.submapCmp), pred, t1, t2}); } /** * Name binding for function: submapCmp. * @see #submapCmp(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName submapCmp = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "submapCmp"); /** * Helper binding method for function: zero. * @param i * @param m * @return the SourceModule.expr representing an application of zero */ public static final SourceModel.Expr zero(SourceModel.Expr i, SourceModel.Expr m) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.zero), i, m}); } /** * @see #zero(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) * @param i * @param m * @return the SourceModel.Expr representing an application of zero */ public static final SourceModel.Expr zero(long i, long m) { return SourceModel.Expr.Application.make( new SourceModel.Expr[] {SourceModel.Expr.Var.make(Functions.zero), SourceModel.Expr.makeLongValue(i), SourceModel.Expr.makeLongValue(m)}); } /** * Name binding for function: zero. * @see #zero(org.openquark.cal.compiler.SourceModel.Expr, org.openquark.cal.compiler.SourceModel.Expr) */ public static final QualifiedName zero = QualifiedName.make(CAL_LongMap_internal.MODULE_NAME, "zero"); } /** * A hash of the concatenated JavaDoc for this class (including inner classes). * This value is used when checking for changes to generated binding classes. */ public static final int javaDocHash = -582225905; }