Sindbad~EG File Manager

Current Path : /usr/home/beeson/MathXpert/automode/
Upload File :
Current File : /usr/home/beeson/MathXpert/automode/topics.c

/* M. Beeson, for Mathpert */
/* get problemtype from the topic */
/*
4.2.92 original date
1.7.99 last modified
4.28.07  added problem_file() [to replace the old problems.ndx file.
8.16.07 changed "grafineq2" to "grineq2"
6.17.13  removed mention of dead topics
9.20.24  deleted dead code problem_file 
*/
#include <assert.h>

#include "tdefn.h"
#include "probtype.h"
#include "mainchoi.h"
#include "ptype.h"
/*________________________________________________________________________*/
int problem_type(int topic, int *pmainchoice)
/* Given the topic, determine the problemtype and mainchoice;
set the 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_CIRCULAR;
         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 */
      
           /* Algebra I topics */
      case _evaluate_numerically:         return SIMPLIFY;
      case _verify_algebraic_identity:    return TRIG_IDENTITY;
      case _solve_linear_equation:        return LINEAR_EQUATION;
      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 _complete_the_square:          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 _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 _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;
#if 0
      case _separable_ode:                return SYMBOLIC_ODE;
      case _arc_length:                   return ARCLENGTH;
      case _area_revolution:              return AREA;
      case _volume_revolution:            return VOLUME;
#endif 
   }
//  assert(0);
  return SIMPLIFY;  /* keep the compiler quiet */
}


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists