To(0, sharp(y2s(y_i)));
			context.lineTo(w, sharp(y2s(y_i)));
		}
	}
	context.strokeStyle = "#AAA";
	context.lineWidth = 1;
	context.stroke();
	context.setLineDash([]);
	context.closePath();


	// function
	const f_text = document.getElementById("f").value;
	const f_lines = f_text.split('\n');
	for(var line_i = 0; line_i < f_lines.length; ++line_i) {
		const f_line = f_lines[line_i];
		try {
			eval("var f = function(x) { return " + f_line + ";}")
			document.getElementById("error").innerHTML = "";
		} cat