Mar 15, 2016 課程紀錄

[2016q1 Week #4] [編輯共筆內容]

[ source ]

觀點不同,結果可能卻相近

「真正的發現之旅不在於尋求新的風景,而是在於擁有新的眼光。」

“The real voyage of discovery consists not in seeking new landscapes, but in having new eyes.”

― 法國作家 Marcel Proust

如何以三角函數繪製彩虹呢?

 三原色 R / G / B 三個 channel 的相位各差 120度 (2/3 PI)就可繪製出彩虹: 

c(x) = 128 + 127 * sin(x + theta)

參考資料: http://krazydad.com/tutorials/makecolors.php

Computer Systems: A Programmer’s Perspective

POSIX

POSIX Threads

Getting Started With POSIX Threads  (繁體中文翻譯)

POSIX Thread 實例: 光線追蹤

2016q1:Homework2 提到 raytracing 程式,UCLA Computer Science 35L, Winter 2016 Software Construction 課程有個作業值得參考: S35L_Assign8_Multithreading

編譯與測試

將 `srt` 後面的數字換成 1, 2, 4, 8 來測試執行時間

[ main.c ]

提示: inline

依據 GCC 手冊,額外提供 extension:

GCC does not inline any functions when not optimizing unless you specify the ‘always_inline’ attribute for the function, like this:

The remainder of this section is specific to GNU C90 inlining.

在 Makefile 加入以下:

實際使用:

提示: 安裝 Linux kernel header

裡頭包含以下程式碼:

Kernel Concepts