Application of C++ in Computational Cancer Modeling
things: alter its type or divide into two cells of the same type. • Formally, this model is a stochastic process (Markov process). Birth event Mutation event Random Time 𝑢12 𝜆1A computational model things: alter its type or divide into two cells of the same type. • Formally, this model is a stochastic process (Markov process). Birth event Mutation event Random Time ~ Exp mutation rate growth0 码力 | 47 页 | 1.14 MB | 6 月前0.03
The Roles of Symmetry And Orthogonality In Design• Unnecessarily complex processing • Example: Eager-compute or Lazy-compute that introduces stochastic time-shifting of computation and resource contention, or which encourages branch mis-prediction0 码力 | 151 页 | 3.20 MB | 6 月前3
Is std::mdspan a Zero-overhead Abstraction? - Oleksandr Bakirov - CppConLoop: Header=BB0_2 Depth=1 inc r11 add r10, rax add r8, r9 add rdx, rcx cmp r11, rdi je .LBB0_6 .LBB0_2: # =>This Loop Header: Depth=1 test rsi, rsi je .LBB0_5 xor ebx, ebx .LBB0_4: # Parent Loop BB0_2 Depth=1 movss xmm0, dword ptr [rdx + 4*rbx] addss xmm0, dword ptr [r8 + 4*rbx] movss dword ptr [r10 + 4*rbx] je .LBB0_6 .LBB0_2: # =>This Loop Header: Depth=1 test rcx, rcx je .LBB0_5 xor ebx, ebx .LBB0_4: # Parent Loop BB0_2 Depth=1 movss xmm0, dword ptr [rdi + 4*rbx]0 码力 | 75 页 | 1.04 MB | 6 月前3
Compile-Time ValidationValidation int depth = 1; /*...*/ if (auto action = try_get(actions[i]); action) { if(is_end_scope(action)) depth--; if(is_start_scope(action)) depth++; } Track how vector ptrs_depth; /*...*/ if (action.command == ptr_command::init) { ptrs_depth.resize(max(action.self_id + 1, ptrs_depth.size()), 0); ptrs_depth[action.self_id] = depth; } else if (action (action.command == ptr_command::assign) { if (ptrs_depth[action.self_id] < ptrs_depth[action.other_id]) { return validation_error(i, lifetime_too_short{}); } } Validate that a pointer in an outer scope 0 码力 | 137 页 | 1.70 MB | 6 月前3
Back to Basics Almost Always Vectorworks too! void useStack(int depth) { char buffer[1024]; // Allocate 1 KB on the stack std::cout << "Depth: " << depth << " Address: " << &buffer << std::endl; useStack(depth + 1); } int main() { 2_stack_limit.cpp -o 2_stack_limit Depth: 2 Address: 0x16f55e978 Depth: 3 Address: 0x16f55e548 ... Depth: 7802 Address: 0x16ed652f8 Depth: 7803 Address: 0x16ed64ec8 Depth: 7804 Address: 0x16ed64a98 /bin/sh:0 码力 | 62 页 | 4.86 MB | 6 月前3
3D Graphics for DummiesDummies Depth / Texturing / Applying Surfaces59 3D Graphics for Dummies Rasterization: Depth60 3D Graphics for Dummies Rasterization: Depth61 3D Graphics for Dummies Rasterization: Depth62 3D Graphics Graphics for Dummies Rasterization: Depth63 3D Graphics for Dummies Depth / Texturing / Applying Surfaces64 3D Graphics for Dummies Rasterization: Texturing / Applying Surfaces65 3D Graphics for Dummies 3D Graphics for Dummies DEMO Depth Buffer76 3D Graphics for Dummies DEMO Model: “Frankie” large scale, with surface collision77 3D Graphics for Dummies DEMO Depth Buffer, large scale, with surface0 码力 | 79 页 | 4.61 MB | 6 月前3
Template Metaprogramming: Type Traitsbeginner oriented: shallow depth, slow current 3Intended Audience • Beginner/Intermediate • Gentle entry: swimming pool to river • Part 1 is beginner oriented: shallow depth, slow current • Not necessarily Beginner/Intermediate • Gentle entry: swimming pool to river • Part 1 is beginner oriented: shallow depth, slow current • Not necessarily beginner to C++, but beginner to traditional template metaprogramming Beginner/Intermediate • Gentle entry: swimming pool to river • Part 1 is beginner oriented: shallow depth, slow current • Not necessarily beginner to C++, but beginner to traditional template metaprogramming0 码力 | 403 页 | 5.30 MB | 6 月前3
Embracing CTADtalk • In depth explanation of CTAD rules • Extensive tutorial on writing your own deduction guides • CTAD take down or CTAD glorification • PopcornWhat isn’t in this talk • In depth explanation talk • In depth explanation of CTAD rules • Extensive tutorial on writing your own deduction guides • CTAD take down or CTAD glorification • PopcornWhat isn’t in this talk • In depth explanation deduction guides • CTAD take down or CTAD sales pitch • PopcornWhat isn’t in this talk • In depth explanation of CTAD rules • Extensive tutorial on writing your own deduction guides • CTAD take0 码力 | 98 页 | 4.62 MB | 6 月前3
Tracy: A Profiler You Don't Want to Missscope • zone name is inferred (enclosing function name) • zone color is automatic (per-thread and depth) 22 thread timeline zone statistics Tracy Zoning 101 int foo() { ZoneScoped; ... ... } } • ZoneScopedN • only 1 zone per scope • zone color is automatic (per-thread and depth) • you name it! (must be persistent string literal)• ZoneScoped[N]C • only 1 zone per scope • you the host application (e.g., a plugin)• ZoneScopedS(depth) • captures callstack • adds some overhead • useful for code exploration • max callstack depth: ~60 • (enables selective sampling profiling) • ZoneScoped[N|C|S]0 码力 | 84 页 | 8.70 MB | 6 月前3
Tracy: A Profiler You Don't Want to Missscope • zone name is inferred (enclosing function name) • zone color is automatic (per-thread and depth) 22 thread timeline zone statistics Tracy Zoning 101 int foo() { ZoneScoped; ... ... } } • ZoneScopedN • only 1 zone per scope • zone color is automatic (per-thread and depth) • you name it! (must be persistent string literal)• ZoneScoped[N]C • only 1 zone per scope • you the host application (e.g., a plugin)• ZoneScopedS(depth) • captures callstack • adds some overhead • useful for code exploration • max callstack depth: ~60 • (enables selective sampling profiling) • ZoneScoped[N|C|S]0 码力 | 85 页 | 6.51 MB | 6 月前3
共 96 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













