/* Routines that generate the 1d figs for the dygrid papers. */ /* Last edited on 2007-10-11 00:32:03 by stolfi */ #ifndef figs1d_H #define figs1d_H #include #include #include #include #include void figs_1d_mother_pulse_catalog ( PlotOptions *o, dg_pulse_kind_t pkind, dg_cont_t cMin, dg_cont_t cMax, dg_degree_t gOver ); /* Outputs several figures with plots of all univariate mother pulses with given kind {pkind}, some continuity {c}, and some degree {g}, on a regular circular grid with some size {gsz}. The continuity {c} is varied between {cMin} and {cMax}. The degree {g} is varied from {gMin} to {gMin+gOver}, where {gMin} is determined by {pkind} and {c}. The grid size {gsz} is a power of 2, ranging from {2^0 = 1} to the first power {2^k} that is greater than the mother pulse's support size. Outputs a separate figure for each {c,g,r} combination, showing all mother pulses superimposed, with fold-over. */ void fig_1d_mother_pulse ( PlotOptions *o, char *tag, /* Tag for figure/file name. */ dg_pulse_family_t *fam, /* Pulse family. */ dg_pulse_mother_index_t pix, /* Index of mother element. */ dg_grid_size_t gsz, /* Domain period (number of grid intervals). */ interval_t fr[] /* Arg and function ranges of interest. */ ); /* Outputs a figure showing the single mother pulse of family {fam} and index {pix}. Assumes periodic domain with period {gsz} and width {gsz}. */ void fig_1d_mother_pulse_set ( PlotOptions *o, char *tag, /* Tag for figure/file name. */ dg_pulse_family_t *fam, /* Pulse family. */ dg_grid_size_t gsz, /* Domain period (number of grid intervals). */ interval_t fr[] /* Arg and function ranges of interest. */ ); /* Outputs one figure showing the graphs of the mother pulses of the family {fam}, with all valid mother indices. Assumes a periodic domain with period {gsz} and width {gsz}. */ void figs_1d_some_grid_both_bases ( PlotOptions *o, dg_rank_t rMin, dg_rank_t rMax, dg_pulse_kind_t pkind, dg_cont_t c, dg_degree_t g ); /* Outputs several figures with plots of the elements of tent bases for some dyadic grid {G}. The grid {G} is generated randomly, with leaf cells at levels between {rMin} and {rMax} inclusive. Considers two tent bases for {G}, inferior and superior. Each basis is derived from the mother pulses of kind {pkind}, continuity {c}, and degree {g}. Outputs a separate figure for each basis type, and each element of that basis, containing the plot of that element. */ void figs_1d_basis ( PlotOptions *o, char *grid_tag, /* A character string that identifies the grid. */ dg_tree_node_t *G, /* Root node of grid. */ interval_t rootCell[], /* Root interval. */ dg_pulse_family_t *fam, /* Pulse family. */ bool_t superior /* TRUE for maximal-support elements. */ ); /* Outputs several figures showing the graphs of all elements of a pulse basis belonging to the given family, for the finite 1-dimensional dyadic grid determined by {G} and {rootCell}. If {superior} is FALSE, plots the inferior (minimal support) basis. If superioris TRUE, plots the (maximal support) basis. */ void fig_1d_basis_element ( PlotOptions *o, char *tag, /* Tag for figure/file name. */ dg_tree_node_t *G, /* Root node of grid. */ interval_t rootCell[], /* The root cell. */ dg_pulse_family_t *fam, /* Pulse family. */ dg_pulse_mother_index_t pix, /* The mother pulse index */ dg_rank_t r, /* The pulse's rank. */ dg_grid_pos_t pos, /* The pulse's shift. */ interval_t fr[] /* Arg and function ranges of interest. */ ); /* Outputs a figure showing the graph of the standard pulse of family {fam} and mother index {pix}, for the finite 1-dimensional dyadic grid determined by {node} and {rootCell}. */ #endif