Skip to main content

SRS

1. Overview

본 문서는 gmath 수학 라이브러리의 Software Requirements Specification (SRS) 를 정의한다.

gmath는 Grap 엔진에서 사용되는 기초 수학 라이브러리로서 다음 기능을 제공한다.

  • 스칼라 수학 연산
  • 벡터 타입 및 벡터 연산
  • 행렬 타입 및 행렬 연산
  • 수치 계산 보조 기능
  • 기하 프리미티브
  • 기하 쿼리 알고리즘

gmath는 엔진의 다른 시스템으로부터 독립적인 수학 라이브러리로 설계되며
엔진 전반에서 공통적으로 사용되는 수학 기능을 제공하는 것을 목적으로 한다.


2. Scope

gmath의 기능 범위는 다음과 같다.

  • 수학 타입 정의
  • 수학 연산 제공
  • 수치 계산 보조 기능 제공
  • 기하 계산 기능 제공

다음 기능은 gmath의 범위에 포함되지 않는다.

  • Scene 시스템
  • Transform 컴포넌트
  • 렌더링 시스템
  • 물리 시스템
  • 플랫폼 시스템

gmath수학 타입과 수학 연산만 제공하는 라이브러리이다.


3. Module Structure

gmath는 다음 서브시스템으로 구성된다.

gmath
├─ config
├─ meta
├─ scalar
├─ vec
├─ mat
├─ numeric
└─ geom

각 모듈은 특정 수학 도메인을 담당한다.


4. Design Goals

gmath는 다음 설계 목표를 따른다.

  • deterministic memory layout 유지
  • header-only 라이브러리 구조
  • 최소 의존성 유지
  • arithmetic 타입과 storage 타입 분리
  • compile-time 검증 활용
  • 모듈 간 순환 의존성 방지

5. Target Usage

gmath는 다음 환경에서 사용되는 것을 목표로 한다.

  • 그래픽 엔진
  • 게임 엔진
  • 시뮬레이션 시스템
  • 수치 계산 시스템

라이브러리는 다음 헤더를 통해 사용된다.

#include <gmath/gmath.hpp>

이 헤더는 gmath의 모든 공개 모듈을 포함한다.