2024/10 17

C++ 라이브러리 OpenMP

OpenMP는 멀티코어 환경에서 효율적으로 프로그램 특히 단순 반복문을 여러 스레드로 나누어 병렬로 실행할 수 있게 도와주는 API다. 기존 코드의 반복문에 지시문 한줄만 추가해주면 되어 굉장히 간단하지만스레드 간 동기화 및 공유 자원 관리에 주의해야 한다. 사용방법1. 헤더#include 2. 병렬화 지시 for문이 있으면 그 앞에 다음 한 줄을 추가해주면 된다.#pragma omp parallel forparallel : 병렬 실행 명령for : 반복문을 각 스레드에 나누어 할당 3. 추가 명령(예시)병렬화된 반복문에서는 각 스레드가 독립적으로 작업을 수행한다.하지만, 모든 스레드가 특정 변수에 작업을 시도하는 경우 충돌이 발생할 수 있다.만약 각 스레드에서 독립적으로 수행한 작업을 sum 이라는 변..

컴퓨터 2024.10.24

캐치실력에 관해서

내 포지션은 리시버 / 코너백 리시버는 공을 잘 잡는 능력이 중요하다.전속력으로 뛰는 상황에서 빠르게 날아오는 공을 두손으로 정확히 받아내는게생각보다 어렵다. 처음 미식축구를 시작했을때,컴바인때는 하나도 못잡았고제대로 잡는데 1년이라는 시간이 걸렸다.경기중에 멍청한 실수로 드랍하는것을 바로잡는데 2년이라는 시간이 걸렸다.아직도 경기중에 공이 나에게 날아오면 긴장이 된다. 누구는 이런 나를 보고 ㅈ밥이라고 생각할 수 있다.운동 잘하는, 운동신경이 타고난 친구들이 보면,사실 미식축구 접하는 많은 이들이 보면나는 캐치실력에 대해서는 객관적으로 ㅈ밥이 맞다. 취미로 야구를 오래 해와서 공을 주고받는것 자체엔 자신이 있다지만글러브 없이 맨손으로 공을 받는게 처음에는 너무나 무서웠다.이게 안돼서 눈물을 흘리기도 했..

미식축구 2024.10.22

C++ 라이브러리 Armadillo

Armadillo는 C++ 선형 대수 라이브러리로, 개발 친화적이면서도 빠른 연산 속도를 목표로 한다.MATLAB과 유사한 고급 구문과 기능을 제공한다.C++에서 알고리즘 개발에 유용하며, 연구 코드를 신속하게 상용 환경으로 변환하는 데 적합하다.벡터, 행렬, 큐브를 위한 효율적인 클래스를 제공하며, 조밀한(dense) 행렬과 희소(sparse) 행렬을 지원한다.정수, 부동 소수점 및 복소수 숫자를 지원한다.정교한 표현 평가기(템플릿 메타 프로그래밍 기반)가 여러 연산을 자동으로 결합하여 속도와 효율성을 증가시킨다.동적 평가가 탐지된 행렬 구조에 따라 최적의 코드 경로를 자동으로 선택한다.고유값 분해(eigen), 특이값 분해(SVD), 콜레스키 분해(Cholesky) 등의 행렬 분해가 LAPACK 또는..

컴퓨터 2024.10.22

C++ Eigen 라이브러리

Eigen 라이브러리는 C++용 오픈 소스 템플릿 라이브러리로, 벡터와 행렬 연산을 포함한 다양한 선형 대수 연산을 지원한다. 주로 행렬 연산, 벡터 연산, 고유값 계산, 행렬 분해 등을 간단하고 효율적으로 수행할 수 있도록 설계되었다. 참고 사이트https://eigen.tuxfamily.org/dox/ Eigen: Main PageThis is the API documentation for Eigen3. You can download it as a tgz archive for offline reading. For a first contact with Eigen, the best place is to have a look at the getting started page that show you how..

카테고리 없음 2024.10.21

C++ 라이브러리 추가 방법

다시 말하지만나는 컴맹이다.정말 간단한건데도 불구하고 아무것도 몰라서 이렇게 적어놔야 다음에 또 쓸수 있을것 같아서 쓴다. 1. 라이브러리를 다운로드 받아서 압축해제를 한다.2. 라이브러리만 저장해놓는 폴더 같은걸 하나 만들어놓는것도 좋을듯. 아무튼 이렇게 다운로드 받은 라이브러리 폴더를 경로 복사한다.3. 비주얼 스튜디오에서 프로젝트 이름에 좌클릭 - 속성에 들어가서 구성 속성 - C/C++ - 일반 - 추가 포함 디렉터리에 경로를 붙여넣기 한다.4. 확인을 누르고 나오면 컴파일이 성공적으로 될것이다. 정말 간단.

컴퓨터 2024.10.21

C++ 표준 라이브러리 자료구조 종류

1. std::array설명: C++11에서 도입된 고정 크기 배열입니다. 크기가 컴파일 타임에 결정되며, 스택 메모리에 할당됩니다.특징:크기가 고정되어 있어 메모리 관리가 간단합니다.STL 알고리즘과 호환됩니다.복사 및 대입이 용이합니다. #include std::arrayint, 5> myArray = {1, 2, 3, 4, 5};2. std::vector설명: 동적 크기 배열로, 필요에 따라 크기를 조정할 수 있습니다. 메모리는 힙에 할당됩니다.특징:요소 추가 및 제거가 용이합니다 (push_back(), pop_back() 등).크기를 동적으로 변경할 수 있습니다.STL 알고리즘과 호환됩니다. #include std::vectorint> myVector = {1, 2, 3};myVector.pus..

컴퓨터 2024.10.21

#include <unordered_map>

기초가 없어서 그냥 두서없이, 순서 없이 그냥 쓰는 헤더파일들 정리할 계획. 얘는 Hash Map 자료 구조를 사용할 수 있게 해주는 C++ 내장 헤더파일.사용 방법은 unordered_map {name of variable}; 파이썬에서 딕셔너리랑 비슷한 기능이라 생각하면 될것 같다. 기능들- 검색{name of variable}["{name of key}"]-> 해당 key에 대응되는 value 출력 - 추가그냥 추가하면 됨 - 제거{name of variable}.erase("{name of key}")-> 해당 key와 대응되는 value 삭제

컴퓨터 2024.10.21

대학미식축구 5년.

20살 대학 입학 하자마자 시작한 미식축구.25살이 된 지금 거의 6년이 다 되어간다. 오늘은 대학미식축구 선수로 뛴 5년, 그동안 어땠는지 돌아보는 시간. 처음 입부할 때 과 동기 친구랑 같이 입부를 했다.중학교때 잠깐 플래그 풋볼을 하기도 했었고안타깝지만 운동은 하고 싶은데 축구를 못해서 차선책으로 택했다.축구를 잘하는 것보다 그냥 새로운 운동을 파자는 마인드.적당히 잘할 바에 하나 잡아서 제대로 해보자는 생각을 가지고 입부했다. 사실 처음 입부할때 나는 참 초라했다.미식축구란 운동이 격렬하고 터프한 이미지가 있어서 대개 운동을 좋아하거나 체격이 좋은 친구들이 들어오곤 하지만나는 그런 케이스는 아니었고, 그냥 그런 이미지가 멋있어 보여서,달리기 하나는 자신이 있어서 그냥 지원했다. 처음에는 피아노 동..

미식축구 2024.10.20