You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+30-1Lines changed: 30 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -334,7 +334,7 @@ The codebase is organized into several modules, each handling different aspects
334
334
335
335
4.**Analyze Results:**
336
336
337
-
- If instead you want to re-solve for an existing solution from a `DataFrame` dataset, you can use the `solve_row`function.
337
+
- If instead you want to re-solve for an existing solution from a `DataFrame` dataset, you can use the `solve_row`method.
338
338
339
339
```julia
340
340
#- Activate the project
@@ -366,6 +366,35 @@ The codebase is organized into several modules, each handling different aspects
366
366
LpA = sol[:LpA]
367
367
```
368
368
369
+
**For High-Throughput Analysis:** If you need to solve many rows from the same `DataFrame` efficiently, use the performant version that returns a solver function. This is useful for loops or parallel processing.
370
+
371
+
```julia
372
+
# Create a performant solver function (one-time setup)
373
+
fast_solver =solve_row(results_df, fullrn)
374
+
375
+
# Now solve any row efficiently
376
+
sol1 =fast_solver(1) # Solve first row
377
+
sol42 =fast_solver(42) # Solve 42nd row
378
+
sol1000 =fast_solver(1000) # Solve 1000th row
379
+
380
+
# Perfect for loops or parallel processing
381
+
solutions = [fast_solver(i) for i in1:100] # Solve first 100 rows
382
+
383
+
# Or for specific analysis
384
+
interesting_rows = [1, 42, 100, 500, 1000]
385
+
interesting_solutions = [fast_solver(i) for i in interesting_rows]
386
+
```
387
+
388
+
**Performance Benefits:**
389
+
-**One-time setup cost**: Column extraction and setter creation happens once
390
+
-**Fast repeated solves**: Uses pre-extracted matrices and SymbolicIndexingInterface
391
+
-**Thread-safe**: Each call creates isolated problem copies
392
+
-**Memory efficient**: Uses `view()` for zero-copy matrix access
393
+
394
+
**When to Use Each Method:**
395
+
-**`solve_row(row, odeprob)`**: For interactive use, single solves, or when you have individual rows
396
+
-**`solve_row(df, odeprob)`**: For high-throughput workflows, loops, or when you need to solve many rows from the same DataFrame
0 commit comments