/
index.html
executable file
·89 lines (86 loc) · 3.04 KB
/
index.html
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
<!DOCTYPE html>
<html>
<head>
<title>Differential Calculator</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="ast.js"></script>
<script type="text/javascript" src="ast/addition.js"></script>
<script type="text/javascript" src="ast/subtraction.js"></script>
<script type="text/javascript" src="ast/multiplication.js"></script>
<script type="text/javascript" src="ast/division.js"></script>
<script type="text/javascript" src="ast/power.js"></script>
<script type="text/javascript" src="ast/negation.js"></script>
<script type="text/javascript" src="ast/number.js"></script>
<script type="text/javascript" src="ast/x.js"></script>
<script type="text/javascript" src="ast/e.js"></script>
<script type="text/javascript" src="ast/log_natural.js"></script>
<script type="text/javascript" src="ast/function.js"></script>
<script type="text/javascript" src="ast/sin.js"></script>
<script type="text/javascript" src="ast/cos.js"></script>
<script type="text/javascript" src="ast/tan.js"></script>
<script type="text/javascript" src="ast/unknown_function.js"></script>
<script type="text/javascript" src="ast/derivative.js"></script>
<script type="text/javascript" src="parser.js"></script>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<label for="eqn">Expression:</label>
<input type="text" id="eqn"></input>
<div class="buttton_row">
<button>Derive</button>
<span class="error"></span>
</div>
<div class="clear"></div>
<div class="tex" id="typeset_eqn">$$ $$</div>
<h2>Simplified:</h2>
<div class="tex" id="simplified_eqn">$$ $$</div>
<h2>Derivative: (<a href="#" id="show_derivative">show</a>)</h2>
<div class="tex" id="derivative_eqn" style="display:none;">$$ $$</div>
<h2>Simplified Derivative:</h2>
<div class="tex" id="simplified_derivative_eqn">$$ $$</div>
<!--
<label>Solution:</label>
<div class="tex" id="domain">$$ $$</div>
-->
</body>
<script>
function set_tex(id, tex) {
MathJax.Hub.Queue(["Text", MathJax.Hub.getAllJax(id)[0], tex]);
}
$(function() {
var eqn = $("#eqn");
$("button").click(function update() {
var expression = eqn.val();
location.hash = "#" + expression;
try {
var ast = new Parser(expression).parse();
} catch(e) {
$(".error").text(e.toString());
return;
}
$(".error").text("");
set_tex("typeset_eqn", ast.toTeX());
set_tex("simplified_eqn", ast.simplify().toTeX());
set_tex("derivative_eqn", ast.simplify().derive().toTeX());
set_tex("simplified_derivative_eqn", ast.simplify().derive().simplify().toTeX());
});
$("#show_derivative").click(function() {
var me = $(this);
if(me.text() == "show") {
me.text("hide");
$("#derivative_eqn").show();
} else {
me.text("show");
$("#derivative_eqn").hide();
}
});
if(location.hash) {
eqn.val(location.hash.substr(1));
setTimeout(function() {
$("button").click();
}, 250);
}
});
</script>
</html>