////
/// @author Takeru Suzuki
////

/// Returns $x * 2^$exp
/// @since 1.12.0 - The Sith
/// @param {Number} $x
/// @param {Number} $exp
/// @return {Number} - modified number
@function ldexp($x, $exp) {
	$b: if($exp >= 0, 2, 1 / 2);

	@if $exp < 0 {
		$exp: $exp * -1;
	}

	@while $exp > 0 {
		@if $exp % 2 == 1 {
			$x: $x * $b;
		}

		$b: $b * $b;
		$exp: floor($exp * .5);
	}

	@return $x;
}
