Spaces:
Runtime error
Runtime error
File size: 5,653 Bytes
c49667f 6c13437 b16cdfc 1599566 fe0557b 6c13437 1599566 6c13437 1599566 6c13437 1599566 6c13437 1599566 6c13437 1599566 b16cdfc 6c13437 d8c6327 54f380d 46ee226 6c13437 1599566 6c13437 1599566 6c13437 1599566 46ee226 6c13437 fe0557b 6c13437 54f380d 6c13437 1599566 6c13437 1599566 46ee226 6c13437 1599566 6c13437 1599566 46ee226 6c13437 1599566 6c13437 1599566 6c13437 d8c6327 6c13437 d8c6327 6c13437 54f380d 6c13437 46ee226 6c13437 46ee226 6c13437 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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
import gradio as gr
from maths.arithmetic.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.algebra.algebra_interface import solve_linear_equation_interface
from maths.algebra.algebra_tabs import algebra_tab
from maths.geometry.trigonometry_interface import (
trig_interface, inverse_trig_interface, solve_trig_equations_interface, trig_identities_interface # Assuming these
)
from maths.calculus.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.matrices.matrices_interface import (
matrix_add_interface, matrix_subtract_interface, matrix_multiply_interface,
matrix_determinant_interface, matrix_inverse_interface
)
from maths.vectors.vectors_interface import (
vector_add_interface, vector_subtract_interface,
vector_dot_product_interface, vector_cross_product_interface
)
from maths.differential_equations.differential_equations_interface import (
first_order_ode_interface, second_order_ode_interface
)
from maths.operations_research.operations_research_interface import (
branch_and_bound_interface, dual_simplex_interface, simplex_solver_interface
)
from maths.equations.equations_interface import (
equations_app, solve_quadratic_interface # equations_app is the tabbed interface, solve_quadratic_interface for direct use
)
# Categorize interfaces by topics
arithmetic_interfaces_list = [
add_interface, subtract_interface, multiply_interface,
divide_interface, array_calc_interface, array_calc_vis_interface
]
arithmetic_tab_names = [
"Addition", "Subtraction", "Multiplication", "Division",
"Array Calculation", "Array Calculation Viz"
]
number_theory_interfaces_list = [gcd_interface, lcm_interface, is_prime_interface]
number_theory_tab_names = ["GCD", "LCM", "Prime Check"]
algebra_tab = gr.TabbedInterface(
algebra_interfaces_list,
algebra_tab_names,
title="Algebra"
)
equations_interfaces_list = [
solve_linear_equation_interface, solve_quadratic_interface, # keep direct quadratic solver for single tab
solve_trig_equations_interface
]
equations_tab_names = [
"Linear Equation Solver", "Quadratic Solver",
"Trigonometric Equation Solver"
]
geometry_interfaces_list = [trig_interface, inverse_trig_interface, trig_identities_interface]
geometry_tab_names = ["Trig Functions", "Inverse Trig", "Trig Identities"]
calculus_interfaces_list = [
derivative_interface, integral_interface, limit_interface,
taylor_series_interface, fourier_series_interface,
partial_derivative_interface, multiple_integral_interface
]
calculus_tab_names = [
"Derivative", "Integral", "Limits",
"Taylor Series", "Fourier Series",
"Partial Derivatives", "Multiple Integrals"
]
differential_equations_interfaces_list = [first_order_ode_interface, second_order_ode_interface]
differential_equations_tab_names = ["First Order ODE", "Second Order ODE"]
matrices_interfaces_list = [
matrix_add_interface, matrix_subtract_interface,
matrix_multiply_interface, matrix_determinant_interface,
matrix_inverse_interface
]
matrices_tab_names = [
"Matrix Addition", "Matrix Subtraction", "Matrix Multiplication",
"Matrix Determinant", "Matrix Inverse"
]
vectors_interfaces_list = [
vector_add_interface, vector_subtract_interface,
vector_dot_product_interface, vector_cross_product_interface
]
vectors_tab_names = ["Vector Addition", "Vector Subtraction", "Dot Product", "Cross Product"]
operations_research_interfaces_list = [
branch_and_bound_interface, dual_simplex_interface, simplex_solver_interface
]
operations_research_tab_names = ["Branch & Bound", "Dual Simplex", "Simplex Steps"]
# Create topic-based tabbed interfaces
arithmetic_tab = gr.TabbedInterface(arithmetic_interfaces_list, arithmetic_tab_names, title="Arithmetic")
number_theory_tab = gr.TabbedInterface(number_theory_interfaces_list, number_theory_tab_names, title="Number Theory")
equations_tab = equations_app # Only include the composite equations_app in the equations tab to avoid duplicate Gradio blocks
geometry_tab = gr.TabbedInterface(geometry_interfaces_list, geometry_tab_names, title="Geometry")
calculus_tab = gr.TabbedInterface(calculus_interfaces_list, calculus_tab_names, title="Calculus")
differential_equations_tab = gr.TabbedInterface(differential_equations_interfaces_list, differential_equations_tab_names, title="Differential Equations")
matrices_tab = gr.TabbedInterface(matrices_interfaces_list, matrices_tab_names, title="Matrices")
vectors_tab = gr.TabbedInterface(vectors_interfaces_list, vectors_tab_names, title="Vectors")
operations_research_tab = gr.TabbedInterface(operations_research_interfaces_list, operations_research_tab_names, title="Operations Research")
# Main demo with topic tabs
demo = gr.TabbedInterface(
[
arithmetic_tab, number_theory_tab, algebra_tab,
equations_tab, geometry_tab, calculus_tab, differential_equations_tab,
matrices_tab, vectors_tab, operations_research_tab
],
[
"Arithmetic", "Number Theory", "Algebra",
"Equations", "Geometry", "Calculus", "Differential Equations",
"Matrices", "Vectors", "Operations Research"
]
)
# Launch the Gradio app
if __name__ == "__main__":
demo.launch(mcp_server=True) |