1
我使用Maxima(aka Macsyma)來生成一些係數,Maxima必須在python程序的外部文件中寫入表達式的fortran表示形式來讀出。如何格式化Fortran在Maxima中的輸出
我現在用的是下面這段代碼寫的係數下降:
with_stdout ("An.txt",
for n : 0 thru N do
fortran(A[n]));
但不幸的是,他們得到寫下來的文件An.txt
恰好是這樣的:
exp(beta*t)*(-alpha*(beta**2*t**2+2*beta*t+2)*exp(-beta*t)*D/beta*
1 *3+alpha*(beta*t+1)*exp(-beta*t)*D/beta**2-alpha**2*(beta**4*t*
2 *4+4*beta**3*t**3+12*beta**2*t**2+24*beta*t+24)*exp(-beta*t)/be
3 ta**5+2*alpha**2*(beta**3*t**3+3*beta**2*t**2+6*beta*t+6)*exp(-
4 beta*t)/beta**4-alpha**2*(beta**2*t**2+2*beta*t+2)*exp(-beta*t)
5 /beta**3+%c)
alpha*(t-1)*t
beta
(2*(beta*D+3*alpha*beta*(t-1)*t)+alpha*t+alpha*(t-1))/A_0(t)/6.0E+
1 0
是的,這是與在每個輸入之前有一個五(或六)個空格縮進,數字表示延續表達。
任何機會我可以得到一個更容易閱讀的版本?一條線上的每個條目都是理想的。我已經嘗試過功能f90
,但它沒有打印出任何東西,我也嘗試使用fortindent
和fortspaces
,但沒有任何更改(儘管我可能會使用錯誤的語法)。
在此先感謝。
我有這樣的代碼在Python(甚至與'%C')工作,但已經它不是很乾淨,我認爲出現問題的可能性很大(由於很多「if」)很大。這樣更好。關於打卡的事情,我認爲這是最大的唯一不好的事情:它還沒有真正發展成現代編程語言! – TomCho
@TomCho關於打卡,實際上Maxima只是試圖容納Fortran編譯器的「最低公分母」。固定格式的72個字符行業是Fortranism。我實際上是在二十世紀八十年代初期在打卡上編寫程序......美好時光。 –
是的,但爲什麼不能更容易地切換到更新的格式?或者,實際上,我們想要的任何格式?無論如何,我很高興這個解決方案很簡單,但最終我知道我最終不得不因爲這些事情而遷移到鼠尾草。 – TomCho