File size: 4,726 Bytes
c49667f
d5d735f
b16cdfc
 
1599566
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b16cdfc
46ee226
 
1599566
 
 
 
 
 
 
 
 
 
 
 
46ee226
1599566
 
 
 
 
 
 
 
46ee226
1599566
 
 
 
 
 
 
 
46ee226
1599566
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46ee226
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import gradio as gr
from utils.text_utils_interface import letter_counter_interface
from maths.elementary.arithmetic_interface import (
    add_interface, subtract_interface, multiply_interface, divide_interface,
    array_calc_interface, array_calc_vis_interface,
    gcd_interface, lcm_interface, is_prime_interface # Assuming these were added earlier from a subtask
)
from maths.middleschool.algebra_interface import (
    solve_linear_equation_interface, evaluate_expression_interface,
    solve_quadratic_interface, simplify_radical_interface, polynomial_interface # Assuming these
)
from maths.highschool.trigonometry_interface import (
    trig_interface, inverse_trig_interface, solve_trig_equations_interface, trig_identities_interface # Assuming these
)
from maths.university.calculus_interface import (
    derivative_interface, integral_interface,
    limit_interface, taylor_series_interface, fourier_series_interface, # Assuming these
    partial_derivative_interface, multiple_integral_interface # Assuming these
)
from maths.university.linear_algebra_interface import (
    matrix_add_interface, matrix_subtract_interface, matrix_multiply_interface,
    matrix_determinant_interface, matrix_inverse_interface,
    vector_add_interface, vector_subtract_interface, vector_dot_product_interface,
    vector_cross_product_interface, solve_linear_system_interface
)
from maths.university.differential_equations_interface import (
    first_order_ode_interface, second_order_ode_interface
)

# Group interfaces by education level
# Note: I'm assuming previous subtasks correctly added GCD, LCM, Polynomial, Quadratic, etc. interfaces to their respective files.
# If not, this app.py will have import errors for those. I'm focusing on the current task's imports.
elementary_interfaces_list = [
    add_interface, subtract_interface, multiply_interface, divide_interface,
    gcd_interface, lcm_interface, is_prime_interface, # Added from subtask 1
    array_calc_interface, array_calc_vis_interface
]
elementary_tab_names = [
    "Addition", "Subtraction", "Multiplication", "Division",
    "GCD", "LCM", "Prime Check", # Added from subtask 1
    "Array Calculation", "Array Calc Viz"
]

middleschool_interfaces_list = [
    solve_linear_equation_interface, evaluate_expression_interface,
    solve_quadratic_interface, simplify_radical_interface, polynomial_interface # Added from subtask 2
]
middleschool_tab_names = [
    "Linear Equations", "Evaluate Expressions",
    "Quadratic Solver", "Radical Simplifier", "Polynomial Ops" # Added from subtask 2
]

highschool_interfaces_list = [
    trig_interface, inverse_trig_interface,
    solve_trig_equations_interface, trig_identities_interface # Added from subtask 3
]
highschool_tab_names = [
    "Trig Functions", "Inverse Trig",
    "Solve Trig Eqs", "Trig Identities" # Added from subtask 3
]

university_interfaces_list = [
    derivative_interface, integral_interface,
    limit_interface, taylor_series_interface, fourier_series_interface, # Added from subtask 4
    partial_derivative_interface, multiple_integral_interface, # Added from subtask 4
    matrix_add_interface, matrix_subtract_interface, matrix_multiply_interface,
    matrix_determinant_interface, matrix_inverse_interface,
    vector_add_interface, vector_subtract_interface, vector_dot_product_interface,
    vector_cross_product_interface, solve_linear_system_interface,
    first_order_ode_interface, second_order_ode_interface
]
university_tab_names = [
    "Poly Derivatives", "Poly Integrals",
    "Limits", "Taylor Series", "Fourier Series", # Added from subtask 4
    "Partial Derivatives", "Multiple Integrals", # Added from subtask 4
    "Matrix Add", "Matrix Subtract", "Matrix Multiply",
    "Matrix Determinant", "Matrix Inverse",
    "Vector Add", "Vector Subtract", "Vector Dot Product",
    "Vector Cross Product", "Solve Linear System",
    "1st Order ODE", "2nd Order ODE"
]

elementary_tab = gr.TabbedInterface(elementary_interfaces_list, elementary_tab_names, title="Elementary School Math")
middleschool_tab = gr.TabbedInterface(middleschool_interfaces_list, middleschool_tab_names, title="Middle School Math")
highschool_tab = gr.TabbedInterface(highschool_interfaces_list, highschool_tab_names, title="High School Math")
university_tab = gr.TabbedInterface(university_interfaces_list, university_tab_names, title="University Math")

# Main demo with tabs for each education level
demo = gr.TabbedInterface(
    [letter_counter_interface, elementary_tab, middleschool_tab, highschool_tab, university_tab],
    ["Text Utils", "Elementary", "Middle School", "High School", "University"]
)

# Launch the Gradio app
if __name__ == "__main__":
    demo.launch(mcp_server=True)