기타 업적

Pilot ACE

Pilot ACE​‡‡​

배경

튜링상 수상의 직접적인 이유로 거론되지는 않았지만 윌킨슨의 업적 중에서 가장 유명한 것으로는 Pilot ACE 개발이 있다. Pilot ACE는 초창기 전자식 컴퓨터 중 하나이다. Pilot ACE가 있었기 때문에 윌킨슨은 수치해석 프로그램을 남들보다 먼저 작성해볼 수 있었고 이 과정에서 오차해석의 세계에 관심을 가지게 되었다.

Pilot ACE는 Pilot이라는 단어가 설명하듯이 일종의 테스트용 컴퓨터였다. ACE라는 컴퓨터를 본격적으로 만들기 전에 시험적으로 만들어 보았다는 의미가 담겨 있다.

제2차 세계대전 중에 미국, 영국, 독일은 군사적인 목적으로 각각 전자식 컴퓨터를 제작했다. 그리고 제2차 세계대전이 끝나자 승전국이었던 미국과 영국은 본격적으로 전자식 컴퓨터 개발 경쟁이 벌어졌다. 모두 저장형 프로그램 방식stored program의 컴퓨터였다.

영국에서는 케임브리지 대학교의 모리스 윌크스, 맨체스터 대학교의 맥스 뉴먼, 국립물리연구소의 앨런 튜링이 독자적으로 개발에 착수했다. 국립물리연구소에서 앨런 튜링이 개발하던 시스템은 ACE(Automatic Computing Engine)라고 불렸다.

ACE 개발을 처음 시작한 사람은 앨런 튜링이 아니었다. 워머슬리가 그 주인공이다. 전자식 컴퓨터의 미래를 확신한 그는 국립물리연구소를 설득했고, 그 일을 이끌 사람으로 앨런 튜링을 섭외했다.​12​ 앨런 튜링은 이를 받아들였고 국립물리연구소의 ACE과ACE section에서 홀로 개발을 시작했다.​§§​

앨런 튜링은 저장형 프로그램 방식을 가정하고 설계했으나, 폰 노이만 구조를 따르지는 않았다. 그는 전체적으로 설계를 마치고 나면, 다시 개선안을 설계했다고 하는데, 그래서 윌킨슨이 국립물리연구소에 합류할 당시에는 다섯 번째 버전을 끝내고 여섯 번째 버전을 시작한 상태였다.​3​

ACE 시제품을 만들기 위해 논의하는 과정에서 앨런 튜링은 대용량 메모리가 필요하다는 소신을 굽히지 않았다. 당시에 사용하려던 메모리 구조는 지연선delay line이라는 것이다. 보통 수은으로 채워진 이 지연선은 한쪽 끝에서 다른 쪽 끝까지 음파를 천천히 전달하는 특성을 가지고 있는데, 바로 이렇게 음파가 수은관 안에서 잠시 유지되는 상태를 메모리 용도로 활용한 것이다. 그런데 이 지연선의 길이가 무한할 수는 없으므로 저장 용량에 한계가 있다. 앨런 튜링이 설계하던 당시에는 지연관 하나가 32비트를 32개까지 저장할 수 있었으므로 128바이트 수준이었다. 그런데 앨런 튜링은 제대로 수치계산을 하려면 32비트가 6,400개는 저장되어야 한다고 생각했다. 그렇게 되면 지연선이 200개나 있어야 하는데 너무 비용이 많이 들어서 국립물리연구소의 경영진에서는 난색을 보였다. 이때 방문 연구원 자격으로 와 있던 해리 허스키가 중재에 나섰고 Test Assembly(시험용 조립품)라는 이름으로 축소 버전을 만들자고 제안했다. 앨런 튜링은 여전히 불만이었으나 연구소 경영진에서는 받아들였다.

이제 만들기로 결정은 했으나 누가 만들어야 할지가 쟁점으로 떠올랐다. 국립물리연구소는 순수 물리와 순수 수학 전공자 중심이었으므로 전자 회로를 만져본 사람이 없었다. 앨런 튜링은 전쟁 중에 블레츨리에서 전자 회로를 만져본 경험이 있었으나 이 일에 적극적이지 않았다. 가장 문제가 된 것은 지연선이었다. 본질적으로 음파를 다루는 것이었으므로 무선 신호 전문가가 필요했다. 우편국이나 조달청의 지원을 기대했지만 여의치 않자 결국 경영진은 제작을 전담할 부서를 신설했다. 국립물리연구소의 수학부 내에 계산과, ACE과 외에 전자회로과Electronics Section가 신설되었다.

전자회로과의 신설은 최악의 결과를 낳았다. 전자회로과를 지휘하기 위해 외부에서 데려온 토마스는 컴퓨터에 별 관심이 없었다. 하지만 제작 주도권을 잃은 허스키와 ACE과는 어찌할 방법이 없었다. 토마스와 튜링 사이의 불화가 갈수록 심해졌다. 결국 튜링은 연구소를 떠났다. 그리고 설상가상으로 토마스마저 연구소를 떠났다.​12​

본격적인 개발

대장 역할을 하던 튜링이 떠나버리자 ACE과에는 가장 고참인 윌킨슨을 비롯하여 우드거, 도널드 데이비스, 알웨이까지 네 사람이 남게 되었다. 이제 시제품 개발은 물 건너간 것처럼 보였고, 계산과에서는 윌킨슨에게 수치해석 작업에 전념하는 것이 어떻겠냐고 권유했다.

그런데 의외의 상황이 전개되었다. 토마스의 후임으로 전자회로과를 맡은 콜브룩은 윌킨슨에게 와서 다음과 같이 제안했다.

이제 함께 모여서 시제품을 만들어보는 게 어때요? 이게 성공하면 우리가 경쟁력이 있다는 것을 윗사람들에게 보여줄 것이고 그렇게 되면 이 일을 확실히 계속할 수 있을 겁니다.​12​

이때가 1948년이었다. ACE과의 네 명 모두 전자회로과로 보직을 잠시 옮기고 시제품 개발에 전념하기로 했다. 무선통신 전문가였던 콜브룩은 사람이 좋았고 아주 유쾌한 사람이었다. 처음에는 전자회로과에서 서먹서먹해하던 네 사람은 두 달 정도가 지나자 완전히 동화되었고 시제품 개발은 힘을 받았다.​¶¶​

실질적으로 프로젝트를 이끌어 간 이는 윌킨슨이었다. 그는 ACE의 설계를 가장 오랫동안 함께 했기 때문에 어디에서 시작해야 할지를 알았다. 그는 앨런이 만든 버전 중 다섯 번째 것을 선택했고, 규모를 줄였다. 메모리로 사용되는 지연선은 8개만 사용했다. 따라서 메모리 용량은 8 * 32 * 32 = 1K Bytes에 불과했다.

순수 수학자의 길을 걸어갈 것으로만 보였던 윌킨슨은 이제 납땜기와 망치를 든 엔지니어가 되었다. 국립물리연구소의 공작실에서 제작한 지연선과, 전자회로과에서 만든 회로 기판이 모이면 그는 직접 자신의 손으로 조립하고 시험했다. 워낙 규모를 축소한 시스템이었으므로 당시의 다른 전자식 컴퓨터에 비하면 매우 작았다. 바퀴를 달아서 움직이고 다닐 수 있을 정도였다.

테스트

제작한 회로와 지연선이 합쳐지면서 컴퓨터가 모양을 갖춰갔지만 제대로 동작하는지를 확인하기는 쉽지 않았다. 과연 지연선이 메모리로서 제대로 동작하는지가 관건이었다. 그래서 윌킨슨은 아주 원시적이면서 간단한 프로그램을 만들었다.​3​ “Successive Digits”라는 이름의 프로그램이었다.​##​

아주 단순한 프로그램이었다. 어떤 값을 메모리에 설정하면 이 값이 누산기accumulator에 계속 반복적으로 더해진다. 그러다 보면 누산기에서 오버플로우가 발생하게 되는데 오버플로우가 발생하면 컴퓨터에 붙어 있는 전구에 불이 들어왔다.

키보드나 모니터가 존재하지 않던 시절이었다. 메모리에 값을 입력하기 위해서는 스위치를 사용했다. 32개의 스위치를 설정하는 식으로 프로그램 코드가 메모리에 입력되었다. 알웨이가 프로그램 코드를 모두 입력한 후 시작 버튼을 눌렀다. 시간이 흘렀지만 아무런 변화가 없었다. 아직 지연선의 동작이 안정화되지 않았던 시기였다. 프로그램 코드를 모두 입력하기도 전에 이미 입력되었던 값이 사라졌다. 하지만 대여섯 번을 다시 시도하자 갑자기 전구에 불이 들어왔다. 지연선이 말을 듣기 시작한 것이었다. 이제 누산기에 더해지는 값을 더 큰 값으로 바꾸었다. 그러자 더 빨리 전구에 불이 들어왔다. 메모리에서 코드를 읽어와서 누산기 계산을 하는 과정이 모두 정상적으로 동작하고 있었다.

시연

Pilot ACE가 동작함을 확인한 국립물리연구소의 불라드 소장은 공개 시연을 결정했다. 1950년 봄의 일이다. 이미 맨체스터 대학교와 케임브리지 대학교는 각각 맨체스터 베이비, EDSAC을 공개한 상태였다. 1등은 뺏겼지만 나랏돈을 쓰는 국립물리연구소 입장에서는 필요한 행사였다.

Pilot ACE가 곱셈기를 제외하고 거의 조립을 완성한 때가 1950년 6월 말이었다. 시연은 11월로 잡혀 있었다. 추운 날씨는 Pilot ACE에 득보다 실이 많았다. 아직 전력 공급이 원활하지 못하던 시절이었는데 집집마다 전기화로를 켜면 전압이 갑자기 떨어지곤 했다. 마침 그 무렵에는 석탄 공급 부족으로 상황이 더욱 악화되었다.

하지만 윌킨슨의 걱정은 따로 있었다. 앞서 다른 기관에서 만들었던 컴퓨터들의 시연이 원만하게 진행되지 못하는 사례를 보았기 때문이었다. 잘 돌아가던 프로그램도 시연에 나가면 말썽을 부리기 일쑤였다.​***​

윌킨슨이 준비한 시연은 세 가지였다. 첫 번째 프로그램은 인수분해를 하는 프로그램이었다. 6자리 정수를 입력하면 그것이 소수인지를 판단하고 만약 소수가 아니라면 인수 하나를 출력하는 프로그램이었다.

두 번째 프로그램은 날짜를 입력하면 요일을 출력했다. 원리는 간단하지만 위험부담이 많았던 프로그램이었다. 복잡한 수식을 계산하는 것이라면 그 결과가 맞는지 틀리는지를 그 자리에서 확인하기 어렵지만, 이 프로그램은 당장 오늘 날짜를 넣어보면 바로 답이 맞는지 틀리는지를 알 수 있기 때문이었다.

마지막은 여러 렌즈를 통과하는 사행 광선skew ray을 추적하는 프로그램이었다.

시연은 사흘에 걸쳐 진행되었다. 첫 날은 일반 언론사, 둘쨋 날은 기술 관련 언론사, 마지막 날은 경쟁업체를 포함하여 귀빈을 대상으로 진행되었다.

시연 준비는 순조롭지 못했다. 행사 이틀 전까지도 프로그램이 제대로 동작하지 않았다. 시연 첫 날, 불라드 소장은 2층에서 기자들을 상대로 인삿말을 한 후 아랫층으로 내려와 Pilot ACE 시연을 진행하기로 되어 있었다.​3​

불라드 소장이 인삿말을 거의 끝내갈 때쯤 연락을 받기로 되어 있었습니다. 그런데 끝나간다는 연락을 받았을 때 갑자기 기계가 동작을 멈췄습니다. 거의 즉시 우리는 지연선 중 하나에 문제가 있음을 발견했습니다. 즉시 여유분으로 교체했지만 그 녀석이 따뜻해질 때까지는 증폭기가 불안정한 상태에 놓일 수밖에 없었죠. 증폭기를 미세조정해야했고 그러고도 정상상태가 되려면 10분은 걸렸습니다.

그래서 시연이 시작되자마자 문제가 생기리라고 우리는 예상했습니다. 자, 기자들이 내려왔고 그들은 숫자를 던졌습니다. 그런데 컴퓨터는 근사하게 그 숫자들을 인수분해했습니다. 지치지도 않더군요!

이제 날짜 프로그램으로 넘어갔습니다. 그 녀석은 지금까지 한 번도 틀려본 적이 없는 양 동작했습니다. 트라팔가 해전일, 워털루 전투일, 조지 5세 탄생일 등을 (딱딱 맞췄죠). 광선 추적 프로그램으로 넘어갔는데 귀신 들린 듯이 추적하더군요. 그 무엇도 그 녀석을 막을 수 없었습니다. 10시에 시작된 시연은 오후 1시까지 이어졌습니다. 그리고 기자들은 점심을 먹으러 사라졌습니다. 우리는 즉시 지연선을 살펴보았습니다. 그때까지 우리가 본 것 중에서 최고의 상태였습니다!

(토요일에 마지막 시연을 완벽하게 마친 후) 월요일에 우리는 신나게 연구소로 출근했습니다. 그런데 컴퓨터가 죽어 있었습니다. 다시 살리는 데 일주일이 걸렸습니다.​3​

옵티멈 코딩 (Optimum coding)

테스트용으로 만든 Pilot ACE는 1955년까지 연구소에서 잘 사용되었다. 메모리 용량이 너무 작기는 했지만 독특한 명령어 구조로 인해 성능은 뛰어났다.

튜링은 컴퓨터의 성능을 중요시했다. 그가 버전 5에서 멈추지 않고 계속 버전 6, 버전 7을 만들어 나간 이유는 성능을 높이기 위해서였다. 그래서 Pilot ACE의 클럭 속도는 1MHz였다. 당시 기준으로 보면 상당히 높았다.

ACE의 독특한 구조적 특징 중 하나는 명령어 구조에서 찾아볼 수 있다. 저장형 프로그램 방식의 컴퓨터는 명령어를 통해 메모리를 접근하게 되어 있다. 예를 들어 덧셈 명령어가 있다고 하면 다음과 같은 식이다.

ADD @100, @200, @300

위의 명령은 100번지에 있는 값과 200번지에 있는 값을 더해서 300번지에 저장하라는 의미이다.​†††​

일반적으로 프로세서는 프로그램 내에 있는 코드, 즉 명령어들을 차례대로 수행한다. 앞의 예에서 ADD @100, @200, @300 명령어가 메모리 내에서 11번지에 있었다고 하면 이 명령어가 실행되면 12번지에 있는 명령어가 실행된다.

이런 구조는 폰 노이만의 <First draft of a report on the EDVAC>​13​ 논문에서 제안된 방식이며 EDSAC이나 맨체스터 베이비도 모두 이 방식을 따랐다. 그런데 이 구조는 당시의 컴퓨터에서 성능상 단점을 가졌다. 메모리가 지연선으로 구현되었기 때문이다.

지연선 메모리의 동작 방식은, 회전 초밥집에 있는 궤도를 연상하면 이해하기가 쉽다. 회전 초밥집에서는 초밥이 담긴 접시들이 차례대로 줄을 서서 움직이며 어떤 특정 위치에 있는 초밥 접시를 붙잡으려면 그 앞에 있는 접시들이 모두 지나가야 한다. 자. 내가 어떤 회전 초밥집에 왔는데 이 가게는 궤도가 너무 빨리 움직여서 접시를 하나 집으면 바로 다음에 있는 접시를 집을 수가 없다. 만약 내가 장어 초밥을 먹고 그다음에 연어 초밥을 먹기로 마음먹었다고 하자. 그런데 마침 궤도 위에 장어 초밥이 보이고 바로 뒤에 연어 초밥이 놓여 있다. 따라서 내가 장어 초밥을 집으면 그사이에 연어 초밥이 지나가 버리므로 나는 궤도가 한 바퀴 돌 때까지 기다려야 그 연어 초밥을 먹게 된다.

지연선 메모리에서도 마찬가지 문제가 발생한다. 프로그램 코드가 지연선 메모리 속에 줄지어 저장되어 있을 텐데 어떤 명령어를 읽어서 처리하다 보면 그다음 명령어가 지나가고 만다. 명령어마다 그런 지연시간이 들어가므로 결국 컴퓨터의 수행 성능이 크게 저하된다.

튜링은 이런 낭비를 피하고 싶었다. 그래서 명령어 구조를 다음과 같이 만들었다.

ADD @100, @200, @300, @16

위의 명령어는 앞의 예와 비교해서 끝에 주소가 하나 더 붙었다. 이 주소는 다음 명령어가 저장된 메모리 번지이다. 즉, 이 명령어가 수행되고 나면 16번지에 있는 명령어를 수행하라는 의미가 된다. 아까 예를 설명할 때 이 명령어가 11번지에 있었다고 가정했으므로 그다음 명령어가 5칸이나 뒤에 있는 셈이 된다. 지연선 메모리에서 11번 주소 데이터가 나타난 후 16번 주소 데이터가 나타날 때까지의 시간이 이 명령어의 처리시간과 같다면 불필요하게 한 바퀴를 더 기다릴 필요 없이 바로 다음 명령어를 수행할 수 있게 된다.

이런 방식을 윌킨슨은 “옵티멈 코딩”이라고 불렀다. 옵티멈 코딩을 사용하여 작성한 부동소수점 연산 서브루틴의 속도는 다른 경쟁 기계들의 처리 속도보다 훨씬 빨랐다. 하지만 프로그래밍하기는 매우 어려웠다. 한때 IBM 650 모델도 Latency coding이라는 이름으로 유사한 방식을 사용했으나 결국 임의접근 메모리가 등장하면서 이런 방식의 구조는 사라졌다.


Pilot ACE의 성공은 상용화로 이어졌다. 영국의 English Electric 사​‡‡‡​는 약간의 개선을 적용한 후 DEUCE라는 이름으로 판매했다. 당시 기준으로는 상당한 판매고를 거두었다.

시제품의 성공을 맛본 국립물리연구소는 완전한 규모의 ACE 개발에 착수했다. 윌킨슨은 참여하지 않았다. 이 기계는 1958년에 완성되었으나 Pilot ACE 만큼의 반향은 불러일으키지 못했다. 지연선을 메모리로 사용하는 시스템은 이미 시대에 뒤처져 있었다.

Pilot ACE는 윌킨슨이 만들었다고 해도 과언이 아닐 듯싶다. 한때는 순수한 고전 수학에서 두각을 나타냈던 그였지만, 스스로 인정했듯이 그는 고장 난 자전거를 직접 고치길 즐기던 사람이었다.

마지막으로 앨런 튜링을 한 번 더 언급해야겠다. 앨런 튜링은 ACE를 소규모로 만드는 것에 대해 탐탁지 않게 생각했다. 하지만 Pilot ACE가 완성되자 직접 시연에 와서 격려해주었다고 한다.

그는 시연을 보러 왔습니다. 끝난 후에는 나에게 와서는, 기분이 좋다고 말해주었고 그의 아이디어가 결실을 맺은 것이 멋지다고 했습니다… 얼마 후에 나는 승진 대상이 되었는데 외부 사람의 추천이 있어야만 했습니다…. 그가 나에 대해 아주 좋은 추천을 해주었음을 압니다. 사실 몰라야 맞지만 불라드 소장은 항상 그런 걸 말하고 다니길 좋아하는 사람이었죠. (하하하)​2​

수치계산 전용 라이브러리

윌킨슨은 Pilot ACE를 만들기만 한 것이 아니라 Pilot ACE를 위한 선형대수용 라이브러리도 직접 만들어서 컴퓨터의 유용함을 증명해 보였다.

그는 자신이 만든 선형대수, 특히 행렬연산 알고리듬을 지속적으로 학술지에 발표했다. 그리고 다른 이들이 발표한 알고리듬까지 한데 모아 1971년에 <선형대수Linear Algebra>라는 책으로 출간했다. 여기에 포함된 선형대수 알고리듬들은 알골 언어로 설명되어 있었고 이를 토대로 EISPACK이라는 소프트웨어 패키지가 만들어졌다.​14​ 그리고 이것은 다시 LINPACK이라는 대표적인 선형대수 라이브러리로 발전했다. 오늘날 우리가 많이 사용하는 Matlab의 시작은 윌킨슨에서 시작되었다고 해도 과언이 아니다.


  1. ​*​
    출처: https://mathshistory.st-andrews.ac.uk/Biographies/Wilkinson/pictdisplay, CC-SA-4.0
  2. ​†​
    출처: https://mathshistory.st-andrews.ac.uk/Biographies/Wilkinson/pictdisplay, CC-SA-4.0
  3. ​‡​
    케임브리지 대학교의 수학적 연구소에 대해서는 모리스 윌크스 편(https://knowledgebasin.com/archives/persons/모리스-윌크스)을 참조하기 바란다.
  4. ​§​
    인터뷰 녹취록에는 Fort Halsford로 되어 있지만 이는 오류로 보인다.
  5. ​¶​
    마이크 우드거는 후에 알골(ALGOL) 설계의 주요 인물이 되었다. 해리 허스키는 미국의 표준 연구소 소속으로서 1년 동안 방문 중인 상태였다.
  6. ​#​
    위키피디아 한글판에서도 그대로 번역해서 사용하고 있다.
  7. ​**​
    출처: Daderot, CC0, via Wikimedia Commons
  8. ​††​
    실제로는 조금 다를 수도 있다. 예를 들어 8비트 프로세서이지만 내부 레지스터 중 일부는 16비트인 경우도 있다.
  9. ​‡‡​
    출처: https://www.computerhistory.org/revolution/birth-of-the-computer/4/96
  10. ​§§​
    앨런 튜링이 제안을 받아들이기는 했으나 워머슬리를 좋아하지는 않았다고 한다. 그가 중간에 맨체스터 대학교로 떠나기 전까지 국립물리연구소의 소장을 비롯하여 상관들과의 관계는 원만하지 않았던 것으로 보인다.
  11. ​¶¶​
    도널드 데이비스는 후에 계속 전자회로과에 남아서 책임자가 되었다. 그는 1965년에 패킷스위칭 개념을 처음 제안한 사람이기도 하다.
  12. ​##​
    줄여서 Suck Digs라고 불렀다고 한다.
  13. ​***​
    이는 현대도 마찬가지이다. 마이크로소프트 윈도우나 애플 매킨토시 시연에서도 그런 일이 생기곤 했다.
  14. ​†††​
    이것은 하나의 예이다. 프로세서마다 형식은 다를 수 있다.
  15. ​‡‡‡​
    English Electric사는 후에 ICL 사에 합병된다. English Electric사는 합병되기 전에 Elliott Brothers라는 컴퓨터 회사를 인수했는데 이 회사에는 토니 호어가 다니고 있었다.

참고문헌

  1. 1.
    Wilkinson JH. Some comments from a numerical analyst. ACM Turing Award Lectures.:1970. doi:10.1145/1283920.1283925
  2. 2.
    James Wilkinson Interview by Henry S. Tropp. Smithsonian National Museum of American History; 1973:77. https://www.si.edu/media/NMAH/NMAH-AC0196_wilk730627.pdf
  3. 3.
    An Interview with James H. Wilkinson Conducted by J. C. Nash. SIAM; 1984:24. https://archive.computerhistory.org/resources/access/text/2013/12/102746813-05-01-acc.pdf
  4. 4.
    Wilkinson James H. Rounding Errors in Algebraic Processes. Prentice-Hall; 1964.
  5. 5.
    ACM. JAMES HARDY (“JIM”) WILKINSON . J. H. Wilkinson – A.M. Turing Award Laureate. Accessed July 26, 2022. https://amturing.acm.org/award_winners/wilkinson_0671216.cfm
  6. 6.
    Numerical analysis. Wikipedia. Accessed July 26, 2022. https://en.wikipedia.org/wiki/Numerical_analysis
  7. 7.
    Facit. A Collection of Mechanical Calculators. Accessed July 26, 2022. https://mechanicalcalculators.wordpress.com/about/facit-calculators/
  8. 8.
    어스프레이 윌리엄. 존 폰 노이만 그리고 현대 컴퓨팅의 기원. 지식함지; 2015.
  9. 9.
    Hotelling Harold. Some new methods in matrix calculation. Ann Math Statist. 1943;(14):1-34.
  10. 10.
    섭동이론. 위키백과. Accessed October 6, 2022. https://ko.wikipedia.org/wiki/%EC%84%AD%EB%8F%99_%EC%9D%B4%EB%A1%A0
  11. 11.
    Higham Nicholas J. How Accurate Is Gaussian Elimination? Cornell University; 1989:1-20. https://ecommons.cornell.edu/handle/1813/6824
  12. 12.
    코플랜드 잭. 앨런 튜링: 컴퓨터와 정보시대의 개척자. 지식함지; 2014.
  13. 13.
    von Neumann J. First draft of a report on the EDVAC. IEEE Annals Hist Comput. Published online 1993:27-75. doi:10.1109/85.238389
  14. 14.
    EISPACK. Wikipedia. Accessed September 30, 2022. https://en.wikipedia.org/wiki/EISPACK

1 2 3 4 5