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의 모든 공개 모듈을 포함한다.