本文是个人对 C++ 标准库里的 std::sort 函数的分析、解读。鉴于个人能力有限,文中若有错误、疏漏还请各位来打我啊多多调指教QAQ
当然,各家编译器的实现可能不同,这里我是用的是 LLVM 的实现。
LLVM > libcxx release 37 > algorithm
即 Xcode 8.2.1 中所使用的版本。其实在某一行上的实现方式有微小的不同,但是实际上是等价的。而且那一行也不涉及到这里讨论的 std::sort 函数。
![trivial difference](/wp-content/uploads/2017/01/trivial-difference.png)
这篇 post 由以下几个部分构成
本文是个人对 C++ 标准库里的 std::sort 函数的分析、解读。鉴于个人能力有限,文中若有错误、疏漏还请各位来打我啊多多调指教QAQ
当然,各家编译器的实现可能不同,这里我是用的是 LLVM 的实现。
LLVM > libcxx release 37 > algorithm
即 Xcode 8.2.1 中所使用的版本。其实在某一行上的实现方式有微小的不同,但是实际上是等价的。而且那一行也不涉及到这里讨论的 std::sort 函数。
这篇 post 由以下几个部分构成
于是之前在Jetson TX1上玩耍的时候,发现貌似不论温度有多高,散热风扇都不会启动,也许是Nvidia对自己的微型核弹能承受的温度上限很有信心吧,不过为了能让这个微型核弹晚几年再炸,就搞了个监控CPU温度然后自动控制风扇的daemon。
整体思路就是通过读取 /sys/class/thermal/thermal_zone0/temp 判断温度,然后在 /sys/kernel/debug/tegra_fan/target_pwm 写入散热风扇的pwm值。然后本着一切从简的原则,直接用perl写了。
不知不觉,这次的「Congested Network, Equilibrium Flow, and System Optimal Flow」课程就结束了,这里面的数学上的细节就都在前几篇笔记中(估计还会有两三篇笔记,近期会整理出来),这一篇post大概是在上完这个课程之后的一些想法吧。
Continue reading What's behind and beyond the congested network
package main import "fmt" func main() { go func(msg string) { fmt.Println(msg) } ("It's time to 2017") }
第二个谬误的思考方式是在估计和进度安排中使用的工作量单位: 人月。成本的确随开发产品的人数和时间的不同有着很大的变化, 进度却不是如此。因此我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。 它暗示着人员数量和时间是可以相互替换的。……从而,添加更多的人手,实际上是延长了而不是缩短了时间。
——人月神话
在上一篇 Congested network笔记(2) 的最后,我们把问题变成了变分不等式的求解,那么这两个变分不等式在什么情况下存在解,且解唯一呢?
$$\left\{\begin{align}\frac{\partial\mathcal{Z(F)}}{\partial\underline{\mathcal{F}}}\cdot(\mathcal{F}-\underline{\mathcal{F}})&\ge 0&\forall \mathcal{F}\in S&\text{ 最优解}\\ \mathcal{C}(\mathcal{F}^*)\cdot(\mathcal{F}-\mathcal{F}^*)&\ge 0&\forall \mathcal{F}\in S&\text{ 均衡解}\end{align}\right.$$
在上一篇 Congested network笔记(1) 里,我们提到了均衡解和优化解。其中均衡解是指对每一个流量的花费最少,即user-optimal,用户最优。优化解则是站在全局的角度考虑,提出的系统最优。