if not(type(lib_dir,string)) then
 lib_dir := currentdir();
fi;

currentdir(lib_dir);
currentdir("../lib_checks");
lib_checks_dir := currentdir();
currentdir(lib_dir);
currentdir("../data");
data_dir := currentdir();
currentdir(lib_dir);

lib_read := proc(f)
 global lib_dir;
 
 if read_quietly <> true then
  printf("Reading %s\n",f);
 fi;
 read(cat(lib_dir,"/",f)):
end:

with(LinearAlgebra):
with(plots):
with(plottools):

lib_read("cartesian_product.mpl"):
lib_read("realisation.mpl"):
lib_read("apply.mpl"):
lib_read("op_props.mpl"):

lib_read("util.mpl"):
lib_read("colours.mpl"):

lib_read("BW1.mpl"):
lib_read("C.mpl"):
lib_read("CP.mpl"):
lib_read("R.mpl"):
lib_read("sphere.mpl"):
lib_read("RZ.mpl"):
lib_read("RZ_set.mpl"):
lib_read("SW.mpl"):
lib_read("SWW.mpl"):
lib_read("W.mpl"):
lib_read("W1.mpl"):
lib_read("Zpl.mpl"):
lib_read("a_infinity.mpl"):
lib_read("abelian_group_homology.mpl"):
lib_read("autorel.mpl"):
lib_read("big_subsets.mpl"):
lib_read("binary_standard_stasheff_trees.mpl"):
lib_read("binary_trees.mpl"):
lib_read("binops.mpl"):
lib_read("chromatic/Lambda2.mpl"):
lib_read("cubes.mpl"):
lib_read("cycord.mpl"):
lib_read("elliptic/edwards.mpl"):
lib_read("epi.mpl"):
lib_read("equiv.mpl"):
lib_read("euler_quartic.mpl"):
lib_read("extended_stasheff_trees.mpl"):
lib_read("free_algebra.mpl"):
lib_read("full_flags.mpl"):
lib_read("full_trees.mpl"):
lib_read("geometry/geometry.mpl"):
lib_read("geometry/boys.mpl"):
lib_read("geometry/boys_data.mpl"):
lib_read("graphs/digraphs.mpl"):
lib_read("graphs/graphs.mpl"):
lib_read("groebner.mpl"):
lib_read("group_homology.mpl"):
lib_read("groups/alternating_five.mpl"):
lib_read("groups/Out_SL2.mpl"):
lib_read("groups/SL2_11.mpl"):
lib_read("groups/holder_graph.mpl"):
lib_read("hasse_diagrams.mpl"):
lib_read("height_functions.mpl"):
lib_read("homology.mpl"):
lib_read("hurewicz.mpl"):
lib_read("interval_partitions.mpl"):
#lib_read("itloc.mpl"):
lib_read("koszul.mpl"):
lib_read("lie_algebra.mpl"):
lib_read("linord.mpl"):
lib_read("maps.mpl"):
lib_read("morava/fgl.mpl"):
lib_read("morse.mpl"):
lib_read("narayana.mpl"):
lib_read("nat_partitions.mpl"):
lib_read("nonempty_subsets.mpl"):
lib_read("numerical_poly.mpl"):
lib_read("one_cubes_prime.mpl"):
lib_read("operads/general.mpl"):
lib_read("operads/BW.mpl"):
lib_read("operads/F.mpl"):
lib_read("operads/F3.mpl"):
lib_read("operads/Phi.mpl"):
lib_read("operads/WK.mpl"):
lib_read("operads/Xi.mpl"):
lib_read("operads/ass.mpl"):
lib_read("operads/cacti/cactus_lobes.mpl"):
lib_read("operads/cacti/cactus_trees.mpl"):
lib_read("operads/cacti/cactus_planar_trees.mpl"):
lib_read("operads/cacti/cacti.mpl"):
lib_read("operads/chains/ACP.mpl"):
lib_read("operads/chains/E.mpl"):
lib_read("operads/chains/FFbar.mpl"):
lib_read("operads/chains/ICP.mpl"):
lib_read("operads/chains/ICP_alt.mpl"):
lib_read("operads/chains/P.mpl"):
lib_read("operads/chains/PQQ.mpl"):
lib_read("operads/chains/PQ_alt.mpl"):
lib_read("operads/chains/SCP.mpl"):
lib_read("operads/chains/SCP2.mpl"):
lib_read("operads/chains/SEM.mpl"):
lib_read("operads/chains/tree_FFbar.mpl"):
lib_read("operads/comm.mpl"):
lib_read("operads/cubes.mpl"):
lib_read("operads/full_trees.mpl"):
lib_read("operads/fulton/D.mpl"):
lib_read("operads/fulton/E.mpl"):
lib_read("operads/fulton/F1bar.mpl"):
lib_read("operads/fulton/Fbar.mpl"):
lib_read("operads/fulton/P2.mpl"):
lib_read("operads/fulton/Q.mpl"):
lib_read("operads/fulton/WFbar.mpl"):
lib_read("operads/fulton/tree_Fbar.mpl"):
lib_read("operads/fulton/tree_Fbar_alt.mpl"):
lib_read("operads/height_functions.mpl"):
lib_read("operads/lie.mpl"):
lib_read("operads/nonempty_subsets.mpl"):
lib_read("operads/one_cubes_prime.mpl"):
lib_read("operads/ord.mpl"):
lib_read("operads/ord_simplex_interior.mpl"):
lib_read("operads/parallel/PP.mpl"):
lib_read("operads/parallel/YC.mpl"):
lib_read("operads/partitions.mpl"):
lib_read("operads/prime_simplex.mpl"):
lib_read("operads/simplex.mpl"):
lib_read("operads/simplex_interior.mpl"):
lib_read("operads/stasheff_star.mpl"):
lib_read("operads/stasheff_trees.mpl"):
lib_read("operads/trees.mpl"):
lib_read("ord.mpl"):  # Duplicates linord.mpl
lib_read("ord_simplex_interior.mpl"):
lib_read("pair_subsets.mpl"):
lib_read("pairs.mpl"):
lib_read("partitions.mpl"):
lib_read("partord.mpl"):
lib_read("permutations.mpl"):
lib_read("plane_cad.mpl"):
lib_read("plots.mpl"):
lib_read("poisson.mpl"):
lib_read("posint_intervals.mpl"):
lib_read("preord.mpl"):
lib_read("prime_W.mpl"):
lib_read("prime_simplex.mpl"):
lib_read("prime_simplex_boundary.mpl"):
lib_read("proper_nonempty_subsets.mpl"):
lib_read("quaternions.mpl"):
lib_read("real_functions.mpl"):
lib_read("rel.mpl"):
lib_read("semioperads/general.mpl"):
lib_read("semioperads/circ.mpl"):
lib_read("semioperads/coloured.mpl"):
lib_read("semioperads/permutations.mpl"):
lib_read("shelling.mpl"):
lib_read("shuffles.mpl"):
lib_read("simplex.mpl"):
lib_read("simplex_interior.mpl"):
lib_read("simplices.mpl"):
lib_read("simplicial.mpl"):
lib_read("simplicial_alt.mpl"):
lib_read("simplicial_complexes/simplicial_complex.mpl"):
lib_read("simplicial_complexes/CP2_complex.mpl"):
lib_read("simplicial_complexes/RP2_complex.mpl"):
lib_read("simplicial_complexes/icosahedron_complex.mpl"):
lib_read("simplicial_complexes/octahedron_complex.mpl"):
lib_read("simplicial_complexes/mobius_complex.mpl"):
lib_read("simplicial_complexes/moore_complex.mpl"):
lib_read("single_cubes.mpl"):
lib_read("space_curves.mpl"):
lib_read("spaces/spaces.mpl"):
lib_read("spaces/complex_projective_space.mpl"):
lib_read("standard_stasheff_star.mpl"):
lib_read("standard_stasheff_trees.mpl"):
lib_read("stasheff_star.mpl"):
lib_read("stasheff_trees.mpl"):
lib_read("steiner_systems.mpl"):
lib_read("striped_preord.mpl"):
lib_read("subsets.mpl"):
lib_read("subspaces.mpl"):
lib_read("symfun.mpl"):
lib_read("tanabe/tanabe.mpl"):
lib_read("tanabe/twisted_product.mpl"):
lib_read("total_preord.mpl"):
lib_read("tree_height_functions.mpl"):
lib_read("trees.mpl"):
lib_read("triples.mpl"):
lib_read("vector_functions.mpl"):
lib_read("witt.mpl"):
lib_read("young.mpl"):

