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