if(i == 0)
				continue;
			const y_i = sign(i) * pow(2, abs(i) - 1);
			context.moveTo(sharp(x2s(0)) + 2, sharp(y2s(y_i)));
			context.lineTo(sharp(x2s(0)) - 2, sharp(y2s(y_i)));
			const to_print = (i < 0) ? "-" + String(pow(2, abs(i+1))) : String(pow(2, i-1));
			if(i % 2 == 0)
				context.fillText(to_print, sharp(x2s(0)) - 12, sharp(y2s(y_i)) - 12);
			else
				context.fillText(to_print, sharp(x2s(0)) + 12, sharp(y2s(y_i)) + 12);
		}
	}

	context.stroke();
	context.closePath();

	// cross
	if(x2s(0) != 