SciML/ComponentArrays.jl
Arrays with arbitrarily nested named components.
해결하는 문제
미분 방정식이나 최적화와 같은 많은 과학 계산 소프트웨어는 매개변수와 상태를 평탄한 벡터로 전달해야 합니다. 그러나 이러한 평탄한 벡터를 수동으로 관리하는 것은 실수를 유발하기 쉽고 유지보수가 어렵습니다. 특히 여러 작은 모델을 하나의 큰 모델로 조합할 때, 각 변수가 배열 내 어디에 있는지 추적하기 위해 지속적으로 "인덱스 조작"이 필요하기 때문입니다.
작동 방식
ComponentArrays.jl은 ComponentArray 타입을 도입합니다. 이는 평탄한 배열과 NamedTuple의 하이브리드와 같습니다. 데이터는 연속된 평탄한 벡터로 저장되지만, 이름 기반 인덱스를 사용하여 데이터에 접근, 수정, 슬라이싱할 수 있습니다. 이로써 개발자는 데이터를 구조화된 중첩된 객체처럼 다룰 수 있지만, 하위 소프트웨어는 기대하는 평탄한 벡터를 받을 수 있습니다.
대상 사용자
주로 SciML 생태계(특히 DifferentialEquations.jl 및 Optim.jl)를 사용하는 연구자 및 엔지니어, 또는 수치 소프트웨어에 평탄한 벡터가 필요하지만 구조화된 모델링 접근 방식을 유지하고자 하는 프로젝트를 위한 것입니다.
주요 기능
- 이름 기반 접근: 정수 인덱스 대신 이름을 사용하여 배열 블록에 접근.
- 무결한 조합:
ComponentArray뷰를 작은 함수에 전달하여 독립된 모델을 조합할 수 있습니다. - 평탄한 벡터 호환성: 표준 평탄한 벡터를 요구하는 소프트웨어와 완전히 호환됩니다.
- 자동 차원 확장: 브로드캐스트 연산을 통해 고차원
ComponentMatrix객체를 생성할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트