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-11-20|CSPLc/cpp
又刷到个奇技淫巧,看完两眼一黑了 https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html switch 是能跳转到任意控制流内部的,利用这个特性,可以在 C 中实现一个 generator 朴素的 generator 需要实现一个显式的状态机 1234567891011121314151617181920212223242526int 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:; ...
在 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
标签
抽象代数 计算几何 伴随矩阵 区间dp 四元环计数 C++ 欧拉公式 分块 换根 dp dp 势能分析 树的重心 gdb CS 行列式 env Bézout定理 积性函数 线性代数 tarjan 多项式 Generic Programming 二分图 平衡树 数据结构 凸壳 brainfuck 四边形不等式 HNOI2021 C 学习记录 根号分治 treap FWT 科技 vim JavaScript LCT 图论 SAM
归档
  • 十月 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
搜索
数据加载中