@@ -10,7 +10,6 @@ using PsychometricsBazaarBase.Integrators
1010using PsychometricsBazaarBase. Optimizers
1111using Optim
1212using Random
13- using ResumableFunctions
1413
1514struct DummyAbilityEstimator <: AbilityEstimator
1615 val:: Any
@@ -24,7 +23,7 @@ const optimizers_1d = [
2423 FunctionOptimizer (OneDimOptimOptimizer (- 6.0 , 6.0 , NelderMead ()))
2524]
2625const integrators_1d = [
27- FunctionIntegrator (QuadGKIntegrator (- 6 , 6 , 5 )),
26+ FunctionIntegrator (QuadGKIntegrator (lo = - 6.0 , hi = 6.0 , order = 5 )),
2827 FunctionIntegrator (FixedGKIntegrator (- 6 , 6 , 80 ))
2928]
3029const ability_estimators_1d = [
@@ -46,47 +45,39 @@ const criteria_1d = [
4645 ((), (stuff) -> RandomNextItemRule ())
4746]
4847
49- @resumable function _get_stuffs (needed)
48+ function _get_stuffs (needed)
5049 if :est in needed
51- for (extra_needed, mk_est) in ability_estimators_1d
50+ return (
51+ (; stuff... , est = mk_est (stuff))
52+ for (extra_needed, mk_est) in ability_estimators_1d
5253 for stuff in _get_stuffs (setdiff (needed, Set ((:est ,))) ∪ extra_needed)
53- x = (; stuff... , est = mk_est (stuff))
54- @yield x
55- end
56- end
57- return
54+ )
5855 end
5956 if :integrator in needed
60- for new_integrator in integrators_1d
57+ return (
58+ (; stuff... , integrator = new_integrator)
59+ for new_integrator in integrators_1d
6160 for stuff in _get_stuffs (setdiff (needed, Set ((:integrator ,))))
62- x = (; stuff... , integrator = new_integrator)
63- @yield x
64- end
65- end
66- return
61+ )
6762 end
6863 if :optimizer in needed
69- pop! (needed, :optimizer )
70- for new_optimizer in optimizers_1d
64+ return (
65+ (; stuff... , optimizer = new_optimizer)
66+ for new_optimizer in optimizers_1d
7167 for stuff in _get_stuffs (setdiff (needed, Set ((:optimizer ,))))
72- x = (; stuff... , optimizer = new_optimizer)
73- @yield x
74- end
75- end
76- return
68+ )
7769 end
78- x = NamedTuple ()
79- @yield x
80- return
70+ return [NamedTuple ()]
8171end
8272
83- @resumable function get_stuffs (needed)
84- add_dummy_est = ! (:est in needed)
85- for stuff in _get_stuffs (needed)
86- if add_dummy_est
87- stuff = (; stuff... , est = DummyAbilityEstimator (0.0 ))
88- end
89- @yield stuff
73+ function get_stuffs (needed)
74+ if ! (:est in needed)
75+ return (
76+ (; stuff... , est = DummyAbilityEstimator (0.0 ))
77+ for stuff in _get_stuffs (needed)
78+ )
79+ else
80+ return _get_stuffs (needed)
9081 end
9182end
9283
0 commit comments