Skip to main content

SDS

1. Overview

본 문서는 gmath 라이브러리의 Software Design Specification (SDS) 를 정의한다.

gmath는 Grap 엔진에서 사용되는 수학 연산 라이브러리로서 벡터, 행렬, 수치 계산, 기하 계산을 위한 기본 타입과 연산을 제공한다.

라이브러리는 다음 설계 목표를 따른다.

  • deterministic memory layout
  • header-only 구조
  • 최소 의존성
  • arithmetic 타입과 storage 타입 분리
  • free function 기반 연산
  • compile-time 검증 활용

2. System Scope

gmath는 다음 수학 기능을 제공한다.

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

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

  • Scene 시스템
  • Transform component
  • 렌더링 시스템
  • 플랫폼 시스템
  • ECS 시스템

gmath수학 타입과 수학 알고리즘만 제공하는 라이브러리이다.


3. Module Structure

gmath는 다음 모듈로 구성된다.

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

각 모듈은 특정 수학 도메인을 담당하며 계층형 의존 구조를 따른다.


4. Layered Module Architecture

gmath 내부 모듈은 다음 계층 구조를 따른다.

config


meta


scalar


vec


mat


numeric


geom

각 모듈은 자신보다 하위 레이어 모듈에만 의존할 수 있다.


5. Public Interface

라이브러리는 다음 umbrella header를 통해 제공된다.

#include <gmath/gmath.hpp>

이 헤더는 다음 모듈을 포함한다.

config
meta
scalar
vec
mat
numeric
geom

사용자는 단일 헤더를 포함하여 전체 라이브러리를 사용할 수 있다.


6. Design Characteristics

gmath는 다음 설계 특성을 가진다.

  • header-only library
  • deterministic memory layout
  • compile-time validation
  • modular header architecture
  • free function math operations

이러한 설계는 gmath를 엔진 전반에서 사용할 수 있는 기초 수학 라이브러리로 유지하기 위한 것이다.