namelessai commited on
Commit
d1222c3
·
verified ·
1 Parent(s): 4550038

Fix LaTeX delimeters

Browse files
Files changed (1) hide show
  1. app.py +44 -38
app.py CHANGED
@@ -39,7 +39,7 @@ def solve_law_of_cosines(a, b, c, A, B, C):
39
  steps.append(f"$\\cos(A) = {cos_A:.6f}$")
40
  A_rad = math.acos(np.clip(cos_A, -1, 1))
41
  A = math.degrees(A_rad)
42
- steps.append(f"$A = \\arccos({cos_A:.6f}) = \\mathbf{{{A:.4f}°}}$")
43
 
44
  # Find angle B: cos(B) = (a² + c² - b²) / (2ac)
45
  steps.append(f"\n**Step 2: Find Angle B using Law of Cosines**")
@@ -51,16 +51,16 @@ def solve_law_of_cosines(a, b, c, A, B, C):
51
  steps.append(f"$\\cos(B) = {cos_B:.6f}$")
52
  B_rad = math.acos(np.clip(cos_B, -1, 1))
53
  B = math.degrees(B_rad)
54
- steps.append(f"$B = \\arccos({cos_B:.6f}) = \\mathbf{{{B:.4f}°}}$")
55
 
56
  # Find angle C: C = 180 - A - B
57
  steps.append(f"\n**Step 3: Find Angle C using angle sum property**")
58
- steps.append(f"\n$A + B + C = 180°$")
59
- steps.append(f"$C = 180° - A - B$")
60
- steps.append(f"$C = 180° - {A:.4f}° - {B:.4f}°$")
61
  C = 180 - A - B
62
  C_rad = math.radians(C)
63
- steps.append(f"$C = \\mathbf{{{C:.4f}°}}$")
64
 
65
  results.append(f"**Solution (SSS Case):**")
66
  results.append(f"- Side a = {a:.4f}")
@@ -75,15 +75,15 @@ def solve_law_of_cosines(a, b, c, A, B, C):
75
  steps.append("### 📚 Step-by-Step Solution (SAS Case)")
76
 
77
  if a and b and C_rad:
78
- steps.append(f"\n**Given:** $a = {a}$, $b = {b}$, $C = {C}°$")
79
  steps.append("\n---")
80
 
81
  # Find side c: c² = a² + b² - 2ab·cos(C)
82
  steps.append(f"\n**Step 1: Find Side c using Law of Cosines**")
83
  steps.append(f"\n$c^2 = a^2 + b^2 - 2ab\\cos(C)$")
84
  steps.append(f"\nSubstitute values:")
85
- steps.append(f"$c^2 = {a}^2 + {b}^2 - 2({a})({b})\\cos({C}°)$")
86
- steps.append(f"$c^2 = {a**2} + {b**2} - {2*a*b}\\cos({C}°)$")
87
  c_squared = a**2 + b**2 - 2*a*b*math.cos(C_rad)
88
  steps.append(f"$c^2 = {a**2} + {b**2} - {2*a*b*math.cos(C_rad):.6f}$")
89
  steps.append(f"$c^2 = {c_squared:.6f}$")
@@ -99,25 +99,25 @@ def solve_law_of_cosines(a, b, c, A, B, C):
99
  steps.append(f"$\\cos(A) = {cos_A:.6f}$")
100
  A_rad = math.acos(np.clip(cos_A, -1, 1))
101
  A = math.degrees(A_rad)
102
- steps.append(f"$A = \\arccos({cos_A:.6f}) = \\mathbf{{{A:.4f}°}}$")
103
 
104
  # Find angle B
105
  steps.append(f"\n**Step 3: Find Angle B using angle sum property**")
106
- steps.append(f"$B = 180° - A - C$")
107
- steps.append(f"$B = 180° - {A:.4f}° - {C}°$")
108
  B = 180 - A - C
109
  B_rad = math.radians(B)
110
- steps.append(f"$B = \\mathbf{{{B:.4f}°}}$")
111
 
112
  elif a and c and B_rad:
113
- steps.append(f"\n**Given:** $a = {a}$, $c = {c}$, $B = {B}°$")
114
  steps.append("\n---")
115
 
116
  # Find side b: b² = a² + c² - 2ac·cos(B)
117
  steps.append(f"\n**Step 1: Find Side b using Law of Cosines**")
118
  steps.append(f"\n$b^2 = a^2 + c^2 - 2ac\\cos(B)$")
119
  steps.append(f"\nSubstitute values:")
120
- steps.append(f"$b^2 = {a}^2 + {c}^2 - 2({a})({c})\\cos({B}°)$")
121
  b_squared = a**2 + c**2 - 2*a*c*math.cos(B_rad)
122
  steps.append(f"$b^2 = {b_squared:.6f}$")
123
  b = math.sqrt(b_squared)
@@ -130,24 +130,24 @@ def solve_law_of_cosines(a, b, c, A, B, C):
130
  steps.append(f"$\\cos(A) = {cos_A:.6f}$")
131
  A_rad = math.acos(np.clip(cos_A, -1, 1))
132
  A = math.degrees(A_rad)
133
- steps.append(f"$A = \\mathbf{{{A:.4f}°}}$")
134
 
135
  # Find angle C
136
  steps.append(f"\n**Step 3: Find Angle C**")
137
- steps.append(f"$C = 180° - A - B$")
138
  C = 180 - A - B
139
  C_rad = math.radians(C)
140
- steps.append(f"$C = \\mathbf{{{C:.4f}°}}$")
141
 
142
  elif b and c and A_rad:
143
- steps.append(f"\n**Given:** $b = {b}$, $c = {c}$, $A = {A}°$")
144
  steps.append("\n---")
145
 
146
  # Find side a: a² = b² + c² - 2bc·cos(A)
147
  steps.append(f"\n**Step 1: Find Side a using Law of Cosines**")
148
  steps.append(f"\n$a^2 = b^2 + c^2 - 2bc\\cos(A)$")
149
  steps.append(f"\nSubstitute values:")
150
- steps.append(f"$a^2 = {b}^2 + {c}^2 - 2({b})({c})\\cos({A}°)$")
151
  a_squared = b**2 + c**2 - 2*b*c*math.cos(A_rad)
152
  steps.append(f"$a^2 = {a_squared:.6f}$")
153
  a = math.sqrt(a_squared)
@@ -160,14 +160,14 @@ def solve_law_of_cosines(a, b, c, A, B, C):
160
  steps.append(f"$\\cos(B) = {cos_B:.6f}$")
161
  B_rad = math.acos(np.clip(cos_B, -1, 1))
162
  B = math.degrees(B_rad)
163
- steps.append(f"$B = \\mathbf{{{B:.4f}°}}$")
164
 
165
  # Find angle C
166
  steps.append(f"\n**Step 3: Find Angle C**")
167
- steps.append(f"$C = 180° - A - B$")
168
  C = 180 - A - B
169
  C_rad = math.radians(C)
170
- steps.append(f"$C = \\mathbf{{{C:.4f}°}}$")
171
 
172
  results.append(f"**Solution (SAS Case):**")
173
  results.append(f"- Side a = {a:.4f}")
@@ -183,44 +183,44 @@ def solve_law_of_cosines(a, b, c, A, B, C):
183
 
184
  # First find the third angle
185
  if A and B:
186
- steps.append(f"\n**Given:** $A = {A}°$, $B = {B}°$, and one side")
187
  steps.append("\n---")
188
  steps.append(f"\n**Step 1: Find Angle C**")
189
- steps.append(f"$A + B + C = 180°$")
190
- steps.append(f"$C = 180° - A - B$")
191
- steps.append(f"$C = 180° - {A}° - {B}°$")
192
  C = 180 - A - B
193
  C_rad = math.radians(C)
194
- steps.append(f"$C = \\mathbf{{{C:.4f}°}}$")
195
  elif A and C:
196
- steps.append(f"\n**Given:** $A = {A}°$, $C = {C}°$, and one side")
197
  steps.append("\n---")
198
  steps.append(f"\n**Step 1: Find Angle B**")
199
- steps.append(f"$B = 180° - A - C$")
200
  B = 180 - A - C
201
  B_rad = math.radians(B)
202
- steps.append(f"$B = \\mathbf{{{B:.4f}°}}$")
203
  elif B and C:
204
- steps.append(f"\n**Given:** $B = {B}°$, $C = {C}°$, and one side")
205
  steps.append("\n---")
206
  steps.append(f"\n**Step 1: Find Angle A**")
207
- steps.append(f"$A = 180° - B - C$")
208
  A = 180 - B - C
209
  A_rad = math.radians(A)
210
- steps.append(f"$A = \\mathbf{{{A:.4f}°}}$")
211
 
212
  # Use Law of Sines to find other sides
213
  if a:
214
  steps.append(f"\n**Step 2: Find Side b using Law of Sines**")
215
  steps.append(f"\n$\\frac{{a}}{{\\sin(A)}} = \\frac{{b}}{{\\sin(B)}}$")
216
  steps.append(f"$b = a \\times \\frac{{\\sin(B)}}{{\\sin(A)}}$")
217
- steps.append(f"$b = {a} \\times \\frac{{\\sin({B:.4f}°)}}{{\\sin({A:.4f}°)}}$")
218
  b = a * math.sin(B_rad) / math.sin(A_rad)
219
  steps.append(f"$b = \\mathbf{{{b:.4f}}}$")
220
 
221
  steps.append(f"\n**Step 3: Find Side c using Law of Sines**")
222
  steps.append(f"$c = a \\times \\frac{{\\sin(C)}}{{\\sin(A)}}$")
223
- steps.append(f"$c = {a} \\times \\frac{{\\sin({C:.4f}°)}}{{\\sin({A:.4f}°)}}$")
224
  c = a * math.sin(C_rad) / math.sin(A_rad)
225
  steps.append(f"$c = \\mathbf{{{c:.4f}}}$")
226
 
@@ -339,6 +339,12 @@ def process_inputs(a_input, b_input, c_input, A_input, B_input, C_input):
339
 
340
  return solve_law_of_cosines(a, b, c, A, B, C)
341
 
 
 
 
 
 
 
342
  # Create Gradio interface
343
  with gr.Blocks(title="Law of Cosines Solver") as app:
344
  gr.Markdown("""
@@ -374,12 +380,12 @@ with gr.Blocks(title="Law of Cosines Solver") as app:
374
 
375
  with gr.Row():
376
  with gr.Column(scale=1):
377
- result_output = gr.Markdown(label="Results")
378
  with gr.Column(scale=2):
379
  plot_output = gr.Plot(label="Triangle Visualization")
380
 
381
  gr.Markdown("---")
382
- steps_output = gr.Markdown(label="Step-by-Step Solution")
383
 
384
  # Examples
385
  gr.Markdown("### 📝 Example Cases")
 
39
  steps.append(f"$\\cos(A) = {cos_A:.6f}$")
40
  A_rad = math.acos(np.clip(cos_A, -1, 1))
41
  A = math.degrees(A_rad)
42
+ steps.append(f"$A = \\arccos({cos_A:.6f}) = \\mathbf{{{A:.4f}^\\circ}}$")
43
 
44
  # Find angle B: cos(B) = (a² + c² - b²) / (2ac)
45
  steps.append(f"\n**Step 2: Find Angle B using Law of Cosines**")
 
51
  steps.append(f"$\\cos(B) = {cos_B:.6f}$")
52
  B_rad = math.acos(np.clip(cos_B, -1, 1))
53
  B = math.degrees(B_rad)
54
+ steps.append(f"$B = \\arccos({cos_B:.6f}) = \\mathbf{{{B:.4f}^\\circ}}$")
55
 
56
  # Find angle C: C = 180 - A - B
57
  steps.append(f"\n**Step 3: Find Angle C using angle sum property**")
58
+ steps.append(f"\n$A + B + C = 180^\\circ$")
59
+ steps.append(f"$C = 180^\\circ - A - B$")
60
+ steps.append(f"$C = 180^\\circ - {A:.4f}^\\circ - {B:.4f}^\\circ$")
61
  C = 180 - A - B
62
  C_rad = math.radians(C)
63
+ steps.append(f"$C = \\mathbf{{{C:.4f}^\\circ}}$")
64
 
65
  results.append(f"**Solution (SSS Case):**")
66
  results.append(f"- Side a = {a:.4f}")
 
75
  steps.append("### 📚 Step-by-Step Solution (SAS Case)")
76
 
77
  if a and b and C_rad:
78
+ steps.append(f"\n**Given:** $a = {a}$, $b = {b}$, $C = {C}^\\circ$")
79
  steps.append("\n---")
80
 
81
  # Find side c: c² = a² + b² - 2ab·cos(C)
82
  steps.append(f"\n**Step 1: Find Side c using Law of Cosines**")
83
  steps.append(f"\n$c^2 = a^2 + b^2 - 2ab\\cos(C)$")
84
  steps.append(f"\nSubstitute values:")
85
+ steps.append(f"$c^2 = {a}^2 + {b}^2 - 2({a})({b})\\cos({C}^\\circ)$")
86
+ steps.append(f"$c^2 = {a**2} + {b**2} - {2*a*b}\\cos({C}^\\circ)$")
87
  c_squared = a**2 + b**2 - 2*a*b*math.cos(C_rad)
88
  steps.append(f"$c^2 = {a**2} + {b**2} - {2*a*b*math.cos(C_rad):.6f}$")
89
  steps.append(f"$c^2 = {c_squared:.6f}$")
 
99
  steps.append(f"$\\cos(A) = {cos_A:.6f}$")
100
  A_rad = math.acos(np.clip(cos_A, -1, 1))
101
  A = math.degrees(A_rad)
102
+ steps.append(f"$A = \\arccos({cos_A:.6f}) = \\mathbf{{{A:.4f}^\\circ}}$")
103
 
104
  # Find angle B
105
  steps.append(f"\n**Step 3: Find Angle B using angle sum property**")
106
+ steps.append(f"$B = 180^\\circ - A - C$")
107
+ steps.append(f"$B = 180^\\circ - {A:.4f}^\\circ - {C}^\\circ$")
108
  B = 180 - A - C
109
  B_rad = math.radians(B)
110
+ steps.append(f"$B = \\mathbf{{{B:.4f}^\\circ}}$")
111
 
112
  elif a and c and B_rad:
113
+ steps.append(f"\n**Given:** $a = {a}$, $c = {c}$, $B = {B}^\\circ$")
114
  steps.append("\n---")
115
 
116
  # Find side b: b² = a² + c² - 2ac·cos(B)
117
  steps.append(f"\n**Step 1: Find Side b using Law of Cosines**")
118
  steps.append(f"\n$b^2 = a^2 + c^2 - 2ac\\cos(B)$")
119
  steps.append(f"\nSubstitute values:")
120
+ steps.append(f"$b^2 = {a}^2 + {c}^2 - 2({a})({c})\\cos({B}^\\circ)$")
121
  b_squared = a**2 + c**2 - 2*a*c*math.cos(B_rad)
122
  steps.append(f"$b^2 = {b_squared:.6f}$")
123
  b = math.sqrt(b_squared)
 
130
  steps.append(f"$\\cos(A) = {cos_A:.6f}$")
131
  A_rad = math.acos(np.clip(cos_A, -1, 1))
132
  A = math.degrees(A_rad)
133
+ steps.append(f"$A = \\mathbf{{{A:.4f}^\\circ}}$")
134
 
135
  # Find angle C
136
  steps.append(f"\n**Step 3: Find Angle C**")
137
+ steps.append(f"$C = 180^\\circ - A - B$")
138
  C = 180 - A - B
139
  C_rad = math.radians(C)
140
+ steps.append(f"$C = \\mathbf{{{C:.4f}^\\circ}}$")
141
 
142
  elif b and c and A_rad:
143
+ steps.append(f"\n**Given:** $b = {b}$, $c = {c}$, $A = {A}^\\circ$")
144
  steps.append("\n---")
145
 
146
  # Find side a: a² = b² + c² - 2bc·cos(A)
147
  steps.append(f"\n**Step 1: Find Side a using Law of Cosines**")
148
  steps.append(f"\n$a^2 = b^2 + c^2 - 2bc\\cos(A)$")
149
  steps.append(f"\nSubstitute values:")
150
+ steps.append(f"$a^2 = {b}^2 + {c}^2 - 2({b})({c})\\cos({A}^\\circ)$")
151
  a_squared = b**2 + c**2 - 2*b*c*math.cos(A_rad)
152
  steps.append(f"$a^2 = {a_squared:.6f}$")
153
  a = math.sqrt(a_squared)
 
160
  steps.append(f"$\\cos(B) = {cos_B:.6f}$")
161
  B_rad = math.acos(np.clip(cos_B, -1, 1))
162
  B = math.degrees(B_rad)
163
+ steps.append(f"$B = \\mathbf{{{B:.4f}^\\circ}}$")
164
 
165
  # Find angle C
166
  steps.append(f"\n**Step 3: Find Angle C**")
167
+ steps.append(f"$C = 180^\\circ - A - B$")
168
  C = 180 - A - B
169
  C_rad = math.radians(C)
170
+ steps.append(f"$C = \\mathbf{{{C:.4f}^\\circ}}$")
171
 
172
  results.append(f"**Solution (SAS Case):**")
173
  results.append(f"- Side a = {a:.4f}")
 
183
 
184
  # First find the third angle
185
  if A and B:
186
+ steps.append(f"\n**Given:** $A = {A}^\\circ$, $B = {B}^\\circ$, and one side")
187
  steps.append("\n---")
188
  steps.append(f"\n**Step 1: Find Angle C**")
189
+ steps.append(f"$A + B + C = 180^\\circ$")
190
+ steps.append(f"$C = 180^\\circ - A - B$")
191
+ steps.append(f"$C = 180^\\circ - {A}^\\circ - {B}^\\circ$")
192
  C = 180 - A - B
193
  C_rad = math.radians(C)
194
+ steps.append(f"$C = \\mathbf{{{C:.4f}^\\circ}}$")
195
  elif A and C:
196
+ steps.append(f"\n**Given:** $A = {A}^\\circ$, $C = {C}^\\circ$, and one side")
197
  steps.append("\n---")
198
  steps.append(f"\n**Step 1: Find Angle B**")
199
+ steps.append(f"$B = 180^\\circ - A - C$")
200
  B = 180 - A - C
201
  B_rad = math.radians(B)
202
+ steps.append(f"$B = \\mathbf{{{B:.4f}^\\circ}}$")
203
  elif B and C:
204
+ steps.append(f"\n**Given:** $B = {B}^\\circ$, $C = {C}^\\circ$, and one side")
205
  steps.append("\n---")
206
  steps.append(f"\n**Step 1: Find Angle A**")
207
+ steps.append(f"$A = 180^\\circ - B - C$")
208
  A = 180 - B - C
209
  A_rad = math.radians(A)
210
+ steps.append(f"$A = \\mathbf{{{A:.4f}^\\circ}}$")
211
 
212
  # Use Law of Sines to find other sides
213
  if a:
214
  steps.append(f"\n**Step 2: Find Side b using Law of Sines**")
215
  steps.append(f"\n$\\frac{{a}}{{\\sin(A)}} = \\frac{{b}}{{\\sin(B)}}$")
216
  steps.append(f"$b = a \\times \\frac{{\\sin(B)}}{{\\sin(A)}}$")
217
+ steps.append(f"$b = {a} \\times \\frac{{\\sin({B:.4f}^\\circ)}}{{\\sin({A:.4f}^\\circ)}}$")
218
  b = a * math.sin(B_rad) / math.sin(A_rad)
219
  steps.append(f"$b = \\mathbf{{{b:.4f}}}$")
220
 
221
  steps.append(f"\n**Step 3: Find Side c using Law of Sines**")
222
  steps.append(f"$c = a \\times \\frac{{\\sin(C)}}{{\\sin(A)}}$")
223
+ steps.append(f"$c = {a} \\times \\frac{{\\sin({C:.4f}^\\circ)}}{{\\sin({A:.4f}^\\circ)}}$")
224
  c = a * math.sin(C_rad) / math.sin(A_rad)
225
  steps.append(f"$c = \\mathbf{{{c:.4f}}}$")
226
 
 
339
 
340
  return solve_law_of_cosines(a, b, c, A, B, C)
341
 
342
+ # Define LaTeX delimiters configuration
343
+ latex_config = [
344
+ {"left": "$$", "right": "$$", "display": True},
345
+ {"left": "$", "right": "$", "display": False}
346
+ ]
347
+
348
  # Create Gradio interface
349
  with gr.Blocks(title="Law of Cosines Solver") as app:
350
  gr.Markdown("""
 
380
 
381
  with gr.Row():
382
  with gr.Column(scale=1):
383
+ result_output = gr.Markdown(label="Results", latex_delimiters=latex_config)
384
  with gr.Column(scale=2):
385
  plot_output = gr.Plot(label="Triangle Visualization")
386
 
387
  gr.Markdown("---")
388
+ steps_output = gr.Markdown(label="Step-by-Step Solution", latex_delimiters=latex_config)
389
 
390
  # Examples
391
  gr.Markdown("### 📝 Example Cases")