i = sign(x_from) * floor(log2(abs(x_from))) - 1; i <= sign(x_to) * ceil(log2(abs(x_to))); ++i) {
			if(i == 0)
				continue;
			const x_i = sign(i) * pow(2, abs(i) - 1);
			context.moveTo(sharp(x2s(x_i)), 0);
			context.lineTo(sharp(x2s(x_i)), h);
		}
		// vertical
		const y_from = s2y(620);
		const y_to = s2y(20);
		for(var i = sign(y_from) * floor(log2(abs(y_from))) - 1; i <= sign(y_to) * ceil(log2(abs(y_to))); ++i) {
			if(i == 0)
				continue;
			const y_i = sign(i) * pow(2, abs(i) - 1);
			context.move