avatar
文章
67
标签
70
分类
31
主页
关于
标签
分类
归档
Cauphenuny's Blog
搜索
主页
关于
标签
分类
归档

Cauphenuny's Blog

一种对 3D 旋转矩阵的直观理解
发表于2025-10-11|更新于2025-10-11|CSGraphics
绕轴 n\mathbf{n}n 旋转角度 α\alphaα 的旋转矩阵是: Rn,α=cos⁡(α)I+(1−cos⁡(α))nnT+sin⁡α(0−nznynz0−nx−nynx0)⏟N=I+sin⁡(θ)N+(1−cos⁡θ)N2\mathbf{R}_{\mathbf{n},\alpha}=\cos(\alpha)\mathbf{I}+(1-\cos(\alpha))\mathbf{n}\mathbf{n}^T+\sin\alpha \underbrace{ \begin{pmatrix}0 & -n_{z} & n_{y} \\ n_{z} & 0 & -n_{x} \\ -n_{y} & n_{x} & 0\end{pmatrix} }_{ \mathbf{N}...
Coroutines in C
发表于2025-09-25|更新于2025-09-27|CSPLc/cpp
又刷到个奇技淫巧,看完两眼一黑了 https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html switch 是能跳转到任意控制流内部的,利用这个特性,可以在 C 中实现一个 generator 朴素的 generator 需要实现一个显式的状态机 123456789101112131415161718int func() { static int state = 0, i = 0; switch (state) { case 0: goto start; case 1: goto label1; case 2: goto label2; }start: state = 1; return 0;label1: for (i = 0; i < 10; i++) { state = 2; return i;label2:; } return...
在 C 语言中写类型安全的泛型容器
发表于2025-07-08|更新于2025-09-27|CSPLc/cpp|C•Generic Programming
https://danielchasehooper.com/posts/typechecked-generic-c-data-structures/ 比较可惜的是,在看到这篇博客之前,我已经写完了这学期数据结构的 oj 代码了 众所周知,用 C 写非侵入式泛型容器是很坐牢的事,要么全用 void* 一顿擦除,性能不高的同时还容易写错类型,要么写一个全是 define 的头文件,根据需要什么类型就 #define T int 然后 include 一下,产生很多重复代码,而且全 define 很难 debug 或代码提示。 这篇博客给出了一个令人耳目一新的方法 效果是这样的: 12345678910111213141516171819typedef struct { int value;} Foo;List(int) int_list = {0};list_prepend(&int_list, 3);List(Foo) foo_list =...
Basics of Diffusion
发表于2025-05-03|更新于2025-09-27|CSCV
Fundamentals Theorem For any distribution over (X,Y)(X,Y)(X,Y), we have argminf E∣∣f(X)−Y∣∣2=E[Y∣X]\text{argmin}_{f} \space \mathbb{E} ||f(X)-Y||^2=\mathbb{E}[Y|X] argminf​ E∣∣f(X)−Y∣∣2=E[Y∣X] Proof argmin⁡ fE∣∣f(x)−y∣∣2=argmin⁡ fE∣∣f(x)−y∣∣2=argmin⁡ fEXEY∣X[f(x)−Y∣X=x]2=argmin⁡ f(x)EX[f(x)2−2f(x)EY∣X(Y∣X=x)+EY∣X(Y∣X=x)2]=EX(argmin⁡ f(x)f(x)2−2f(x)EY∣X(Y∣X=x)+EY∣X(Y∣X=x)2)\begin{aligned} &\mathop{\operatorname{argmin}\,}_{f} \mathbb{E} \lvert \lvert f(x)-y \rvert \rvert...
在 arm host 上使用 gdb 调试 amd64 程序
发表于2025-04-08|更新于2025-04-08|gdb•arm•env
非原创 解决方案来源 在 Docker run 中加入 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined 创建一个/usr/local/bin/gdb,因为PATH中/usr/local/bin比较靠前,会比/usr/bin/gdb先被找到 1234567891011121314151617181920#!/bin/bashSCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )if [ "$#" != "1" ]; then echo "Usage: $0 <path/to/program to debug>" >&2 exit 1fiprog="$1"# Start program in...
brainfuck 代码生成工具 - 将C代码编译到brainfuck
发表于2024-11-22|更新于2025-09-27|CSCP|C•CS•cpp•C++•编译原理•Compiler•brainfuck
最近在做一个编译原理lab ☝️🤓诶,我已经有结构化的AST和IR了,岂不是能不太费劲地地写出一些有意思的东西? 就这样一拍脑袋给编译器加了个brainfuck后端 由于还没想好怎么实现栈,现在所有变量都是static的,也不支持递归函数调用 demo 12345678910/// file: test/int_size.cint main() { int bit = 0; int v = 1; while (v) { v = v * 2; bit = bit + 1; } return bit;} 1234567891011121314$ build/compiler -brainz...
给C++实现一个模式匹配
发表于2024-11-08|更新于2025-09-27|CSPLc/cpp|CS•cpp
没用的小玩具
从零开始打造一个原琴模拟器
发表于2024-06-14|更新于2025-09-27|CSWeb|CS•HTML•JavaScript
计科导大作业 试玩链接: 原琴模拟器 6.14 音色库来源:@Colalala_冰阔落落落 试了半天,发现没法正常播放这个风物之诗琴的音源,决定先用 smplr 默认的钢琴音源把别的写了。 写好了键盘演奏函数、谱子 parser 以及自动播放功能。 version 0.1.0 6.15 加入 [] {} 表示时值变化。 添加临时升降记号 -/+ 以及临时高/低八度记号。 重写了教程 version 0.3.0 6.16 添加了固定调转调方式,更适合对着五线谱演奏。 version 0.4.0 6.17 优化了调号显示。 version 0.4.4 加了个键盘,可以看到哪些音被按下了。 version 0.5.4 把自动演奏和按键动画连接了起来。 version 0.6.0 加了个加载时的提示悬浮窗 version 0.6.1 6.18 重构了代码 version 0.7.0 给按钮加了点阴影,感谢Box-Shadow CSS Generator以及用filter: drop-shadow()给透明图片添加阴影 version 0.7.1 遇到了个...
C++20 新特性试玩:concept
发表于2024-04-19|更新于2025-09-27|CSPLc/cpp|CS•C++
定义 concept 12template<typename T>concept c = (bool_expression); requires(args) {...} 可以作为一个 bool 表达式,检查大括号中内容是否编译通过 e.g. 12template <typename T>concept printable = requires(std::ostream& os, T a) { os << a; }; requires 字句也能嵌套,这样就不用把两个无关的条件参数写到同一个括号里面。 12template <typename T>concept Field = <concepts> 头文件内有一些预定义的...
月度总结
发表于2024-04-02|更新于2024-04-02
2024 年 3 月 屁事没干,破防了 对比一下
12…7
avatar
Cauphenuny
文章
67
标签
70
分类
31
Follow Me
最新文章
一种对 3D 旋转矩阵的直观理解2025-10-11
Coroutines in C2025-09-25
在 C 语言中写类型安全的泛型容器2025-07-08
Basics of Diffusion2025-05-03
在 arm host 上使用 gdb 调试 amd64 程序2025-04-08
最新评论
加载中...
分类
  • CS8
    • CP1
    • CV1
    • Graphics1
    • PL4
      • c/cpp4
    • Web1
  • oi50
标签
脚本 三元环计数 LCT C 背包 env JavaScript 编译原理 构造 FWT gdb 圆反演 vim 学习笔记 数学 四元环计数 dp 科技 换根 dp 平衡树 Bézout定理 tarjan 斜率优化 数论 单调队列 brainfuck 总结 线性代数 HTML Compiler 积性函数 cpp 势能分析 图论 卷积 三角剖分 抽象代数 bitset 四边形不等式 树
归档
  • 十月 2025 1
  • 九月 2025 1
  • 七月 2025 1
  • 五月 2025 1
  • 四月 2025 1
  • 十一月 2024 2
  • 六月 2024 1
  • 四月 2024 2
网站信息
文章数目 :
67
本站总字数 :
82.9k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2020 - 2025 By Cauphenuny
框架 Hexo|主题 Butterfly
搜索
数据加载中