354 long int nComp = nmin;
356 NS_ASSERT_MSG(nComp <= 0 && n <= nmax,
357 "Integer " << n <<
" is outside range [" << nmin <<
", " << nmax <<
"]");
360 int range = nmax - nmin + 1;
371 int requiredBits = std::ceil(std::log(range) / std::log(2.0));
373 switch (requiredBits)
376 SerializeBitset<1>(std::bitset<1>(n));
379 SerializeBitset<2>(std::bitset<2>(n));
382 SerializeBitset<3>(std::bitset<3>(n));
385 SerializeBitset<4>(std::bitset<4>(n));
388 SerializeBitset<5>(std::bitset<5>(n));
391 SerializeBitset<6>(std::bitset<6>(n));
394 SerializeBitset<7>(std::bitset<7>(n));
397 SerializeBitset<8>(std::bitset<8>(n));
400 SerializeBitset<9>(std::bitset<9>(n));
403 SerializeBitset<10>(std::bitset<10>(n));
406 SerializeBitset<11>(std::bitset<11>(n));
409 SerializeBitset<12>(std::bitset<12>(n));
412 SerializeBitset<13>(std::bitset<13>(n));
415 SerializeBitset<14>(std::bitset<14>(n));
418 SerializeBitset<15>(std::bitset<15>(n));
421 SerializeBitset<16>(std::bitset<16>(n));
424 SerializeBitset<17>(std::bitset<17>(n));
427 SerializeBitset<18>(std::bitset<18>(n));
430 SerializeBitset<19>(std::bitset<19>(n));
433 SerializeBitset<20>(std::bitset<20>(n));
436 std::cout <<
"SerializeInteger " << requiredBits <<
" Out of range!!" << std::endl;
587 int range = nmax - nmin + 1;
594 int requiredBits = std::ceil(std::log(range) / std::log(2.0));
596 std::bitset<1> bitsRead1;
597 std::bitset<2> bitsRead2;
598 std::bitset<3> bitsRead3;
599 std::bitset<4> bitsRead4;
600 std::bitset<5> bitsRead5;
601 std::bitset<6> bitsRead6;
602 std::bitset<7> bitsRead7;
603 std::bitset<8> bitsRead8;
604 std::bitset<9> bitsRead9;
605 std::bitset<10> bitsRead10;
606 std::bitset<11> bitsRead11;
607 std::bitset<12> bitsRead12;
608 std::bitset<13> bitsRead13;
609 std::bitset<14> bitsRead14;
610 std::bitset<15> bitsRead15;
611 std::bitset<16> bitsRead16;
612 std::bitset<17> bitsRead17;
613 std::bitset<18> bitsRead18;
614 std::bitset<19> bitsRead19;
615 std::bitset<20> bitsRead20;
617 switch (requiredBits)
620 bIterator = DeserializeBitset<1>(&bitsRead1, bIterator);
621 *n = (int)bitsRead1.to_ulong();
624 bIterator = DeserializeBitset<2>(&bitsRead2, bIterator);
625 *n = (int)bitsRead2.to_ulong();
628 bIterator = DeserializeBitset<3>(&bitsRead3, bIterator);
629 *n = (int)bitsRead3.to_ulong();
632 bIterator = DeserializeBitset<4>(&bitsRead4, bIterator);
633 *n = (int)bitsRead4.to_ulong();
636 bIterator = DeserializeBitset<5>(&bitsRead5, bIterator);
637 *n = (int)bitsRead5.to_ulong();
640 bIterator = DeserializeBitset<6>(&bitsRead6, bIterator);
641 *n = (int)bitsRead6.to_ulong();
644 bIterator = DeserializeBitset<7>(&bitsRead7, bIterator);
645 *n = (int)bitsRead7.to_ulong();
648 bIterator = DeserializeBitset<8>(&bitsRead8, bIterator);
649 *n = (int)bitsRead8.to_ulong();
652 bIterator = DeserializeBitset<9>(&bitsRead9, bIterator);
653 *n = (int)bitsRead9.to_ulong();
656 bIterator = DeserializeBitset<10>(&bitsRead10, bIterator);
657 *n = (int)bitsRead10.to_ulong();
660 bIterator = DeserializeBitset<11>(&bitsRead11, bIterator);
661 *n = (int)bitsRead11.to_ulong();
664 bIterator = DeserializeBitset<12>(&bitsRead12, bIterator);
665 *n = (int)bitsRead12.to_ulong();
668 bIterator = DeserializeBitset<13>(&bitsRead13, bIterator);
669 *n = (int)bitsRead13.to_ulong();
672 bIterator = DeserializeBitset<14>(&bitsRead14, bIterator);
673 *n = (int)bitsRead14.to_ulong();
676 bIterator = DeserializeBitset<15>(&bitsRead15, bIterator);
677 *n = (int)bitsRead15.to_ulong();
680 bIterator = DeserializeBitset<16>(&bitsRead16, bIterator);
681 *n = (int)bitsRead16.to_ulong();
684 bIterator = DeserializeBitset<17>(&bitsRead17, bIterator);
685 *n = (int)bitsRead17.to_ulong();
688 bIterator = DeserializeBitset<18>(&bitsRead18, bIterator);
689 *n = (int)bitsRead18.to_ulong();
692 bIterator = DeserializeBitset<19>(&bitsRead19, bIterator);
693 *n = (int)bitsRead19.to_ulong();
696 bIterator = DeserializeBitset<20>(&bitsRead20, bIterator);
697 *n = (int)bitsRead20.to_ulong();
700 std::cout <<
"SerializeInteger Out of range!!" << std::endl;