@@ -72,6 +72,50 @@ static void BM_Std_Access(benchmark::State& state) {
7272 }
7373}
7474
75+ static void BM_Bowen_SetBit (benchmark::State& state) {
76+ size_t n = state.range (0 );
77+ for (auto _ : state) {
78+ bitvector<> bv (n);
79+ for (size_t i=0 ;i<n;++i) {
80+ bv.set_bit (i, static_cast <bool >(i & 1 ));
81+ }
82+ benchmark::ClobberMemory ();
83+ }
84+ }
85+
86+ static void BM_Std_SetBit (benchmark::State& state) {
87+ size_t n = state.range (0 );
88+ for (auto _ : state) {
89+ std::vector<bool > bv (n);
90+ for (size_t i=0 ;i<n;++i) {
91+ bv[i] = static_cast <bool >(i & 1 );
92+ }
93+ benchmark::ClobberMemory ();
94+ }
95+ }
96+
97+ static void BM_Bowen_SetBitTrueUnsafe (benchmark::State& state) {
98+ size_t n = state.range (0 );
99+ for (auto _ : state) {
100+ bitvector<> bv (n);
101+ for (size_t i=0 ;i<n;++i) {
102+ bv.set_bit_true_unsafe (i);
103+ }
104+ benchmark::ClobberMemory ();
105+ }
106+ }
107+
108+ static void BM_Std_SetBitTrueUnsafe (benchmark::State& state) {
109+ size_t n = state.range (0 );
110+ for (auto _ : state) {
111+ std::vector<bool > bv (n);
112+ for (size_t i=0 ;i<n;++i) {
113+ bv[i] = true ;
114+ }
115+ benchmark::ClobberMemory ();
116+ }
117+ }
118+
75119
76120static void BM_Bowen_SetBitTrue6 (benchmark::State& state) {
77121 size_t n = state.range (0 );
@@ -149,6 +193,10 @@ BENCHMARK(BM_Bowen_PushBack)->Arg(1<<20)->MinTime(5.0);
149193BENCHMARK (BM_Std_PushBack)->Arg(1 <<20 )->MinTime(5.0 );
150194BENCHMARK (BM_Bowen_Access)->Arg(1 <<20 )->MinTime(5.0 );
151195BENCHMARK (BM_Std_Access)->Arg(1 <<20 )->MinTime(5.0 );
196+ BENCHMARK (BM_Bowen_SetBit)->Arg(1 <<20 )->MinTime(5.0 );
197+ BENCHMARK (BM_Std_SetBit)->Arg(1 <<20 )->MinTime(5.0 );
198+ BENCHMARK (BM_Bowen_SetBitTrueUnsafe)->Arg(1 <<20 )->MinTime(5.0 );
199+ BENCHMARK (BM_Std_SetBitTrueUnsafe)->Arg(1 <<20 )->MinTime(5.0 );
152200BENCHMARK (BM_Bowen_SetBitTrue6)->Arg(1 <<20 )->MinTime(5.0 );
153201BENCHMARK (BM_Std_SetBitTrue6)->Arg(1 <<20 )->MinTime(5.0 );
154202BENCHMARK (BM_Bowen_QSetBitTrue6V2)->Arg(1 <<20 )->MinTime(5.0 );
0 commit comments