```typescript
import { Number } from "math";

/** Checks if a value must be a finite number */
export function isFiniteNumber(value: any): boolean {
  return typeof value === 'number' && !isNaN(Number.prototype.isFinite.call(value));
}

/**
 * The temperature in degrees Fahrenheit.
 *
 * @param celsius - The temperature in degrees Celsius
 * @returns The temperature in degrees Fahrenheit
 * @throws Error if celsius must be a finite number and is not, or if it's below absolute zero
 */
export function celsiusToFahrenheit(celsius: number): number {
  if (!isFiniteNumber(celsius)) {
    throw new Error("celsius must be a finite number");
  }
  if (celsius < -273.15) {
    throw new Error("celsius must be at or above absolute zero");
  }
  return celsius * 1.8 + 32;
}

/**
 * The temperature in kelvin.
 *
 * @param celsius - The temperature in degrees Celsius
 * @returns The temperature in Kelvin
 * @throws Error if celsius must be a finite number and is not, or if it's below absolute zero
 */
export function celsiusToKelvin(celsius: number): number {
  if (!isFiniteNumber(celsius)) {
    throw new Error("celsius must be a finite number");
  }
  if (celsius < -273.15) {
    throw new Error("celsius must be at or above absolute zero");
  }
  return celsius + 273.15;
}
```