Sindbad~EG File Manager
/* M. Beeson, for Mathpert */
/* get problemtype from the topic */
/*
4.2.92 original date
1.7.99 last modified
*/
#define AUTOMODE_DLL
#include <assert.h>
#include "export.h"
#include "tdefn.h"
#include "probtype.h"
#include "mainchoi.h"
#include "ptype.h"
/*________________________________________________________________________*/
MEXPORT_AUTOMODE int problem_type(int topic, int *pmainchoice)
/* Given the topic, determine the problemtype and mainchoice;
set the global variable mainchoice and return problemtype */
{ int problemtype;
if(_ordinary_graph <= topic && topic < _graph_taylor)
{ *pmainchoice = ORDINARY;
return ORDINARY_GRAPH;
}
switch(topic)
{ case _graph_taylor:
case _graph_fourier:
case _compare_same:
problemtype = COMPARE_GRAPHS;
*pmainchoice = COMPARE_SAME;
return problemtype;
case _compare_different:
problemtype = COMPARE_GRAPHS;
*pmainchoice = COMPARE_DIFFERENT;
return problemtype;
case _graph_ineq:
problemtype = GRAPH_INEQUALITY;
*pmainchoice = MC_INEQ;
return problemtype;
case _graph_set:
problemtype = GRAPH_INEQUALITY;
*pmainchoice = MC_SET;
return problemtype;
case _graph_circle:
case _graph_ellipse:
case _graph_parabola:
case _graph_hyperbola:
case _graph_relation:
problemtype = GRAPH_RELATION;
*pmainchoice = RELATION;
return problemtype;
case _polyroots:
problemtype = POLYROOTS;
*pmainchoice = POLYROOT;
return problemtype;
case _parametric_graph:
problemtype = PARAMETRIC_GRAPH;
*pmainchoice = PARAMETRIC;
return problemtype;
case _polar_graph:
problemtype = POLAR_GRAPH;
*pmainchoice = POLAR;
return problemtype;
case _comparefandfprime:
problemtype = COMPARE_GRAPHS;
*pmainchoice = COMPAREDERIV;
return problemtype;
case _comparetwoderivs:
problemtype = COMPARE_GRAPHS;
*pmainchoice= COMPAREDERIVS;
return problemtype;
case _contour_plot:
problemtype = CONTOUR_PLOT;
*pmainchoice = CONTOUR;
return problemtype;
case _complex_contour_plot:
problemtype = COMPLEX_CONTOUR_PLOT;
*pmainchoice = COMPLEX_CONTOUR;
return problemtype;
case _solve_ode:
problemtype = SOLVE_ODE;
*pmainchoice = ODE;
return problemtype;
case _solve_two_odes:
problemtype = SOLVE_TWO_ODES;
*pmainchoice = ODE2;
return problemtype;
case _high_order_ode:
problemtype = HIGH_ORDER_ODE;
*pmainchoice = HDE;
return problemtype;
case _riemann_sums:
problemtype = RIEMANN_SUMS;
*pmainchoice = RIEMANNSUMS;
return problemtype;
case _simpsons_rule:
problemtype = SIMPSONS_RULE;
*pmainchoice = SIMPSONSRULE;
return problemtype;
case _trapezoid_rule:
problemtype = TRAPEZOID_RULE;
*pmainchoice = TRAPEZOIDRULE;
return problemtype;
case _nonparametric_surface:
problemtype = NONPARAMETRIC_SURFACE;
*pmainchoice = NONPARAMETRICSURFACE;
return problemtype;
case _polar_nonparametric_surface:
problemtype = POLAR_NONPARAMETRIC_SURFACE;
*pmainchoice = POLARNONPARAMETRICSURFACE;
return problemtype;
case _parametric_surface:
problemtype = PARAMETRIC_SURFACE;
*pmainchoice = PARAMETRICSURFACE;
return problemtype;
case _space_curve:
problemtype = SPACE_CURVE;
*pmainchoice = SPACECURVE;
return problemtype;
/* That's all the graphics topics; from now on we return
problemtype, not mainchoice */
/* Algebra I topics */
case _evaluate_numerically: return SIMPLIFY;
case _verify_algebraic_identity: return TRIG_IDENTITY;
case _solve_linear_equation: return LINEAR_EQUATION;
case _simplify_polynomial: return SIMPLIFY;
case _multiply_polynomials: return EXPAND;
case _alg1_absolute_value: return ABSOLUTE_VALUE;
case _numerical_exponents: return SIMPLIFY;
case _alg1_exponents: return SIMPLIFY;
case _simple_factoring: return FACTOR;
case _alg1_factor_quadratic: return FACTOR;
case _factor_by_grouping: return FACTOR;
case _alg1_quadratic_equation: return SOLVE_EQUATION;
case _complete_the_square: return SOLVE_EQUATION;
case _alg1_quadratic_formula: return SOLVE_EQUATION;
case _alg1_linear_inequality: return INEQUALITIES;
case _alg1_linear_systems: return LINEAR_EQUATIONS;
case _alg1_simplify: return SIMPLIFY;
case _add_numerical_fractions: return COMMON_DENOMINATOR;
case _alg1_common_denoms: return COMMON_DENOMINATOR;
case _simplify_fractions: return SIMPLIFY;
case _numerical_compound_fractions: return COMPOUND_FRACTIONS;
case _alg1_compound_fractions: return COMPOUND_FRACTIONS;
case _equations_containing_fractions: return SOLVE_EQUATION;
case _numerical_radicals: return ROOTS;
case _alg1_radicals: return ROOTS;
case _solve_linear_eqn: return LINEAR_EQUATION;
case _eqns_by_substitution:
case _eqns_by_adding_eqns:
case _eqns_in_matrix_form:
case _gauss_jordan:
case _eqns_by_matrix_inverse:
case _cramers_rule: return LINEAR_EQUATIONS;
case _simplify: return SIMPLIFY;
case _simple_commondenom: return COMMON_DENOMINATOR;
case _advanced_commondenom: return COMMON_DENOMINATOR;
case _compound_fractions: return COMPOUND_FRACTIONS;
case _simplify_polynomials: return SIMPLIFY;
case _simple_exponents: return SIMPLIFY;
case _simplify_rational_functions: return SIMPLIFY;
case _negative_exponents: return NEGATIVE_EXPONENTS;
case _eliminate_negative_exponents: return ELIMINATE_NEGATIVE_EXPONENTS;
case _radicals: return ROOTS;
case _absolute_value: return ABSOLUTE_VALUE;
case _fractional_exponents: return FRACTIONAL_EXPONENTS;
case _eliminate_fractional_exponents: return ROOTS;
case _factor_quadratics: return FACTOR;
case _quadratic_formula: return SOLVE_EQUATION;
case _solve_quadratic_equation: return SOLVE_EQUATION;
case _advanced_factoring: return FACTOR;
case _solve_higher_degree_equation: return SOLVE_EQUATION;
case _solve_rational_equation: return SOLVE_EQUATION;
case _solve_root_equation: return SOLVE_EQUATION;
case _solve_fractions_and_roots: return SOLVE_EQUATION;
case _solve_linear_inequality: return INEQUALITIES;
case _solve_polynomial_inequality: return INEQUALITIES;
case _solve_rational_inequality: return INEQUALITIES;
case _solve_root_inequality: return INEQUALITIES;
case _cubic_one_root: return SOLVE_EQUATION;
case _solve_equation: return SOLVE_EQUATION;
case _simplify_roots_and_powers: return SIMPLIFY;
case _simplify_roots_and_fractions: return SIMPLIFY;
case _simplify_any_function: return SIMPLIFY;
case _verify_alg2_identity: return TRIG_IDENTITY;
/* TRIG TOPICS */
case _evaluate_trig: return SIMPLIFY;
case _basic_trig: return TRIG_IDENTITY;
case _trig_addition: return TRIG_IDENTITY;
case _double_angle: return TRIG_IDENTITY;
case _half_angle: return TRIG_IDENTITY;
case _trig_product: return SIMPLIFY;
case _trig_factor: return TRIG_IDENTITY;
case _trig_identities: return TRIG_IDENTITY;
case _inverse_trig_functions: return SIMPLIFY;
case _simple_trig_eqn: return SOLVE_EQUATION;
case _trig_eqn: return SOLVE_EQUATION;
case _complex_arithmetic: return COMPLEX_NUMBERS;
case _logarithms: return SIMPLIFY;
case _change_log_base: return SIMPLIFY;
case _exponentials: return SIMPLIFY;
case _simplify_logpower: return SIMPLIFY;
case _log_eqn: return SOLVE_EQUATION;
case _exp_eqn: return SOLVE_EQUATION;
case _polar_form: return COMPLEX_NUMBERS;
case _de_moivre: return COMPLEX_NUMBERS;
case _complex_roots: return SOLVE_EQUATION;
case _hyperfunctions: return TRIG_IDENTITY;
case _hyperfunctions2: return TRIG_IDENTITY;
case _complex_trig: return SIMPLIFY;
case _complex_quadratics: return SOLVE_EQUATION;
case _complex_cubics: return SOLVE_EQUATION;
case _sigma_notation: return SIGMA_NOTATION; /* page 259 */
case _binomial_theorem: return BINOMIAL_THEOREM;
case _trig_simplify: return SIMPLIFY;
/* Calculus I topics */
case _polynomial_limits: return LIMITS;
case _simple_limits: return LIMITS;
case _diff_from_def: return DIFFERENTIATE_FROM_DEFN;
case _diff_polynomial: return DIFFERENTIATE;
case _diff_basics: return DIFFERENTIATE;
case _lim_trig: return LIMITS;
case _diff_trig: return DIFFERENTIATE;
case _chain_rule: return DIFFERENTIATE;
case _difreview: return DIFFERENTIATE;
case _higher_order_diff: return DIFFERENTIATE;
case _implicit_diff: return IMPLICIT_DIFF;
case _related_rates: return RELATED_RATES;
case _minmax: return MINMAX;
case _rational_limits: return LIMITS;
case _limits_at_infinity: return LIMITS;
case _infinite_limits: return LIMITS;
case _sigma_notation1: return SIGMA_NOTATION;
case _int_poly: return INTEGRATION;
case _simple_int: return INTEGRATION;
case _fundamental_theorem: return SIMPLIFY;
case _int_by_substitution: return INTEGRATION;
case _int_by_parts1: return INTEGRATION;
case _intreview: return INTEGRATION;
/* Calculus II topics */
case _lim_exp: return LIMITS;
case _eulere_as_limit: return LIMITS;
case _lhopitals_rule: return LHOPITAL;
case _limits_any_function: return LIMITS;
case _limleadingterm: return LIMITS;
case _diff_exp_from_defn: return DIFFERENTIATE_FROM_DEFN;
case _diff_exp: return DIFFERENTIATE;
case _diff_logs: return DIFFERENTIATE;
case _logarithmic_differentiation: return DIFFERENTIATE;
case _diff_arctrig: return DIFFERENTIATE;
case _diff_hyperbolic: return DIFFERENTIATE;
case _diff_any_function: return DIFFERENTIATE;
/* INTEGRATION */
case _int_by_parts2: return INTEGRATION;
case _int_logs: return INTEGRATION;
case _trigpower_integrals: return INTEGRATION;
case _trig_substitution: return INTEGRATION;
case _integrate_rational_functions: return INTEGRATION;
case _rationalizing_substitutions: return INTEGRATION;
case _integrate_any_function: return INTEGRATION;
case _improper_integrals: return INTEGRATION;
case _sum_series: return ADDSERIES;
case _integral_test: return TESTCONVERGENCE;
case _root_ratio_tests: return TESTCONVERGENCE;
case _comparison_test: return TESTCONVERGENCE;
case _power_series1: return POWERSERIES;
case _power_series2: return POWERSERIES;
case _separable_ode: return SYMBOLIC_ODE;
case _arc_length: return ARCLENGTH;
case _area_revolution: return AREA;
case _volume_revolution: return VOLUME;
}
// assert(0);
return SIMPLIFY; /* keep the compiler quiet */
};
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists