From cdf575ef4327edcd2b1b735fec6950ccaeb67dda Mon Sep 17 00:00:00 2001 From: Pavel Solikov Date: Sun, 18 Jun 2017 14:19:02 +0300 Subject: [PATCH 01/11] new version --- README.md | 1 + ns-3-allinone/constants.pyc | Bin 581 -> 581 bytes ns-3-allinone/netanim/.hgtags | 5 - ns-3-allinone/netanim/Makefile | 1107 + ns-3-allinone/netanim/NetAnim | Bin 0 -> 2519528 bytes ns-3-allinone/netanim/NetAnimOnline.pro | 169 + ns-3-allinone/netanim/animatormode.cpp | 211 +- ns-3-allinone/netanim/animatormode.h | 17 +- ns-3-allinone/netanim/animpropertybrowser.cpp | 8 +- ns-3-allinone/netanim/animxmlparser.cpp | 222 +- ns-3-allinone/netanim/animxmlparser.h | 3 + ns-3-allinone/netanim/fatal-error.h | 151 +- ns-3-allinone/netanim/libNetAnimOnline.so | 1 + ns-3-allinone/netanim/libNetAnimOnline.so.1 | 1 + ns-3-allinone/netanim/libNetAnimOnline.so.1.0 | 1 + .../netanim/libNetAnimOnline.so.1.0.0 | Bin 0 -> 3017712 bytes ns-3-allinone/netanim/log-macros-disabled.h | 61 + ns-3-allinone/netanim/log-macros-enabled.h | 249 + ns-3-allinone/netanim/log.cpp | 4 +- ns-3-allinone/netanim/log.h | 2 +- ns-3-allinone/netanim/netanim.cpp | 3 +- ns-3-allinone/netanim/netanim.h | 2 +- ns-3-allinone/netanim/output.cpp | 138385 +++++++++++++++ .../netanim/qrc_qtpropertybrowser.cpp | 489 - ns-3-allinone/netanim/timevalue.h | 16 +- ns-3-allinone/ns-3-dev/AUTHORS | 1 - ns-3-allinone/ns-3-dev/RELEASE_NOTES | 1 - .../ns-3-dev/doc/manual/source/logging.rst | 54 - ns-3-allinone/ns-3-dev/doc/models/Makefile | 1 - ns-3-allinone/ns-3-dev/first.xml | 46 + ns-3-allinone/ns-3-dev/log | 1 + ns-3-allinone/ns-3-dev/out.txt | 381 + ns-3-allinone/ns-3-dev/scratch/first.cc | 76 + .../ns-3-dev/scratch/grid-animation.cc | 8 +- ns-3-allinone/ns-3-dev/scratch/third.cc | 190 + .../src/core/bindings/callbacks_list.py | 5 +- .../src/core/bindings/modulegen__gcc_LP64.py | 1164 +- .../src/core/model/default-simulator-impl.cc | 112 +- .../src/core/model/default-simulator-impl.h | 16 +- ns-3-allinone/ns-3-dev/src/core/model/log.cc | 18 - ns-3-allinone/ns-3-dev/src/core/model/log.h | 42 +- .../helper/planetlab-fd-net-device-helper.cc | 2 +- .../helper/tap-fd-net-device-helper.cc | 2 +- .../src/lte/examples/lena-cc-helper.cc | 4 +- .../src/lte/model/fdmt-ff-mac-scheduler.h | 4 +- .../src/lte/model/fdtbfq-ff-mac-scheduler.h | 4 +- .../ns-3-dev/src/lte/model/lte-ccm-rrc-sap.h | 2 +- .../ns-3-dev/src/lte/model/lte-enb-rrc.cc | 2 +- .../ns-3-dev/src/lte/model/lte-rlc-um.h | 2 +- .../src/netanim/model/animation-interface.cc | 6476 +- .../src/netanim/model/animation-interface.h | 99 +- ns-3-allinone/ns-3-dev/src/netanim/wscript | 5 +- .../src/network/bindings/callbacks_list.py | 19 +- .../network/bindings/modulegen__gcc_LP64.py | 2568 +- .../src/network/utils/drop-tail-queue.cc | 2 - .../src/network/utils/drop-tail-queue.h | 21 +- .../utils/net-device-queue-interface.cc | 6 + .../utils/net-device-queue-interface.h | 39 +- .../ns-3-dev/src/network/utils/queue.cc | 6 + .../ns-3-dev/src/network/utils/queue.h | 51 +- .../bindings/modulegen__gcc_ILP32.py | 8 +- .../bindings/modulegen__gcc_LP64.py | 8 +- .../ns-3-dev/src/traffic-control/doc/red.rst | 2 +- .../ns-3-dev/src/wifi/model/ap-wifi-mac.cc | 6 +- .../src/wifi/model/block-ack-manager.cc | 16 +- .../ns-3-dev/src/wifi/model/dcf-manager.cc | 6 +- .../src/wifi/model/ht-capabilities.cc | 10 +- .../ns-3-dev/src/wifi/model/ht-capabilities.h | 6 - .../src/wifi/model/interference-helper.cc | 10 +- .../src/wifi/model/interference-helper.h | 4 +- .../ns-3-dev/src/wifi/model/mac-low.cc | 18 +- .../ns-3-dev/src/wifi/model/mac-tx-middle.cc | 8 +- .../src/wifi/model/regular-wifi-mac.cc | 44 +- .../src/wifi/model/vht-capabilities.cc | 5 - .../ns-3-dev/src/wifi/model/wifi-mac-queue.cc | 27 +- .../ns-3-dev/src/wifi/model/wifi-mac-queue.h | 2 - ns-3-allinone/ns-3-dev/third.xml | 794 + ns-3-allinone/ns-3-dev/wscript | 3 + ns-3-allinone/util.pyc | Bin 1154 -> 1154 bytes 79 files changed, 147280 insertions(+), 6235 deletions(-) create mode 100644 README.md delete mode 100644 ns-3-allinone/netanim/.hgtags create mode 100644 ns-3-allinone/netanim/Makefile create mode 100755 ns-3-allinone/netanim/NetAnim create mode 100644 ns-3-allinone/netanim/NetAnimOnline.pro create mode 120000 ns-3-allinone/netanim/libNetAnimOnline.so create mode 120000 ns-3-allinone/netanim/libNetAnimOnline.so.1 create mode 120000 ns-3-allinone/netanim/libNetAnimOnline.so.1.0 create mode 100755 ns-3-allinone/netanim/libNetAnimOnline.so.1.0.0 create mode 100644 ns-3-allinone/netanim/log-macros-disabled.h create mode 100644 ns-3-allinone/netanim/log-macros-enabled.h create mode 100644 ns-3-allinone/netanim/output.cpp delete mode 100644 ns-3-allinone/netanim/qrc_qtpropertybrowser.cpp create mode 100644 ns-3-allinone/ns-3-dev/first.xml create mode 100644 ns-3-allinone/ns-3-dev/log create mode 100644 ns-3-allinone/ns-3-dev/out.txt create mode 100644 ns-3-allinone/ns-3-dev/scratch/first.cc create mode 100644 ns-3-allinone/ns-3-dev/scratch/third.cc create mode 100644 ns-3-allinone/ns-3-dev/third.xml diff --git a/README.md b/README.md new file mode 100644 index 0000000..1da313c --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# NetAnim-online diff --git a/ns-3-allinone/constants.pyc b/ns-3-allinone/constants.pyc index acfbb99d8a2755ee7221f103923756cd234d7a0c..b77fa2ca889b877be8af8901e27810cbe3f6e3e2 100644 GIT binary patch delta 22 ecmX@ga+HOg`7?Ee@UjV7}(*#iJnrv|V9 delta 22 dcmX@ga+HOg`7;Y3{2Aco? diff --git a/ns-3-allinone/netanim/.hgtags b/ns-3-allinone/netanim/.hgtags deleted file mode 100644 index 26e71c1..0000000 --- a/ns-3-allinone/netanim/.hgtags +++ /dev/null @@ -1,5 +0,0 @@ -c9866156ebf307130a6c091d80f50b24a7758699 netanim-3.105 -ed6c14ca9a59528e15a8d5cb02086c91cbfb621f netanim-3.106 -ed6c14ca9a59528e15a8d5cb02086c91cbfb621f netanim-3.106 -43f60d3846ece3eac19d2f5c1fb7e2e1dc9cf8c4 netanim-3.106 -03c27126bae3e60b4ebbeb70354ce93ae4853fdf netanim-3.107 diff --git a/ns-3-allinone/netanim/Makefile b/ns-3-allinone/netanim/Makefile new file mode 100644 index 0000000..de22f93 --- /dev/null +++ b/ns-3-allinone/netanim/Makefile @@ -0,0 +1,1107 @@ +############################################################################# +# Makefile for building: libNetAnimOnline.so.1.0.0 +# Generated by qmake (2.01a) (Qt 4.8.7) on: ?? ??? 12 19:40:34 2017 +# Project: NetAnimOnline.pro +# Template: lib +# Command: /usr/lib/x86_64-linux-gnu/qt4/bin/qmake -o Makefile NetAnimOnline.pro +############################################################################# + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DNS3_LOG_ENABLE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED +CFLAGS = -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -m64 -pipe -std=c++11 -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Iqtpropertybrowser/src -I/usr/local/include/ns3-dev -I. +LINK = g++ +LFLAGS = -m64 -Wl,-rpath='$$ORIGIN' -Wl,-rpath-link='$$ORIGIN' -Wl,-z,origin -lc -Wl,-O1 -shared -Wl,-soname,libNetAnimOnline.so.1 +LIBS = $(SUBLIBS) -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread +AR = ar cqs +RANLIB = +QMAKE = /usr/lib/x86_64-linux-gnu/qt4/bin/qmake +TAR = tar -cf +COMPRESS = gzip -9f +COPY = cp -f +SED = sed +COPY_FILE = $(COPY) +COPY_DIR = $(COPY) -r +STRIP = strip +INSTALL_FILE = install -m 644 -p +INSTALL_DIR = $(COPY_DIR) +INSTALL_PROGRAM = install -m 755 -p +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = main.cpp \ + log.cpp \ + fatal-error.cpp \ + fatal-impl.cpp \ + logqt.cpp \ + resizeableitem.cpp \ + animnode.cpp \ + animatorscene.cpp \ + animpacket.cpp \ + netanim.cpp \ + animatormode.cpp \ + mode.cpp \ + animxmlparser.cpp \ + animatorview.cpp \ + animlink.cpp \ + animresource.cpp \ + statsview.cpp \ + statsmode.cpp \ + routingxmlparser.cpp \ + routingstatsscene.cpp \ + interfacestatsscene.cpp \ + flowmonxmlparser.cpp \ + flowmonstatsscene.cpp \ + textbubble.cpp \ + qtpropertybrowser/src/qtvariantproperty.cpp \ + qtpropertybrowser/src/qttreepropertybrowser.cpp \ + qtpropertybrowser/src/qtpropertymanager.cpp \ + qtpropertybrowser/src/qtpropertybrowserutils.cpp \ + qtpropertybrowser/src/qtpropertybrowser.cpp \ + qtpropertybrowser/src/qtgroupboxpropertybrowser.cpp \ + qtpropertybrowser/src/qteditorfactory.cpp \ + qtpropertybrowser/src/qtbuttonpropertybrowser.cpp \ + animpropertybrowser.cpp \ + qtpropertybrowser/src/filepathmanager.cpp \ + qtpropertybrowser/src/fileeditfactory.cpp \ + qtpropertybrowser/src/fileedit.cpp \ + packetsmode.cpp \ + packetsview.cpp \ + packetsscene.cpp \ + graphpacket.cpp \ + table.cpp \ + countertablesscene.cpp \ + qcustomplot.cpp moc_animatorscene.cpp \ + moc_animpacket.cpp \ + moc_netanim.cpp \ + moc_animatormode.cpp \ + moc_statsmode.cpp \ + moc_qtpropertybrowserutils_p.cpp \ + moc_animpropertybrowser.cpp \ + moc_filepathmanager.cpp \ + moc_fileeditfactory.cpp \ + moc_fileedit.cpp \ + moc_packetsmode.cpp \ + moc_table.cpp \ + moc_qcustomplot.cpp \ + qrc_resources.cpp \ + qrc_qtpropertybrowser.cpp +OBJECTS = main.o \ + log.o \ + fatal-error.o \ + fatal-impl.o \ + logqt.o \ + resizeableitem.o \ + animnode.o \ + animatorscene.o \ + animpacket.o \ + netanim.o \ + animatormode.o \ + mode.o \ + animxmlparser.o \ + animatorview.o \ + animlink.o \ + animresource.o \ + statsview.o \ + statsmode.o \ + routingxmlparser.o \ + routingstatsscene.o \ + interfacestatsscene.o \ + flowmonxmlparser.o \ + flowmonstatsscene.o \ + textbubble.o \ + qtvariantproperty.o \ + qttreepropertybrowser.o \ + qtpropertymanager.o \ + qtpropertybrowserutils.o \ + qtpropertybrowser.o \ + qtgroupboxpropertybrowser.o \ + qteditorfactory.o \ + qtbuttonpropertybrowser.o \ + animpropertybrowser.o \ + filepathmanager.o \ + fileeditfactory.o \ + fileedit.o \ + packetsmode.o \ + packetsview.o \ + packetsscene.o \ + graphpacket.o \ + table.o \ + countertablesscene.o \ + qcustomplot.o \ + moc_animatorscene.o \ + moc_animpacket.o \ + moc_netanim.o \ + moc_animatormode.o \ + moc_statsmode.o \ + moc_qtpropertybrowserutils_p.o \ + moc_animpropertybrowser.o \ + moc_filepathmanager.o \ + moc_fileeditfactory.o \ + moc_fileedit.o \ + moc_packetsmode.o \ + moc_table.o \ + moc_qcustomplot.o \ + qrc_resources.o \ + qrc_qtpropertybrowser.o +DIST = /usr/share/qt4/mkspecs/common/unix.conf \ + /usr/share/qt4/mkspecs/common/linux.conf \ + /usr/share/qt4/mkspecs/common/gcc-base.conf \ + /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ + /usr/share/qt4/mkspecs/common/g++-base.conf \ + /usr/share/qt4/mkspecs/common/g++-unix.conf \ + /usr/share/qt4/mkspecs/qconfig.pri \ + /usr/share/qt4/mkspecs/features/qt_functions.prf \ + /usr/share/qt4/mkspecs/features/qt_config.prf \ + /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ + /usr/share/qt4/mkspecs/features/default_pre.prf \ + /usr/share/qt4/mkspecs/features/release.prf \ + /usr/share/qt4/mkspecs/features/default_post.prf \ + /usr/share/qt4/mkspecs/features/shared.prf \ + /usr/share/qt4/mkspecs/features/dll.prf \ + /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ + /usr/share/qt4/mkspecs/features/warn_on.prf \ + /usr/share/qt4/mkspecs/features/qt.prf \ + /usr/share/qt4/mkspecs/features/unix/thread.prf \ + /usr/share/qt4/mkspecs/features/moc.prf \ + /usr/share/qt4/mkspecs/features/resources.prf \ + /usr/share/qt4/mkspecs/features/uic.prf \ + /usr/share/qt4/mkspecs/features/yacc.prf \ + /usr/share/qt4/mkspecs/features/lex.prf \ + /usr/share/qt4/mkspecs/features/include_source_dir.prf \ + NetAnimOnline.pro +QMAKE_TARGET = NetAnimOnline +DESTDIR = +TARGET = libNetAnimOnline.so.1.0.0 +TARGETA = libNetAnimOnline.a +TARGETD = libNetAnimOnline.so.1.0.0 +TARGET0 = libNetAnimOnline.so +TARGET1 = libNetAnimOnline.so.1 +TARGET2 = libNetAnimOnline.so.1.0 + +first: all +####### Implicit rules + +.SUFFIXES: .o .c .cpp .cc .cxx .C + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.C.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" + +####### Build rules + +all: Makefile $(TARGET) + +$(TARGET): $(OBJECTS) $(SUBLIBS) $(OBJCOMP) + -$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP) + -ln -s $(TARGET) $(TARGET0) + -ln -s $(TARGET) $(TARGET1) + -ln -s $(TARGET) $(TARGET2) + + + +staticlib: $(TARGETA) + +$(TARGETA): $(OBJECTS) $(OBJCOMP) + -$(DEL_FILE) $(TARGETA) + $(AR) $(TARGETA) $(OBJECTS) + +Makefile: NetAnimOnline.pro /usr/share/qt4/mkspecs/linux-g++-64/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \ + /usr/share/qt4/mkspecs/common/linux.conf \ + /usr/share/qt4/mkspecs/common/gcc-base.conf \ + /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ + /usr/share/qt4/mkspecs/common/g++-base.conf \ + /usr/share/qt4/mkspecs/common/g++-unix.conf \ + /usr/share/qt4/mkspecs/qconfig.pri \ + /usr/share/qt4/mkspecs/features/qt_functions.prf \ + /usr/share/qt4/mkspecs/features/qt_config.prf \ + /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ + /usr/share/qt4/mkspecs/features/default_pre.prf \ + /usr/share/qt4/mkspecs/features/release.prf \ + /usr/share/qt4/mkspecs/features/default_post.prf \ + /usr/share/qt4/mkspecs/features/shared.prf \ + /usr/share/qt4/mkspecs/features/dll.prf \ + /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ + /usr/share/qt4/mkspecs/features/warn_on.prf \ + /usr/share/qt4/mkspecs/features/qt.prf \ + /usr/share/qt4/mkspecs/features/unix/thread.prf \ + /usr/share/qt4/mkspecs/features/moc.prf \ + /usr/share/qt4/mkspecs/features/resources.prf \ + /usr/share/qt4/mkspecs/features/uic.prf \ + /usr/share/qt4/mkspecs/features/yacc.prf \ + /usr/share/qt4/mkspecs/features/lex.prf \ + /usr/share/qt4/mkspecs/features/include_source_dir.prf \ + /usr/lib/x86_64-linux-gnu/libQtGui.prl \ + /usr/lib/x86_64-linux-gnu/libQtCore.prl + $(QMAKE) -o Makefile NetAnimOnline.pro +/usr/share/qt4/mkspecs/common/unix.conf: +/usr/share/qt4/mkspecs/common/linux.conf: +/usr/share/qt4/mkspecs/common/gcc-base.conf: +/usr/share/qt4/mkspecs/common/gcc-base-unix.conf: +/usr/share/qt4/mkspecs/common/g++-base.conf: +/usr/share/qt4/mkspecs/common/g++-unix.conf: +/usr/share/qt4/mkspecs/qconfig.pri: +/usr/share/qt4/mkspecs/features/qt_functions.prf: +/usr/share/qt4/mkspecs/features/qt_config.prf: +/usr/share/qt4/mkspecs/features/exclusive_builds.prf: +/usr/share/qt4/mkspecs/features/default_pre.prf: +/usr/share/qt4/mkspecs/features/release.prf: +/usr/share/qt4/mkspecs/features/default_post.prf: +/usr/share/qt4/mkspecs/features/shared.prf: +/usr/share/qt4/mkspecs/features/dll.prf: +/usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf: +/usr/share/qt4/mkspecs/features/warn_on.prf: +/usr/share/qt4/mkspecs/features/qt.prf: +/usr/share/qt4/mkspecs/features/unix/thread.prf: +/usr/share/qt4/mkspecs/features/moc.prf: +/usr/share/qt4/mkspecs/features/resources.prf: +/usr/share/qt4/mkspecs/features/uic.prf: +/usr/share/qt4/mkspecs/features/yacc.prf: +/usr/share/qt4/mkspecs/features/lex.prf: +/usr/share/qt4/mkspecs/features/include_source_dir.prf: +/usr/lib/x86_64-linux-gnu/libQtGui.prl: +/usr/lib/x86_64-linux-gnu/libQtCore.prl: +qmake: FORCE + @$(QMAKE) -o Makefile NetAnimOnline.pro + +dist: + @$(CHK_DIR_EXISTS) .tmp/NetAnimOnline1.0.0 || $(MKDIR) .tmp/NetAnimOnline1.0.0 + $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/NetAnimOnline1.0.0/ && $(COPY_FILE) --parents log.h fatal-error.h fatal-impl.h abort.h assert.h logqt.h animatorconstants.h resizeableitem.h animnode.h common.h animatorscene.h timevalue.h animpacket.h netanim.h animatormode.h animatorview.h mode.h animxmlparser.h animevent.h animlink.h animresource.h statsview.h statsmode.h statisticsconstants.h routingxmlparser.h routingstatsscene.h interfacestatsscene.h flowmonxmlparser.h flowmonstatsscene.h textbubble.h qtpropertybrowser/src/QtVariantPropertyManager qtpropertybrowser/src/QtVariantProperty qtpropertybrowser/src/qtvariantproperty.h qtpropertybrowser/src/QtVariantEditorFactory qtpropertybrowser/src/QtTreePropertyBrowser qtpropertybrowser/src/qttreepropertybrowser.h qtpropertybrowser/src/QtTimePropertyManager qtpropertybrowser/src/QtTimeEditFactory qtpropertybrowser/src/QtStringPropertyManager qtpropertybrowser/src/QtSpinBoxFactory qtpropertybrowser/src/QtSliderFactory qtpropertybrowser/src/QtSizePropertyManager qtpropertybrowser/src/QtSizePolicyPropertyManager qtpropertybrowser/src/QtSizeFPropertyManager qtpropertybrowser/src/QtScrollBarFactory qtpropertybrowser/src/QtRectPropertyManager qtpropertybrowser/src/QtRectFPropertyManager qtpropertybrowser/src/qtpropertymanager.h qtpropertybrowser/src/qtpropertybrowserutils_p.h qtpropertybrowser/src/qtpropertybrowser.h qtpropertybrowser/src/QtProperty qtpropertybrowser/src/QtPointPropertyManager qtpropertybrowser/src/QtPointFPropertyManager qtpropertybrowser/src/QtLocalePropertyManager qtpropertybrowser/src/QtLineEditFactory qtpropertybrowser/src/QtKeySequencePropertyManager qtpropertybrowser/src/QtKeySequenceEditorFactory qtpropertybrowser/src/QtIntPropertyManager qtpropertybrowser/src/QtGroupPropertyManager qtpropertybrowser/src/QtGroupBoxPropertyBrowser qtpropertybrowser/src/qtgroupboxpropertybrowser.h qtpropertybrowser/src/QtFontPropertyManager qtpropertybrowser/src/QtFontEditorFactory qtpropertybrowser/src/QtFlagPropertyManager qtpropertybrowser/src/QtEnumPropertyManager qtpropertybrowser/src/QtEnumEditorFactory qtpropertybrowser/src/qteditorfactory.h qtpropertybrowser/src/QtDoubleSpinBoxFactory qtpropertybrowser/src/QtDoublePropertyManager qtpropertybrowser/src/QtDateTimePropertyManager qtpropertybrowser/src/QtDateTimeEditFactory qtpropertybrowser/src/QtDatePropertyManager qtpropertybrowser/src/QtDateEditFactory qtpropertybrowser/src/QtCursorPropertyManager qtpropertybrowser/src/QtCursorEditorFactory qtpropertybrowser/src/QtColorPropertyManager qtpropertybrowser/src/QtColorEditorFactory qtpropertybrowser/src/QtCheckBoxFactory qtpropertybrowser/src/QtCharPropertyManager qtpropertybrowser/src/QtCharEditorFactory qtpropertybrowser/src/QtButtonPropertyBrowser qtpropertybrowser/src/qtbuttonpropertybrowser.h qtpropertybrowser/src/QtBrowserItem qtpropertybrowser/src/QtBoolPropertyManager qtpropertybrowser/src/QtAbstractPropertyManager qtpropertybrowser/src/QtAbstractPropertyBrowser qtpropertybrowser/src/QtAbstractEditorFactoryBase animpropertybrowser.h qtpropertybrowser/src/filepathmanager.h qtpropertybrowser/src/fileeditfactory.h qtpropertybrowser/src/fileedit.h packetsmode.h packetsview.h packetsscene.h graphpacket.h table.h countertablesscene.h qcustomplot.h .tmp/NetAnimOnline1.0.0/ && $(COPY_FILE) --parents resources.qrc qtpropertybrowser/src/qtpropertybrowser.qrc .tmp/NetAnimOnline1.0.0/ && $(COPY_FILE) --parents main.cpp log.cpp fatal-error.cpp fatal-impl.cpp logqt.cpp resizeableitem.cpp animnode.cpp animatorscene.cpp animpacket.cpp netanim.cpp animatormode.cpp mode.cpp animxmlparser.cpp animatorview.cpp animlink.cpp animresource.cpp statsview.cpp statsmode.cpp routingxmlparser.cpp routingstatsscene.cpp interfacestatsscene.cpp flowmonxmlparser.cpp flowmonstatsscene.cpp textbubble.cpp qtpropertybrowser/src/qtvariantproperty.cpp qtpropertybrowser/src/qttreepropertybrowser.cpp qtpropertybrowser/src/qtpropertymanager.cpp qtpropertybrowser/src/qtpropertybrowserutils.cpp qtpropertybrowser/src/qtpropertybrowser.cpp qtpropertybrowser/src/qtgroupboxpropertybrowser.cpp qtpropertybrowser/src/qteditorfactory.cpp qtpropertybrowser/src/qtbuttonpropertybrowser.cpp animpropertybrowser.cpp qtpropertybrowser/src/filepathmanager.cpp qtpropertybrowser/src/fileeditfactory.cpp qtpropertybrowser/src/fileedit.cpp packetsmode.cpp packetsview.cpp packetsscene.cpp graphpacket.cpp table.cpp countertablesscene.cpp qcustomplot.cpp .tmp/NetAnimOnline1.0.0/ && (cd `dirname .tmp/NetAnimOnline1.0.0` && $(TAR) NetAnimOnline1.0.0.tar NetAnimOnline1.0.0 && $(COMPRESS) NetAnimOnline1.0.0.tar) && $(MOVE) `dirname .tmp/NetAnimOnline1.0.0`/NetAnimOnline1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/NetAnimOnline1.0.0 + + +clean:compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +####### Sub-libraries + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) $(TARGET0) $(TARGET1) $(TARGET2) $(TARGETA) + -$(DEL_FILE) Makefile + + +check: first + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +compiler_moc_header_make_all: moc_animatorscene.cpp moc_animpacket.cpp moc_netanim.cpp moc_animatormode.cpp moc_statsmode.cpp moc_qtvariantproperty.cpp moc_qttreepropertybrowser.cpp moc_qtpropertymanager.cpp moc_qtpropertybrowserutils_p.cpp moc_qtpropertybrowser.cpp moc_qtgroupboxpropertybrowser.cpp moc_qteditorfactory.cpp moc_qtbuttonpropertybrowser.cpp moc_animpropertybrowser.cpp moc_filepathmanager.cpp moc_fileeditfactory.cpp moc_fileedit.cpp moc_packetsmode.cpp moc_table.cpp moc_qcustomplot.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_animatorscene.cpp moc_animpacket.cpp moc_netanim.cpp moc_animatormode.cpp moc_statsmode.cpp moc_qtvariantproperty.cpp moc_qttreepropertybrowser.cpp moc_qtpropertymanager.cpp moc_qtpropertybrowserutils_p.cpp moc_qtpropertybrowser.cpp moc_qtgroupboxpropertybrowser.cpp moc_qteditorfactory.cpp moc_qtbuttonpropertybrowser.cpp moc_animpropertybrowser.cpp moc_filepathmanager.cpp moc_fileeditfactory.cpp moc_fileedit.cpp moc_packetsmode.cpp moc_table.cpp moc_qcustomplot.cpp +moc_animatorscene.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animnode.h \ + resizeableitem.h \ + animatorconstants.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorscene.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) animatorscene.h -o moc_animatorscene.cpp + +moc_animpacket.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animatorconstants.h \ + timevalue.h \ + animevent.h \ + animpacket.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) animpacket.h -o moc_animpacket.cpp + +moc_netanim.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h \ + netanim.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) netanim.h -o moc_netanim.cpp + +moc_animatormode.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + animatormode.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) animatormode.h -o moc_animatormode.cpp + +moc_statsmode.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h \ + statsmode.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) statsmode.h -o moc_statsmode.cpp + +moc_qtvariantproperty.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtvariantproperty.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtvariantproperty.h -o moc_qtvariantproperty.cpp + +moc_qttreepropertybrowser.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qttreepropertybrowser.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qttreepropertybrowser.h -o moc_qttreepropertybrowser.cpp + +moc_qtpropertymanager.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtpropertymanager.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtpropertymanager.h -o moc_qtpropertymanager.cpp + +moc_qtpropertybrowserutils_p.cpp: qtpropertybrowser/src/qtpropertybrowserutils_p.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtpropertybrowserutils_p.h -o moc_qtpropertybrowserutils_p.cpp + +moc_qtpropertybrowser.cpp: qtpropertybrowser/src/qtpropertybrowser.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtpropertybrowser.h -o moc_qtpropertybrowser.cpp + +moc_qtgroupboxpropertybrowser.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtgroupboxpropertybrowser.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtgroupboxpropertybrowser.h -o moc_qtgroupboxpropertybrowser.cpp + +moc_qteditorfactory.cpp: qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qteditorfactory.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qteditorfactory.h -o moc_qteditorfactory.cpp + +moc_qtbuttonpropertybrowser.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtbuttonpropertybrowser.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtbuttonpropertybrowser.h -o moc_qtbuttonpropertybrowser.cpp + +moc_animpropertybrowser.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + table.h \ + animpropertybrowser.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) animpropertybrowser.h -o moc_animpropertybrowser.cpp + +moc_filepathmanager.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/filepathmanager.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/filepathmanager.h -o moc_filepathmanager.cpp + +moc_fileeditfactory.cpp: qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/filepathmanager.h \ + qtpropertybrowser/src/fileeditfactory.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/fileeditfactory.h -o moc_fileeditfactory.cpp + +moc_fileedit.cpp: qtpropertybrowser/src/fileedit.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/fileedit.h -o moc_fileedit.cpp + +moc_packetsmode.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h \ + table.h \ + packetsmode.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) packetsmode.h -o moc_packetsmode.cpp + +moc_table.cpp: common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + table.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) table.h -o moc_table.cpp + +moc_qcustomplot.cpp: qcustomplot.h + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qcustomplot.h -o moc_qcustomplot.cpp + +compiler_rcc_make_all: qrc_resources.cpp qrc_qtpropertybrowser.cpp +compiler_rcc_clean: + -$(DEL_FILE) qrc_resources.cpp qrc_qtpropertybrowser.cpp +qrc_resources.cpp: resources.qrc \ + animator_wirelesscircles.svg \ + animator_zoomout.svg \ + animator_nodesysid.svg \ + animator_showpackets.svg \ + battery_icon_4.png \ + animator_reload.svg \ + battery_icon_0.png \ + animator_zoomin.svg \ + animator_pause.svg \ + battery_icon_3.png \ + animator_play.svg \ + animator_fileopen.svg \ + animator_packetstats.svg \ + animator_step.svg \ + battery_icon_2.png \ + netanim-logo.png \ + animator_grid.svg \ + animator_mouseposition.png \ + animator_nodeid.svg \ + battery_icon_1.png + /usr/lib/x86_64-linux-gnu/qt4/bin/rcc -name resources resources.qrc -o qrc_resources.cpp + +qrc_qtpropertybrowser.cpp: qtpropertybrowser/src/qtpropertybrowser.qrc \ + qtpropertybrowser/src/images/cursor-vsplit.png \ + qtpropertybrowser/src/images/cursor-sizeh.png \ + qtpropertybrowser/src/images/cursor-forbidden.png \ + qtpropertybrowser/src/images/cursor-sizev.png \ + qtpropertybrowser/src/images/cursor-whatsthis.png \ + qtpropertybrowser/src/images/cursor-busy.png \ + qtpropertybrowser/src/images/cursor-wait.png \ + qtpropertybrowser/src/images/cursor-ibeam.png \ + qtpropertybrowser/src/images/cursor-hand.png \ + qtpropertybrowser/src/images/cursor-openhand.png \ + qtpropertybrowser/src/images/cursor-sizeall.png \ + qtpropertybrowser/src/images/cursor-sizef.png \ + qtpropertybrowser/src/images/cursor-sizeb.png \ + qtpropertybrowser/src/images/cursor-hsplit.png \ + qtpropertybrowser/src/images/cursor-cross.png \ + qtpropertybrowser/src/images/cursor-closedhand.png \ + qtpropertybrowser/src/images/cursor-arrow.png \ + qtpropertybrowser/src/images/cursor-uparrow.png + /usr/lib/x86_64-linux-gnu/qt4/bin/rcc -name qtpropertybrowser qtpropertybrowser/src/qtpropertybrowser.qrc -o qrc_qtpropertybrowser.cpp + +compiler_image_collection_make_all: qmake_image_collection.cpp +compiler_image_collection_clean: + -$(DEL_FILE) qmake_image_collection.cpp +compiler_moc_source_make_all: qttreepropertybrowser.moc qtpropertymanager.moc qteditorfactory.moc +compiler_moc_source_clean: + -$(DEL_FILE) qttreepropertybrowser.moc qtpropertymanager.moc qteditorfactory.moc +qttreepropertybrowser.moc: qtpropertybrowser/src/qttreepropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + moc_qttreepropertybrowser.cpp \ + qtpropertybrowser/src/qttreepropertybrowser.cpp + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qttreepropertybrowser.cpp -o qttreepropertybrowser.moc + +qtpropertymanager.moc: qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowserutils_p.h \ + moc_qtpropertymanager.cpp \ + qtpropertybrowser/src/qtpropertymanager.cpp + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qtpropertymanager.cpp -o qtpropertymanager.moc + +qteditorfactory.moc: qtpropertybrowser/src/qteditorfactory.h \ + qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowserutils_p.h \ + moc_qteditorfactory.cpp \ + qtpropertybrowser/src/qteditorfactory.cpp + /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) qtpropertybrowser/src/qteditorfactory.cpp -o qteditorfactory.moc + +compiler_uic_make_all: +compiler_uic_clean: +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_moc_source_clean + +####### Compile + +main.o: main.cpp netanim.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp + +log.o: log.cpp log.h \ + assert.h \ + fatal-error.h \ + fatal-impl.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o log.o log.cpp + +fatal-error.o: fatal-error.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o fatal-error.o fatal-error.cpp + +fatal-impl.o: fatal-impl.cpp fatal-impl.h \ + log.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o fatal-impl.o fatal-impl.cpp + +logqt.o: logqt.cpp logqt.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animpacket.h \ + animatorconstants.h \ + timevalue.h \ + animevent.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o logqt.o logqt.cpp + +resizeableitem.o: resizeableitem.cpp resizeableitem.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animatorconstants.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o resizeableitem.o resizeableitem.cpp + +animnode.o: animnode.cpp animnode.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + resizeableitem.h \ + animatorconstants.h \ + animresource.h \ + animatorview.h \ + animatorscene.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animnode.o animnode.cpp + +animatorscene.o: animatorscene.cpp animatorscene.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animnode.h \ + resizeableitem.h \ + animatorconstants.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + animatormode.h \ + mode.h \ + animxmlparser.h \ + animpropertybrowser.h \ + table.h \ + logqt.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animatorscene.o animatorscene.cpp + +animpacket.o: animpacket.cpp animpacket.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animatorconstants.h \ + timevalue.h \ + animevent.h \ + animnode.h \ + resizeableitem.h \ + animatorview.h \ + animatorscene.h \ + animlink.h \ + logqt.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animpacket.o animpacket.cpp + +netanim.o: netanim.cpp netanim.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + animxmlparser.h \ + statsmode.h \ + packetsmode.h \ + table.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o netanim.o netanim.cpp + +animatormode.o: animatormode.cpp common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + animresource.h \ + statsmode.h \ + animpropertybrowser.h \ + table.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animatormode.o animatormode.cpp + +mode.o: mode.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mode.o mode.cpp + +animxmlparser.o: animxmlparser.cpp common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animxmlparser.h \ + animevent.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animatorview.h \ + mode.h \ + animresource.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animxmlparser.o animxmlparser.cpp + +animatorview.o: animatorview.cpp animatorview.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animatorconstants.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animatorview.o animatorview.cpp + +animlink.o: animlink.cpp animnode.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + resizeableitem.h \ + animatorconstants.h \ + animlink.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animlink.o animlink.cpp + +animresource.o: animresource.cpp animresource.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animresource.o animresource.cpp + +statsview.o: statsview.cpp statsview.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o statsview.o statsview.cpp + +statsmode.o: statsmode.cpp animatorscene.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + animnode.h \ + resizeableitem.h \ + animatorconstants.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatormode.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + routingxmlparser.h \ + statisticsconstants.h \ + statsmode.h \ + statsview.h \ + interfacestatsscene.h \ + routingstatsscene.h \ + flowmonstatsscene.h \ + flowmonxmlparser.h \ + countertablesscene.h \ + table.h \ + qcustomplot.h \ + textbubble.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o statsmode.o statsmode.cpp + +routingxmlparser.o: routingxmlparser.cpp routingxmlparser.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + statsmode.h \ + mode.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + animxmlparser.h \ + routingstatsscene.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o routingxmlparser.o routingxmlparser.cpp + +routingstatsscene.o: routingstatsscene.cpp routingstatsscene.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + timevalue.h \ + routingxmlparser.h \ + textbubble.h \ + statisticsconstants.h \ + statsmode.h \ + mode.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + animxmlparser.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o routingstatsscene.o routingstatsscene.cpp + +interfacestatsscene.o: interfacestatsscene.cpp interfacestatsscene.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + textbubble.h \ + statisticsconstants.h \ + statsmode.h \ + mode.h \ + animlink.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + animxmlparser.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o interfacestatsscene.o interfacestatsscene.cpp + +flowmonxmlparser.o: flowmonxmlparser.cpp common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + flowmonxmlparser.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + flowmonstatsscene.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o flowmonxmlparser.o flowmonxmlparser.cpp + +flowmonstatsscene.o: flowmonstatsscene.cpp statsmode.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h \ + flowmonstatsscene.h \ + timevalue.h \ + flowmonxmlparser.h \ + statisticsconstants.h \ + textbubble.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o flowmonstatsscene.o flowmonstatsscene.cpp + +textbubble.o: textbubble.cpp textbubble.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o textbubble.o textbubble.cpp + +qtvariantproperty.o: qtpropertybrowser/src/qtvariantproperty.cpp qtpropertybrowser/src/qtvariantproperty.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qteditorfactory.h \ + moc_qtvariantproperty.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtvariantproperty.o qtpropertybrowser/src/qtvariantproperty.cpp + +qttreepropertybrowser.o: qtpropertybrowser/src/qttreepropertybrowser.cpp qtpropertybrowser/src/qttreepropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + moc_qttreepropertybrowser.cpp \ + qttreepropertybrowser.moc + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qttreepropertybrowser.o qtpropertybrowser/src/qttreepropertybrowser.cpp + +qtpropertymanager.o: qtpropertybrowser/src/qtpropertymanager.cpp qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowserutils_p.h \ + moc_qtpropertymanager.cpp \ + qtpropertymanager.moc + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtpropertymanager.o qtpropertybrowser/src/qtpropertymanager.cpp + +qtpropertybrowserutils.o: qtpropertybrowser/src/qtpropertybrowserutils.cpp qtpropertybrowser/src/qtpropertybrowserutils_p.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtpropertybrowserutils.o qtpropertybrowser/src/qtpropertybrowserutils.cpp + +qtpropertybrowser.o: qtpropertybrowser/src/qtpropertybrowser.cpp qtpropertybrowser/src/qtpropertybrowser.h \ + moc_qtpropertybrowser.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtpropertybrowser.o qtpropertybrowser/src/qtpropertybrowser.cpp + +qtgroupboxpropertybrowser.o: qtpropertybrowser/src/qtgroupboxpropertybrowser.cpp qtpropertybrowser/src/qtgroupboxpropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + moc_qtgroupboxpropertybrowser.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtgroupboxpropertybrowser.o qtpropertybrowser/src/qtgroupboxpropertybrowser.cpp + +qteditorfactory.o: qtpropertybrowser/src/qteditorfactory.cpp qtpropertybrowser/src/qteditorfactory.h \ + qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowserutils_p.h \ + moc_qteditorfactory.cpp \ + qteditorfactory.moc + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qteditorfactory.o qtpropertybrowser/src/qteditorfactory.cpp + +qtbuttonpropertybrowser.o: qtpropertybrowser/src/qtbuttonpropertybrowser.cpp qtpropertybrowser/src/qtbuttonpropertybrowser.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + moc_qtbuttonpropertybrowser.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtbuttonpropertybrowser.o qtpropertybrowser/src/qtbuttonpropertybrowser.cpp + +animpropertybrowser.o: animpropertybrowser.cpp animpropertybrowser.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + table.h \ + animnode.h \ + resizeableitem.h \ + animatorconstants.h \ + animatormode.h \ + animatorscene.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + animresource.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o animpropertybrowser.o animpropertybrowser.cpp + +filepathmanager.o: qtpropertybrowser/src/filepathmanager.cpp qtpropertybrowser/src/filepathmanager.h \ + qtpropertybrowser/src/qtpropertybrowser.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o filepathmanager.o qtpropertybrowser/src/filepathmanager.cpp + +fileeditfactory.o: qtpropertybrowser/src/fileeditfactory.cpp qtpropertybrowser/src/fileeditfactory.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/filepathmanager.h \ + qtpropertybrowser/src/fileedit.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o fileeditfactory.o qtpropertybrowser/src/fileeditfactory.cpp + +fileedit.o: qtpropertybrowser/src/fileedit.cpp qtpropertybrowser/src/fileedit.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o fileedit.o qtpropertybrowser/src/fileedit.cpp + +packetsmode.o: packetsmode.cpp packetsmode.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + mode.h \ + table.h \ + packetsview.h \ + packetsscene.h \ + textbubble.h \ + animatormode.h \ + animatorconstants.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + animxmlparser.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o packetsmode.o packetsmode.cpp + +packetsview.o: packetsview.cpp packetsview.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + packetsscene.h \ + textbubble.h \ + table.h \ + logqt.h \ + animpacket.h \ + animatorconstants.h \ + timevalue.h \ + animevent.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o packetsview.o packetsview.cpp + +packetsscene.o: packetsscene.cpp packetsscene.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + textbubble.h \ + table.h \ + logqt.h \ + animpacket.h \ + animatorconstants.h \ + timevalue.h \ + animevent.h \ + graphpacket.h \ + animatormode.h \ + animatorscene.h \ + animnode.h \ + resizeableitem.h \ + animlink.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + packetsmode.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o packetsscene.o packetsscene.cpp + +graphpacket.o: graphpacket.cpp graphpacket.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + packetsview.h \ + logqt.h \ + animpacket.h \ + animatorconstants.h \ + timevalue.h \ + animevent.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o graphpacket.o graphpacket.cpp + +table.o: table.cpp table.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o table.o table.cpp + +countertablesscene.o: countertablesscene.cpp countertablesscene.h \ + common.h \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + table.h \ + qcustomplot.h \ + statisticsconstants.h \ + animnode.h \ + resizeableitem.h \ + animatorconstants.h \ + animatormode.h \ + animatorscene.h \ + animlink.h \ + timevalue.h \ + animpacket.h \ + animevent.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + statsview.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o countertablesscene.o countertablesscene.cpp + +qcustomplot.o: qcustomplot.cpp qcustomplot.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qcustomplot.o qcustomplot.cpp + +moc_animatorscene.o: moc_animatorscene.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_animatorscene.o moc_animatorscene.cpp + +moc_animpacket.o: moc_animpacket.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_animpacket.o moc_animpacket.cpp + +moc_netanim.o: moc_netanim.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_netanim.o moc_netanim.cpp + +moc_animatormode.o: moc_animatormode.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_animatormode.o moc_animatormode.cpp + +moc_statsmode.o: moc_statsmode.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_statsmode.o moc_statsmode.cpp + +moc_qtpropertybrowserutils_p.o: moc_qtpropertybrowserutils_p.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qtpropertybrowserutils_p.o moc_qtpropertybrowserutils_p.cpp + +moc_animpropertybrowser.o: moc_animpropertybrowser.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_animpropertybrowser.o moc_animpropertybrowser.cpp + +moc_filepathmanager.o: moc_filepathmanager.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_filepathmanager.o moc_filepathmanager.cpp + +moc_fileeditfactory.o: moc_fileeditfactory.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_fileeditfactory.o moc_fileeditfactory.cpp + +moc_fileedit.o: moc_fileedit.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_fileedit.o moc_fileedit.cpp + +moc_packetsmode.o: moc_packetsmode.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_packetsmode.o moc_packetsmode.cpp + +moc_table.o: moc_table.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_table.o moc_table.cpp + +moc_qcustomplot.o: moc_qcustomplot.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qcustomplot.o moc_qcustomplot.cpp + +qrc_resources.o: qrc_resources.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_resources.o qrc_resources.cpp + +qrc_qtpropertybrowser.o: qrc_qtpropertybrowser.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_qtpropertybrowser.o qrc_qtpropertybrowser.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/ns-3-allinone/netanim/NetAnim b/ns-3-allinone/netanim/NetAnim new file mode 100755 index 0000000000000000000000000000000000000000..740a693a8eb0d961d5d30b51cb5781a96d2c5623 GIT binary patch literal 2519528 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

Yy1W=T~f8cb+ORx7YZ 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

N1YIlgHM#a6S}`N#>?R3RgV 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℘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

fM=ulPuhb)j)NvgevV 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 z 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≫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

axgU)uf1<}LH6C>XV)n-bx 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

>gH&iMD9^WVDul=}>y_WUuK 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 S{SW_ve9_}S$tAwL{{IU#YDQ21 literal 0 HcmV?d00001 diff --git a/ns-3-allinone/netanim/NetAnimOnline.pro b/ns-3-allinone/netanim/NetAnimOnline.pro new file mode 100644 index 0000000..4a3ef26 --- /dev/null +++ b/ns-3-allinone/netanim/NetAnimOnline.pro @@ -0,0 +1,169 @@ +greaterThan(QT_MAJOR_VERSION, 4) { + QT += widgets printsupport +} + +SOURCES += \ + main.cpp \ + log.cpp \ + fatal-error.cpp \ + fatal-impl.cpp \ + logqt.cpp \ + resizeableitem.cpp \ + animnode.cpp \ + animatorscene.cpp \ + animpacket.cpp \ + netanim.cpp \ + animatormode.cpp \ + mode.cpp \ + animxmlparser.cpp \ + animatorview.cpp \ + animlink.cpp \ + animresource.cpp \ + statsview.cpp \ + statsmode.cpp \ + routingxmlparser.cpp \ + routingstatsscene.cpp \ + interfacestatsscene.cpp \ + flowmonxmlparser.cpp \ + flowmonstatsscene.cpp \ + textbubble.cpp \ + qtpropertybrowser/src/qtvariantproperty.cpp \ + qtpropertybrowser/src/qttreepropertybrowser.cpp \ + qtpropertybrowser/src/qtpropertymanager.cpp \ + qtpropertybrowser/src/qtpropertybrowserutils.cpp \ + qtpropertybrowser/src/qtpropertybrowser.cpp \ + qtpropertybrowser/src/qtgroupboxpropertybrowser.cpp \ + qtpropertybrowser/src/qteditorfactory.cpp \ + qtpropertybrowser/src/qtbuttonpropertybrowser.cpp \ + animpropertybrowser.cpp \ + qtpropertybrowser/src/filepathmanager.cpp \ + qtpropertybrowser/src/fileeditfactory.cpp \ + qtpropertybrowser/src/fileedit.cpp \ + packetsmode.cpp \ + packetsview.cpp \ + packetsscene.cpp \ + graphpacket.cpp \ + table.cpp \ + countertablesscene.cpp \ + qcustomplot.cpp +HEADERS += \ + log.h \ + fatal-error.h \ + fatal-impl.h \ + abort.h \ + assert.h \ + logqt.h \ + animatorconstants.h \ + resizeableitem.h \ + animnode.h \ + common.h \ + animatorscene.h \ + timevalue.h \ + animpacket.h \ + netanim.h \ + animatormode.h \ + animatorview.h \ + mode.h \ + animxmlparser.h \ + animevent.h \ + animlink.h \ + animresource.h \ + statsview.h \ + statsmode.h \ + statisticsconstants.h \ + routingxmlparser.h \ + routingstatsscene.h \ + interfacestatsscene.h \ + flowmonxmlparser.h \ + flowmonstatsscene.h \ + textbubble.h \ + qtpropertybrowser/src/QtVariantPropertyManager \ + qtpropertybrowser/src/QtVariantProperty \ + qtpropertybrowser/src/qtvariantproperty.h \ + qtpropertybrowser/src/QtVariantEditorFactory \ + qtpropertybrowser/src/QtTreePropertyBrowser \ + qtpropertybrowser/src/qttreepropertybrowser.h \ + qtpropertybrowser/src/QtTimePropertyManager \ + qtpropertybrowser/src/QtTimeEditFactory \ + qtpropertybrowser/src/QtStringPropertyManager \ + qtpropertybrowser/src/QtSpinBoxFactory \ + qtpropertybrowser/src/QtSliderFactory \ + qtpropertybrowser/src/QtSizePropertyManager \ + qtpropertybrowser/src/QtSizePolicyPropertyManager \ + qtpropertybrowser/src/QtSizeFPropertyManager \ + qtpropertybrowser/src/QtScrollBarFactory \ + qtpropertybrowser/src/QtRectPropertyManager \ + qtpropertybrowser/src/QtRectFPropertyManager \ + qtpropertybrowser/src/qtpropertymanager.h \ + qtpropertybrowser/src/qtpropertybrowserutils_p.h \ + qtpropertybrowser/src/qtpropertybrowser.h \ + qtpropertybrowser/src/QtProperty \ + qtpropertybrowser/src/QtPointPropertyManager \ + qtpropertybrowser/src/QtPointFPropertyManager \ + qtpropertybrowser/src/QtLocalePropertyManager \ + qtpropertybrowser/src/QtLineEditFactory \ + qtpropertybrowser/src/QtKeySequencePropertyManager \ + qtpropertybrowser/src/QtKeySequenceEditorFactory \ + qtpropertybrowser/src/QtIntPropertyManager \ + qtpropertybrowser/src/QtGroupPropertyManager \ + qtpropertybrowser/src/QtGroupBoxPropertyBrowser \ + qtpropertybrowser/src/qtgroupboxpropertybrowser.h \ + qtpropertybrowser/src/QtFontPropertyManager \ + qtpropertybrowser/src/QtFontEditorFactory \ + qtpropertybrowser/src/QtFlagPropertyManager \ + qtpropertybrowser/src/QtEnumPropertyManager \ + qtpropertybrowser/src/QtEnumEditorFactory \ + qtpropertybrowser/src/qteditorfactory.h \ + qtpropertybrowser/src/QtDoubleSpinBoxFactory \ + qtpropertybrowser/src/QtDoublePropertyManager \ + qtpropertybrowser/src/QtDateTimePropertyManager \ + qtpropertybrowser/src/QtDateTimeEditFactory \ + qtpropertybrowser/src/QtDatePropertyManager \ + qtpropertybrowser/src/QtDateEditFactory \ + qtpropertybrowser/src/QtCursorPropertyManager \ + qtpropertybrowser/src/QtCursorEditorFactory \ + qtpropertybrowser/src/QtColorPropertyManager \ + qtpropertybrowser/src/QtColorEditorFactory \ + qtpropertybrowser/src/QtCheckBoxFactory \ + qtpropertybrowser/src/QtCharPropertyManager \ + qtpropertybrowser/src/QtCharEditorFactory \ + qtpropertybrowser/src/QtButtonPropertyBrowser \ + qtpropertybrowser/src/qtbuttonpropertybrowser.h \ + qtpropertybrowser/src/QtBrowserItem \ + qtpropertybrowser/src/QtBoolPropertyManager \ + qtpropertybrowser/src/QtAbstractPropertyManager \ + qtpropertybrowser/src/QtAbstractPropertyBrowser \ + qtpropertybrowser/src/QtAbstractEditorFactoryBase \ + animpropertybrowser.h \ + qtpropertybrowser/src/filepathmanager.h \ + qtpropertybrowser/src/fileeditfactory.h \ + qtpropertybrowser/src/fileedit.h \ + packetsmode.h \ + packetsview.h \ + packetsscene.h \ + graphpacket.h \ + table.h \ + countertablesscene.h \ + qcustomplot.h + +TEMPLATE = lib + +INCLUDEPATH += qtpropertybrowser/src +INCLUDEPATH += /usr/local/include/ns3-dev +DEFINES += NS3_LOG_ENABLE + +QMAKE_CXXFLAGS += -std=c++11 +QMAKE_LFLAGS += -Wl,-rpath=\'\$\$ORIGIN\' -Wl,-rpath-link=\'\$\$ORIGIN\' -Wl,-z,origin -lc + +RESOURCES += \ + resources.qrc \ + qtpropertybrowser/src/qtpropertybrowser.qrc + +OTHER_FILES += \ + qtpropertybrowser/src/qtpropertybrowser.pri + +macx { + CONFIG -= app_bundle + QMAKESPEC = macx-g++ +} + diff --git a/ns-3-allinone/netanim/animatormode.cpp b/ns-3-allinone/netanim/animatormode.cpp index bf68455..786e835 100644 --- a/ns-3-allinone/netanim/animatormode.cpp +++ b/ns-3-allinone/netanim/animatormode.cpp @@ -22,11 +22,13 @@ #include "animatormode.h" #include "animatorscene.h" #include "animatorview.h" -#include "animxmlparser.h" #include "animlink.h" #include "animresource.h" #include "statsmode.h" #include "animpropertybrowser.h" +// #include "/home/pavel/repos2/ns-3-allinone/ns-3-dev/src/core/model/default-simulator-impl.h" +#include "ns3/simulator.h" +#include "ns3/default-simulator-impl.h" @@ -54,13 +56,20 @@ AnimatorMode::AnimatorMode (): m_pauseAtTime (65535), m_pauseAtTimeTriggered (false), m_backgroundExists (false), + m_onlineMode(false), m_parsingXMLDialog (0), m_transientDialog (0) { + m_animxmlparser = new Animxmlparser (""); init (); } +AnimatorMode::~AnimatorMode () +{ + delete m_animxmlparser; +} + void AnimatorMode::init () { @@ -98,6 +107,12 @@ AnimatorMode::getInstance () return pAnimatorMode; } +Animxmlparser * +AnimatorMode::getAnimxmlparser () +{ + return m_animxmlparser; +} + void AnimatorMode::openPropertyBroswer () { @@ -150,8 +165,8 @@ AnimatorMode::setControlDefaults () // Scene elements if any - - AnimatorScene::getInstance ()->setSceneInfoText ("Please select an XML trace file using the file load button on the top-left corner", true); + if (!m_onlineMode) + // AnimatorScene::getInstance ()->setSceneInfoText ("Please select an XML trace file using the file load button on the top-left corner", true); enableAllToolButtons (false); @@ -680,18 +695,22 @@ AnimatorMode::fastForward (qreal t) bool simTimeSliderEnabled = m_simulationTimeSlider->isEnabled (); m_simulationTimeSlider->setEnabled (false); externalPauseEvent (); + if (!m_onlineMode) showTransientDialog (true, "Please Wait. Parsing all events"); m_playButton->setEnabled (false); //AnimatorScene::getInstance ()->invalidate (); while (m_currentTime ::TimeValueResult_t result; + m_events.getNextGOOD (result); + if (m_state == SIMULATION_COMPLETE || result != m_events.GOOD || ns3::Simulator::IsFinished ()) break; - //NS_LOG_DEBUG ("Fast Forwarding dispatch"); + // NS_LOG_DEBUG ("Fast Forwarding dispatch"); dispatchEvents (); } m_fastForwarding = false; m_playButton->setEnabled (true); + if (!m_onlineMode) showTransientDialog (false); if (currentState == PLAYING) { @@ -726,7 +745,7 @@ AnimatorMode::setCurrentTime (qreal currentTime) //NS_LOG_DEBUG ("Events:" << m_events.toString()); fastForward (currentTime); if (m_playing) - m_updateRateTimer->start (); + m_updateRateTimer->start (); m_simulationTimeSlider->setValue (currentTime); m_events.setCurrentTime (currentTime); m_currentTime = currentTime; @@ -776,14 +795,71 @@ AnimatorMode::setMaxSimulationTime (double maxTime) void AnimatorMode::addAnimEvent (qreal t, AnimEvent * event) { + m_eventObtained = true; + if (m_nextTs > t) + { + m_nextTs = t; + } m_events.add (t, event); } +bool +AnimatorMode::parseOnline() +{ + // showParsingXmlDialog (true); + // m_rxCount = parser.getRxCount (); + // m_rxCount = 0; //?? + // setProgressBarRange (m_rxCount); + // parser.doParse (); + m_lastPacketEventTime = m_animxmlparser->getLastPacketEventTime (); + m_thousandthPacketTime = m_animxmlparser->getThousandthPacketTime (); + m_firstPacketEventTime = m_animxmlparser->getFirstPacketTime (); + m_minPoint = m_animxmlparser->getMinPoint (); + m_maxPoint = m_animxmlparser->getMaxPoint (); + // showParsingXmlDialog (false); + // setMaxSimulationTime (animxmlparser->getMaxSimulationTime ()); + AnimatorScene::getInstance ()->setSimulationBoundaries (m_minPoint, m_maxPoint); + if (m_backgroundExists) + { + AnimatorScene::getInstance ()->setBackgroundImage (m_backgroundImageProperties.fileName, + m_backgroundImageProperties.x, + m_backgroundImageProperties.y, + m_backgroundImageProperties.scaleX, + m_backgroundImageProperties.scaleY, + m_backgroundImageProperties.opacity); + } + // postParse (); + + enableAllToolButtons (true); + m_showNodeIdButton->setChecked (true); + showNodeIdSlot (); + m_gridButton->setChecked (true); + showGridLinesSlot (); + AnimatorView::getInstance ()->postParse (); + //AnimatorScene::getInstance ()->postParse (); + //AnimatorScene::getInstance ()->setNodeSize (nodeSizeStringToValue (m_nodeSizeComboBox->currentText ())); + update (); + m_bottomStatusLabel->setText ("Parsing complete:Click Play"); + m_parseProgressBar->reset (); + + //m_showMetaButton->setChecked (AnimPktMgr::getInstance ()->getMetaInfoSeen ()); + resetBackground (); + + dispatchEvents (); + m_gridButton->setChecked (false); + showGridLinesSlot (); + m_gridButton->setChecked (true); + showGridLinesSlot (); + AnimatorView::getInstance ()->postParse (); + AnimPropertyBroswer::getInstance ()->postParse (); + return true; +} + bool AnimatorMode::parseXMLTraceFile (QString traceFileName) { // NS_LOG_DEBUG ("parsing File:" << traceFileName.toAscii ().data ()); - m_rxCount = 0; + m_rxCount = 0; Animxmlparser parser (traceFileName); if (!parser.isFileValid ()) { @@ -940,17 +1016,19 @@ AnimatorMode::doSimulationCompleted () //NS_LOG_DEBUG ("Simulation Completed"); m_bottomStatusLabel->setText ("Simulation Completed"); - m_buttonAnimationGroup = new QParallelAnimationGroup; - //m_buttonAnimationGroup->addAnimation (getButtonAnimation (m_fileOpenButton)); - m_buttonAnimationGroup->addAnimation (getButtonAnimation (m_reloadFileButton)); - - m_buttonAnimationGroup->start (); - - connect (m_buttonAnimationGroup, - SIGNAL (finished ()), - this, - SLOT (buttonAnimationGroupFinishedSlot ())); - + if (!m_onlineMode) + { + m_buttonAnimationGroup = new QParallelAnimationGroup; + //m_buttonAnimationGroup->addAnimation (getButtonAnimation (m_fileOpenButton)); + m_buttonAnimationGroup->addAnimation (getButtonAnimation (m_reloadFileButton)); + + m_buttonAnimationGroup->start (); + + connect (m_buttonAnimationGroup, + SIGNAL (finished ()), + this, + SLOT (buttonAnimationGroupFinishedSlot ())); + } } bool AnimatorMode::checkSimulationCompleted () @@ -1121,8 +1199,11 @@ AnimatorMode::enableMousePositionSlot () void AnimatorMode::stepSlot () { - externalPauseEvent (); - dispatchEvents (); + if (!m_onlineMode) + { + externalPauseEvent (); + dispatchEvents (); + } } void @@ -1213,7 +1294,7 @@ AnimatorMode::purgeAnimatedNodes () void AnimatorMode::updateRateTimeoutSlot () { - + // freopen("out.txt","w", stderr); m_updateRateTimer->stop (); if (m_currentTime >= m_pauseAtTime) { @@ -1226,7 +1307,37 @@ AnimatorMode::updateRateTimeoutSlot () return; if (m_playing) { - dispatchEvents (); + if (!m_onlineMode) + { + dispatchEvents (); + } + else + { + TimeValue::TimeValueResult_t result; + m_events.getNextGOOD (result); + if (result != m_events.GOOD) + { + m_eventObtained = false; + ns3::Simulator::Run (); + if (m_eventObtained) + { + setCurrentTime (m_nextTs); + dispatchEvents (); + } + + } + else + { + // NS_LOG_DEBUG("IM AT DISPEVENTS"); + dispatchEvents (); + } + if (ns3::Simulator::IsFinished ()) + { + // NS_LOG_DEBUG("IM AT FINISHING"); + setSimulationCompleted (); + return; + } + } disconnect (m_simulationTimeSlider, SIGNAL (valueChanged (int)), this, SLOT (updateTimelineSlot (int))); m_simulationTimeSlider->setValue (m_currentTime); @@ -1341,10 +1452,18 @@ AnimatorMode::clickPlaySlot () } } +qreal +AnimatorMode::getTimeFromSimulator () +{ + return static_cast (ns3::DefaultSimulatorImpl::getNextTs ()) / 1e9; +} + void AnimatorMode::dispatchEvents () { //NS_LOG_DEBUG ("Dispatch events"); + // ns3::DefaultSimulatorImpl& ds = dynamic_cast((*ns3::Simulator::GetImplementation())); + // ds.context; m_updateRateSlider->setEnabled (false); m_simulationTimeSlider->setEnabled (false); @@ -1354,7 +1473,16 @@ AnimatorMode::dispatchEvents () purgeWirelessPackets (); if (result == m_events.GOOD) { - //setCurrentTime (pp.first->first); + if (m_onlineMode) + { + if (pp.first->first >= getTimeFromSimulator ()) + { + m_nextTs = pp.first->first; + return; + } + // NS_LOG_DEBUG("Time of pp" << pp.first->first); + } + // setCurrentTime (pp.first->first); m_currentTime = pp.first->first; //if (m_currentTime > 0) // { @@ -1362,14 +1490,13 @@ AnimatorMode::dispatchEvents () // } m_qLcdNumber->display (m_currentTime); - for (TimeValue::TimeValue_t::const_iterator j = pp.first; j != pp.second; ++j) { //NS_LOG_DEBUG ("fbTx:" << j->first); AnimEvent * ev = j->second; - + // NS_LOG_DEBUG("Type" << ev->m_type); switch (ev->m_type) { case AnimEvent::ADD_NODE_EVENT: @@ -1428,7 +1555,7 @@ AnimatorMode::dispatchEvents () ++i) { AnimNodeMgr::getInstance ()->getNode (ipv6Event->m_nodeId)->addIpv6Address (*i); - } + } break; } case AnimEvent::UPDATE_NODE_COUNTER_EVENT: @@ -1480,7 +1607,7 @@ AnimatorMode::dispatchEvents () if (!packetEvent->m_isWPacket) { - //NS_LOG_DEBUG ("Packet LbRX Scheduling:" << animLbRxEvent << " P:" << animPacket); + // NS_LOG_DEBUG ("Packet LbRX Scheduling:" << animLbRxEvent << " P:" << animPacket); AnimatorScene::getInstance ()->addWiredPacket (animPacket); @@ -1620,15 +1747,15 @@ AnimatorMode::dispatchEvents () m_updateRateSlider->setEnabled (true); m_simulationTimeSlider->setEnabled (true); } // if result == good - else + else { - + if (!m_onlineMode) setSimulationCompleted (); } - - - - + if (m_onlineMode) + m_nextTs = ns3::DefaultSimulatorImpl::getNextTs (); + else + m_nextTs = pp.second->first; } @@ -1668,6 +1795,24 @@ AnimatorMode::getBackgroundProperties () return prop; } +void +AnimatorMode::setOnlineMode(bool mode) +{ + m_onlineMode = mode; +} + +// void +// AnimatorMode::setEventsOver (bool isOver) +// { +// eventsOver = isOver; +// } + +bool +AnimatorMode::getOnlineMode() +{ + return m_onlineMode; +} + void AnimatorMode::setBackgroundImageProperties (BackgroudImageProperties_t prop) { diff --git a/ns-3-allinone/netanim/animatormode.h b/ns-3-allinone/netanim/animatormode.h index c5b0b14..587e40c 100644 --- a/ns-3-allinone/netanim/animatormode.h +++ b/ns-3-allinone/netanim/animatormode.h @@ -27,9 +27,10 @@ #include "animatorscene.h" #include "animatorview.h" #include "mode.h" +#include "animxmlparser.h" #include "timevalue.h" #include "animevent.h" -#include "QtTreePropertyBrowser" +// #include "QtTreePropertyBrowser" namespace netanim { @@ -53,6 +54,7 @@ class AnimatorMode: public Mode // Getters static AnimatorMode * getInstance (); + Animxmlparser * getAnimxmlparser(); //Online mode QWidget * getCentralWidget (); QString getTabName (); qreal getCurrentNodeSize (); @@ -61,6 +63,7 @@ class AnimatorMode: public Mode qreal getLastPacketEventTime (); qreal getThousandthPacketTime (); qreal getFirstPacketTime (); + bool getOnlineMode();//Online mode // Setters @@ -77,6 +80,8 @@ class AnimatorMode: public Mode void setShowNodeTrajectory (AnimNode * animNode); void setBackgroundImageProperties (BackgroudImageProperties_t prop); BackgroudImageProperties_t getBackgroundProperties (); + void setOnlineMode (bool mode); //Online mode + // void setEventsOver (bool isOver); // Actions @@ -85,6 +90,7 @@ class AnimatorMode: public Mode void externalPauseEvent (); void start (); void openPropertyBroswer (); + bool parseOnline (); //Online mode private: @@ -99,6 +105,7 @@ class AnimatorMode: public Mode PAUSING, SIMULATION_COMPLETE } AnimatorModeState_t; + Animxmlparser * m_animxmlparser; //Online mode double m_version; bool m_playing; AnimatorModeState_t m_state; @@ -130,9 +137,9 @@ class AnimatorMode: public Mode QPointF m_minPoint; QPointF m_maxPoint; bool m_backgroundExists; - - - + bool m_onlineMode; //Online mode + bool m_eventObtained; //Online mode + qreal m_nextTs; //Online mode //controls QVBoxLayout * m_vLayout; @@ -189,6 +196,7 @@ class AnimatorMode: public Mode //functions AnimatorMode (); + ~AnimatorMode (); bool parseXMLTraceFile (QString traceFileName); void setLabelStyleSheet (); void initUpdateRate (); @@ -227,6 +235,7 @@ class AnimatorMode: public Mode QPropertyAnimation * getButtonAnimation (QToolButton * toolButton); void initPropertyBrowser (); void removeWiredPacket (AnimPacket * animPacket); + qreal getTimeFromSimulator (void); private slots: diff --git a/ns-3-allinone/netanim/animpropertybrowser.cpp b/ns-3-allinone/netanim/animpropertybrowser.cpp index ef3550b..05d5cc5 100644 --- a/ns-3-allinone/netanim/animpropertybrowser.cpp +++ b/ns-3-allinone/netanim/animpropertybrowser.cpp @@ -297,9 +297,9 @@ AnimPropertyBroswer::setupNodeProperties () m_nodeBrowser->setFactoryForManager (m_stringManager, m_lineEditFactory); connect (m_stringManager, SIGNAL (valueChanged (QtProperty*,QString)), this, SLOT (valueChangedSlot (QtProperty*,QString))); m_nodeBrowser->addProperty (m_nodeDescriptionProperty); - m_stringManager->setValue (m_nodeDescriptionProperty, animNode->getDescription ()->toPlainText ()); - - + // m_stringManager->setValue (m_nodeDescriptionProperty, animNode->getDescription ()->toPlainText ()); + // animNode->getDescription (); +/* // Node Position m_nodePositionGroupProperty = m_nodePositionManager->addProperty ("Node Position"); m_nodeXProperty = m_doubleManager->addProperty ("Node X"); @@ -422,7 +422,7 @@ AnimPropertyBroswer::setupNodeProperties () m_intManager->setValue (prop, counterValue); m_nodeBrowser->addProperty (prop); m_nodeCounterUint32Property.push_back (prop); - } + }*/ } diff --git a/ns-3-allinone/netanim/animxmlparser.cpp b/ns-3-allinone/netanim/animxmlparser.cpp index 5fe46fd..0003925 100755 --- a/ns-3-allinone/netanim/animxmlparser.cpp +++ b/ns-3-allinone/netanim/animxmlparser.cpp @@ -81,118 +81,20 @@ Animxmlparser::~Animxmlparser () } void -Animxmlparser::searchForVersion () -{ - QFile * f = new QFile (m_traceFileName); - if (f->open (QIODevice::ReadOnly | QIODevice::Text)) - { - QString firstLine = QString (f->readLine ()); - int startIndex = 0; - int endIndex = 0; - QString versionField = VERSION_FIELD_DEFAULT; - startIndex = firstLine.indexOf (versionField); - endIndex = firstLine.lastIndexOf ("\""); - if ((startIndex != -1) && (endIndex > startIndex)) - { - int adjustedStartIndex = startIndex + versionField.length (); - QString v = firstLine.mid (adjustedStartIndex, endIndex-adjustedStartIndex); - m_version = v.toDouble (); - } - f->close (); - delete f; - } -} - -uint64_t -Animxmlparser::getRxCount () -{ - searchForVersion (); - uint64_t count = 1; - QFile * f = new QFile (m_traceFileName); - if (f->open (QIODevice::ReadOnly | QIODevice::Text)) - { - QString allContent = QString (f->readAll ()); - int j = 0; - QString searchString = " toId="; - if (m_version >= 3.102) - searchString = " tId"; - - while ( (j = allContent.indexOf (searchString, j)) != -1) - { - ++j; - ++count; - } - f->close (); - delete f; - //qDebug (QString::number (count)); - } - return qMax (count, (uint64_t)1); -} - -bool -Animxmlparser::isFileValid () +Animxmlparser::doParse(ParsedElement parsedElement) { - return m_fileIsValid; -} - -bool -Animxmlparser::isParsingComplete () -{ - return m_parsingComplete; -} - -qreal -Animxmlparser::getLastPacketEventTime () -{ - return m_lastPacketEventTime; -} - -qreal -Animxmlparser::getFirstPacketTime () -{ - return m_firstPacketTime; -} - -QPointF -Animxmlparser::getMinPoint () -{ - return QPointF (m_minNodeX, m_minNodeY); -} - -QPointF -Animxmlparser::getMaxPoint () -{ - return QPointF (m_maxNodeX, m_maxNodeY); -} - -qreal -Animxmlparser::getThousandthPacketTime () -{ - return m_thousandThPacketTime; -} - -void -Animxmlparser::doParse () -{ - uint64_t parsedElementCount = 0; + NS_LOG_DEBUG("doParse of parsed element"); AnimatorMode * pAnimatorMode = AnimatorMode::getInstance (); - while (!isParsingComplete ()) - { - if (AnimatorMode::getInstance ()->keepAppResponsive ()) - { - AnimatorMode::getInstance ()->setParsingCount (parsedElementCount); - } - ParsedElement parsedElement = parseNext (); - switch (parsedElement.type) - { - case XML_ANIM: + switch (parsedElement.type) + { + case XML_ANIM: { AnimatorMode::getInstance ()->setVersion (parsedElement.version); //qDebug (QString ("XML Version:") + QString::number (version)); break; } - case XML_NODE: + case XML_NODE: { m_minNodeX = qMin (m_minNodeX, parsedElement.node_x); m_minNodeY = qMin (m_minNodeY, parsedElement.node_y); @@ -405,8 +307,116 @@ Animxmlparser::doParse () { //qDebug ("Invalid XML element"); } - } //switch - } // while loop + + } +} + +void +Animxmlparser::searchForVersion () +{ + QFile * f = new QFile (m_traceFileName); + if (f->open (QIODevice::ReadOnly | QIODevice::Text)) + { + QString firstLine = QString (f->readLine ()); + int startIndex = 0; + int endIndex = 0; + QString versionField = VERSION_FIELD_DEFAULT; + startIndex = firstLine.indexOf (versionField); + endIndex = firstLine.lastIndexOf ("\""); + if ((startIndex != -1) && (endIndex > startIndex)) + { + int adjustedStartIndex = startIndex + versionField.length (); + QString v = firstLine.mid (adjustedStartIndex, endIndex-adjustedStartIndex); + m_version = v.toDouble (); + } + f->close (); + delete f; + } +} + +uint64_t +Animxmlparser::getRxCount () +{ + searchForVersion (); + uint64_t count = 1; + QFile * f = new QFile (m_traceFileName); + if (f->open (QIODevice::ReadOnly | QIODevice::Text)) + { + QString allContent = QString (f->readAll ()); + int j = 0; + QString searchString = " toId="; + if (m_version >= 3.102) + searchString = " tId"; + + while ( (j = allContent.indexOf (searchString, j)) != -1) + { + ++j; + ++count; + } + f->close (); + delete f; + //qDebug (QString::number (count)); + } + return qMax (count, (uint64_t)1); +} + +bool +Animxmlparser::isFileValid () +{ + return m_fileIsValid; +} + +bool +Animxmlparser::isParsingComplete () +{ + return m_parsingComplete; +} + +qreal +Animxmlparser::getLastPacketEventTime () +{ + return m_lastPacketEventTime; +} + +qreal +Animxmlparser::getFirstPacketTime () +{ + return m_firstPacketTime; +} + +QPointF +Animxmlparser::getMinPoint () +{ + return QPointF (m_minNodeX, m_minNodeY); +} + +QPointF +Animxmlparser::getMaxPoint () +{ + return QPointF (m_maxNodeX, m_maxNodeY); +} + +qreal +Animxmlparser::getThousandthPacketTime () +{ + return m_thousandThPacketTime; +} + +void +Animxmlparser::doParse () +{ + NS_LOG_DEBUG("doParse"); + parsedElementCount = 0; + // AnimatorMode * pAnimatorMode = AnimatorMode::getInstance (); + while (!isParsingComplete ()) + { + if (AnimatorMode::getInstance ()->keepAppResponsive ()) + { + AnimatorMode::getInstance ()->setParsingCount (parsedElementCount); + } + ParsedElement parsedElement = parseNext (); + doParse(parsedElement); + } } ParsedElement diff --git a/ns-3-allinone/netanim/animxmlparser.h b/ns-3-allinone/netanim/animxmlparser.h index 495e14d..c37fb7a 100755 --- a/ns-3-allinone/netanim/animxmlparser.h +++ b/ns-3-allinone/netanim/animxmlparser.h @@ -165,6 +165,7 @@ class Animxmlparser void setMaxSimulationTime (qreal t); bool isFileValid (); uint64_t getRxCount (); + void doParse(ParsedElement parsedelement); //Online Mode void doParse (); qreal getLastPacketEventTime (); qreal getThousandthPacketTime (); @@ -185,6 +186,8 @@ class Animxmlparser qreal m_thousandThPacketTime; qreal m_firstPacketTime; + uint64_t parsedElementCount; + qreal m_minNodeX; qreal m_minNodeY; qreal m_maxNodeX; diff --git a/ns-3-allinone/netanim/fatal-error.h b/ns-3-allinone/netanim/fatal-error.h index 1f3fb6b..f6b0417 100644 --- a/ns-3-allinone/netanim/fatal-error.h +++ b/ns-3-allinone/netanim/fatal-error.h @@ -28,53 +28,154 @@ #include "fatal-impl.h" /** - * \ingroup debugging - * \brief fatal error handling + * \file + * \ingroup fatal + * \brief \c NS_FATAL_x macro definitions. + */ + +/** + * \ingroup core + * \defgroup fatal Fatal Error Handlers * - * When this macro is hit at runtime, details of filename - * and line number is printed to stderr, and the program - * is halted by calling std::terminate(). This will - * trigger any clean up code registered by - * std::set_terminate (NS3 default is a stream-flushing - * code), but may be overridden. + * \brief Functions to help clean up when a fatal error + * is encountered. + * + * The functions in this group are used to perform + * limited clean up, like flushing active streams, when + * fatal errors are encountered (through assertion fail, + * calls to NS_ABORT_* or calls to NS_FATAL_ERROR). + * + * Currently, other than flushing active ostreams, these + * functions does not interfere with outside memory. There + * is still a residual risk that invalid ostream + * pointers may be present, and may corrupt the memory + * on the attempt to execute the flush() function. + */ + +/** + * \ingroup fatal + * + * \brief Fatal error reporting with no message, implementation. + * + * When this macro is hit at runtime the error details will + * printed to \c stderr, including the file name and line number. + * Optionally, if \c fatal is true, the macro + * will invoke \c std::terminate(). If \c fatal is false, + * the invoking function should return an error code to its caller, + * which is expected to call NS_FATAL_ERROR to cause termination. + * + * \param [in] fatal Call \c std::terminate() if true. * * This macro is enabled unconditionally in all builds, * including debug and optimized builds. */ -#define NS_FATAL_ERROR_NO_MSG() \ +#define NS_FATAL_ERROR_IMPL_NO_MSG(fatal) \ do \ { \ std::cerr << "file=" << __FILE__ << ", line=" << \ - __LINE__ << std::endl; \ + __LINE__ << std::endl; \ ::ns3::FatalImpl::FlushStreams (); \ - std::terminate (); \ + if (fatal) std::terminate (); \ } \ while (false) + /** - * \ingroup debugging - * \brief fatal error handling + * \ingroup fatal * - * \param msg message to output when this macro is hit. + * \brief Fatal error reporting with a message, implementation. * - * When this macro is hit at runtime, the user-specified - * error message is printed to stderr, followed by a call - * to the NS_FATAL_ERROR_NO_MSG() macro which prints the - * details of filename and line number to stderr. The - * program will be halted by calling std::terminate(), - * triggering any clean up code registered by - * std::set_terminate (NS3 default is a stream-flushing - * code, but may be overridden). + * When this macro is hit at runtime the error details will + * printed to \c stderr, including the message, file name and line number. + * Optionally, if \c fatal is true, the macro + * will invoke \c std::terminate(). If \c fatal is false, + * the invoking function should return an error code to its caller, + * which is expected to call NS_FATAL_ERROR to cause termination. + * + * \param [in] msg The error message to print, if not empty. + * \param [in] fatal Call \c std::terminate() if true. * * This macro is enabled unconditionally in all builds, * including debug and optimized builds. */ -#define NS_FATAL_ERROR(msg) \ +#define NS_FATAL_ERROR_IMPL(msg,fatal) \ do \ { \ std::cerr << "msg=\"" << msg << "\", "; \ - NS_FATAL_ERROR_NO_MSG (); \ + NS_FATAL_ERROR_IMPL_NO_MSG (fatal); \ } \ while (false) -#endif /* FATAL_ERROR_H */ + +/** + * \ingroup fatal + * + * \brief Report a fatal error and terminate. + * + * When this macro is hit at runtime, details of filename + * and line number are printed to \c stderr, and the program + * is halted by calling \c std::terminate(). This will + * trigger any clean up code registered by + * \c std::set_terminate (NS3 default is a stream-flushing + * code), but may be overridden. + * + * This macro is enabled unconditionally in all builds, + * including debug and optimized builds. + */ +#define NS_FATAL_ERROR_NO_MSG() NS_FATAL_ERROR_IMPL_NO_MSG (true) + +/** + * \ingroup fatal + * + * \brief Report a fatal error, deferring termination. + * + * When this macro is hit at runtime, details of filename + * and line number are printed to \c stderr, however the program + * is _not_ halted. It is expected that the function using this + * macro will return an error code, and its caller will + * invoke NS_FATAL_ERROR(msg) triggering std::terminate(). + * + * This macro is enabled unconditionally in all builds, + * including debug and optimized builds. + */ +#define NS_FATAL_ERROR_NO_MSG_CONT() NS_FATAL_ERROR_IMPL_NO_MSG (false) + +/** + * \ingroup fatal + * + * \brief Report a fatal error with a message and terminate. + * + * \param [in] msg message to output when this macro is hit. + * + * When this macro is hit at runtime, the user-specified + * error message are printed to \c stderr, followed by a call + * to the NS_FATAL_ERROR_NO_MSG() macro which prints the + * details of filename and line number to \c stderr. The + * program will be halted by calling \c std::terminate(), + * triggering any clean up code registered by + * \c std::set_terminate (NS3 default is a stream-flushing + * code, but may be overridden). + * + * This macro is enabled unconditionally in all builds, + * including debug and optimized builds. + */ +#define NS_FATAL_ERROR(msg) NS_FATAL_ERROR_IMPL (msg, true) + +/** + * \ingroup fatal + * + * \brief Report a fatal error with a message, deferring termination. + * + * When this macro is hit at runtime, details of filename + * and line number are printed to \c stderr, however the program + * is _not_ halted. It is expected that the function using this + * macro will return an error code, and its caller will + * invoke NS_FATAL_ERROR(msg) triggering \c std::terminate(). + * + * This macro is enabled unconditionally in all builds, + * including debug and optimized builds. + */ +#define NS_FATAL_ERROR_CONT(msg) NS_FATAL_ERROR_IMPL (msg, false) + + +#endif /* FATAL_ERROR_H */ \ No newline at end of file diff --git a/ns-3-allinone/netanim/libNetAnimOnline.so b/ns-3-allinone/netanim/libNetAnimOnline.so new file mode 120000 index 0000000..0110658 --- /dev/null +++ b/ns-3-allinone/netanim/libNetAnimOnline.so @@ -0,0 +1 @@ +libNetAnimOnline.so.1.0.0 \ No newline at end of file diff --git a/ns-3-allinone/netanim/libNetAnimOnline.so.1 b/ns-3-allinone/netanim/libNetAnimOnline.so.1 new file mode 120000 index 0000000..0110658 --- /dev/null +++ b/ns-3-allinone/netanim/libNetAnimOnline.so.1 @@ -0,0 +1 @@ +libNetAnimOnline.so.1.0.0 \ No newline at end of file diff --git a/ns-3-allinone/netanim/libNetAnimOnline.so.1.0 b/ns-3-allinone/netanim/libNetAnimOnline.so.1.0 new file mode 120000 index 0000000..0110658 --- /dev/null +++ b/ns-3-allinone/netanim/libNetAnimOnline.so.1.0 @@ -0,0 +1 @@ +libNetAnimOnline.so.1.0.0 \ No newline at end of file diff --git a/ns-3-allinone/netanim/libNetAnimOnline.so.1.0.0 b/ns-3-allinone/netanim/libNetAnimOnline.so.1.0.0 new file mode 100755 index 0000000000000000000000000000000000000000..e42f3738254ba4db3f5f0c57e5c8cf5440c486fd GIT binary patch literal 3017712 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%0D0LLf)@n&+Q0r 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

K5|C`~AH0 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

%+(*7cN4>oUi5 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%0AR}A6NTI88VxE>)vUXmzk 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�l;F*YQ3&@qUXq*iYEsUKjaLsV7eM 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/ns-3-allinone/netanim/log-macros-disabled.h b/ns-3-allinone/netanim/log-macros-disabled.h new file mode 100644 index 0000000..5b94dac --- /dev/null +++ b/ns-3-allinone/netanim/log-macros-disabled.h @@ -0,0 +1,61 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2014 Andrey Mazo + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Andrey Mazo + */ + +/** + * \file + * \ingroup logging + * Definition of empty logging macros and the NS_LOG_NOOP_INTERNAL macro. + */ + + +#ifndef NS3_LOG_MACROS_DISABLED_H +#define NS3_LOG_MACROS_DISABLED_H + +#ifndef NS3_LOG_ENABLE + +/** + * \ingroup logging + * Empty logging macro implementation, used when logging is disabled. + */ +#define NS_LOG_NOOP_INTERNAL(msg) \ + do \ + { \ + if (false) \ + { \ + std::clog << msg; \ + } \ + } \ + while (false) + +#define NS_LOG(level, msg) \ + NS_LOG_NOOP_INTERNAL (msg) + +#define NS_LOG_FUNCTION_NOARGS() + +#define NS_LOG_FUNCTION(parameters) \ + NS_LOG_NOOP_INTERNAL (parameters) + +#define NS_LOG_UNCOND(msg) \ + NS_LOG_NOOP_INTERNAL (msg) + + +#endif /* !NS3_LOG_ENABLE */ + +#endif /* NS3_LOG_MACROS_DISABLED_H */ diff --git a/ns-3-allinone/netanim/log-macros-enabled.h b/ns-3-allinone/netanim/log-macros-enabled.h new file mode 100644 index 0000000..f8f9b11 --- /dev/null +++ b/ns-3-allinone/netanim/log-macros-enabled.h @@ -0,0 +1,249 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2006,2007 INRIA + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Mathieu Lacage + */ + +#ifndef NS3_LOG_MACROS_ENABLED_H +#define NS3_LOG_MACROS_ENABLED_H + +/** + * \file + * \ingroup logging + * Definition of logging macros. + */ + +#ifdef NS3_LOG_ENABLE + + +/** + * \ingroup logging + * Append the simulation time to a log message. + * \internal + * Logging implementation macro; should not be called directly. + */ +#define NS_LOG_APPEND_TIME_PREFIX \ + if (g_log.IsEnabled (ns3::LOG_PREFIX_TIME)) \ + { \ + ns3::LogTimePrinter printer = ns3::LogGetTimePrinter (); \ + if (printer != 0) \ + { \ + (*printer)(std::clog); \ + std::clog << " "; \ + } \ + } + +/** + * \ingroup logging + * Append the simulation node id to a log message. + * \internal + * Logging implementation macro; should not be called directly. + */ +#define NS_LOG_APPEND_NODE_PREFIX \ + if (g_log.IsEnabled (ns3::LOG_PREFIX_NODE)) \ + { \ + ns3::LogNodePrinter printer = ns3::LogGetNodePrinter (); \ + if (printer != 0) \ + { \ + (*printer)(std::clog); \ + std::clog << " "; \ + } \ + } + +/** + * \ingroup logging + * Append the function name to a log message. + * \internal + * Logging implementation macro; should not be called directly. + */ +#define NS_LOG_APPEND_FUNC_PREFIX \ + if (g_log.IsEnabled (ns3::LOG_PREFIX_FUNC)) \ + { \ + std::clog << g_log.Name () << ":" << \ + __FUNCTION__ << "(): "; \ + } \ + +/** + * \ingroup logging + * Append the log severity level to a log message. + * \internal + * Logging implementation macro; should not be called directly. + */ +#define NS_LOG_APPEND_LEVEL_PREFIX(level) \ + if (g_log.IsEnabled (ns3::LOG_PREFIX_LEVEL)) \ + { \ + std::clog << "[" << g_log.GetLevelLabel (level) << "] "; \ + } \ + + +#ifndef NS_LOG_APPEND_CONTEXT +/** + * \ingroup logging + * Append the node id (or other file-local programatic context, such as + * MPI rank) to a log message. + * + * This is implemented locally in `.cc` files because + * the relevant variable is only known there. + * + * Preferred format is something like (assuming the node id is + * accessible from `var`: + * \code + * if (var) + * { + * std::clog << "[node " << var->GetObject ()->GetId () << "] "; + * } + * \endcode + */ +#define NS_LOG_APPEND_CONTEXT +#endif /* NS_LOG_APPEND_CONTEXT */ + + +#ifndef NS_LOG_CONDITION +/** + * \ingroup logging + * Limit logging output based on some file-local condition, + * such as MPI rank. + * + * This is implemented locally in `.cc` files because + * the relevant condition variable is only known there. + * + * Since this appears immediately before the `do { ... } while false` + * construct of \c NS_LOG(level, msg), it must have the form + * \code + * #define NS_LOG_CONDITION if (condition) + * \endcode + */ +#define NS_LOG_CONDITION +#endif + +/** + * \ingroup logging + * + * This macro allows you to log an arbitrary message at a specific + * log level. + * + * The log message is expected to be a C++ ostream + * message such as "my string" << aNumber << "my oth stream". + * + * Typical usage looks like: + * \code + * NS_LOG (LOG_DEBUG, "a number="<setGeometry (0, 0, minimumDimension, minimumDimension); m_tabWidget->showMaximized (); m_tabWidget->show (); + animatorTab->setOnlineMode(OnlineMode); animatorTab->start (); } diff --git a/ns-3-allinone/netanim/netanim.h b/ns-3-allinone/netanim/netanim.h index 7a80b20..c678251 100644 --- a/ns-3-allinone/netanim/netanim.h +++ b/ns-3-allinone/netanim/netanim.h @@ -29,7 +29,7 @@ class NetAnim : public QObject { Q_OBJECT public: - NetAnim (); + NetAnim (bool OnlineMode = false); QTabWidget * getTabWidget(); private: typedef std::map TabIndexModeMap_t; diff --git a/ns-3-allinone/netanim/output.cpp b/ns-3-allinone/netanim/output.cpp new file mode 100644 index 0000000..7890596 --- /dev/null +++ b/ns-3-allinone/netanim/output.cpp @@ -0,0 +1,138385 @@ +# 1 "animatormode.cpp" +# 1 "" +# 1 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "" 2 +# 1 "animatormode.cpp" +# 21 "animatormode.cpp" +# 1 "common.h" 1 +# 22 "common.h" +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 1 3 4 +# 9 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 3 4 +# 1 "/usr/include/stdint.h" 1 3 4 +# 25 "/usr/include/stdint.h" 3 4 +# 1 "/usr/include/features.h" 1 3 4 +# 367 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 +# 410 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 411 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 368 "/usr/include/features.h" 2 3 4 +# 391 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 +# 392 "/usr/include/features.h" 2 3 4 +# 26 "/usr/include/stdint.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4 +# 27 "/usr/include/stdint.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/stdint.h" 2 3 4 +# 36 "/usr/include/stdint.h" 3 4 + +# 36 "/usr/include/stdint.h" 3 4 +typedef signed char int8_t; +typedef short int int16_t; +typedef int int32_t; + +typedef long int int64_t; + + + + + + + +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; + +typedef unsigned int uint32_t; + + + +typedef unsigned long int uint64_t; +# 65 "/usr/include/stdint.h" 3 4 +typedef signed char int_least8_t; +typedef short int int_least16_t; +typedef int int_least32_t; + +typedef long int int_least64_t; + + + + + + +typedef unsigned char uint_least8_t; +typedef unsigned short int uint_least16_t; +typedef unsigned int uint_least32_t; + +typedef unsigned long int uint_least64_t; +# 90 "/usr/include/stdint.h" 3 4 +typedef signed char int_fast8_t; + +typedef long int int_fast16_t; +typedef long int int_fast32_t; +typedef long int int_fast64_t; +# 103 "/usr/include/stdint.h" 3 4 +typedef unsigned char uint_fast8_t; + +typedef unsigned long int uint_fast16_t; +typedef unsigned long int uint_fast32_t; +typedef unsigned long int uint_fast64_t; +# 119 "/usr/include/stdint.h" 3 4 +typedef long int intptr_t; + + +typedef unsigned long int uintptr_t; +# 134 "/usr/include/stdint.h" 3 4 +typedef long int intmax_t; +typedef unsigned long int uintmax_t; +# 10 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 2 3 4 +# 23 "common.h" 2 +# 1 "/usr/include/math.h" 1 3 4 +# 28 "/usr/include/math.h" 3 4 +extern "C" { + + +# 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 +# 32 "/usr/include/math.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/huge_val.h" 1 3 4 +# 36 "/usr/include/math.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/huge_valf.h" 1 3 4 +# 38 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/huge_vall.h" 1 3 4 +# 39 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/inf.h" 1 3 4 +# 42 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/nan.h" 1 3 4 +# 45 "/usr/include/math.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/mathdef.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/mathdef.h" 3 4 +typedef float float_t; +typedef double double_t; +# 49 "/usr/include/math.h" 2 3 4 +# 83 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 52 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 + + +extern double acos (double __x) throw (); extern double __acos (double __x) throw (); + +extern double asin (double __x) throw (); extern double __asin (double __x) throw (); + +extern double atan (double __x) throw (); extern double __atan (double __x) throw (); + +extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); + + + extern double cos (double __x) throw (); extern double __cos (double __x) throw (); + + extern double sin (double __x) throw (); extern double __sin (double __x) throw (); + +extern double tan (double __x) throw (); extern double __tan (double __x) throw (); + + + + +extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); + +extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); + +extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); + + + + + extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () + ; + + + + + +extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); + +extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); + +extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); + + + + + + + + extern double exp (double __x) throw (); extern double __exp (double __x) throw (); + + +extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); + + +extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); + + + extern double log (double __x) throw (); extern double __log (double __x) throw (); + + +extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); + + +extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + + +extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); + +extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); + + + + + +extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); + + +extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); + + +extern double logb (double __x) throw (); extern double __logb (double __x) throw (); + + + + + + +extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); + + +extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); + + + + + + + + + extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); + + +extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); + + + + + +extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); + + + + + + +extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); + + + + + + + + +extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); + + +extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); + + +extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); + + + + +extern int __isinf (double __value) throw () __attribute__ ((__const__)); + + +extern int __finite (double __value) throw () __attribute__ ((__const__)); + +# 208 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int finite (double __value) throw () __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); + + + +extern double significand (double __x) throw (); extern double __significand (double __x) throw (); + + + + + +extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); + + + + + + +extern double nan (const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (const char *__tagb) throw () __attribute__ ((__const__)); + + + + + +extern int __isnan (double __value) throw () __attribute__ ((__const__)); +# 247 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern double j0 (double) throw (); extern double __j0 (double) throw (); +extern double j1 (double) throw (); extern double __j1 (double) throw (); +extern double jn (int, double) throw (); extern double __jn (int, double) throw (); +extern double y0 (double) throw (); extern double __y0 (double) throw (); +extern double y1 (double) throw (); extern double __y1 (double) throw (); +extern double yn (int, double) throw (); extern double __yn (int, double) throw (); + + + + + + +extern double erf (double) throw (); extern double __erf (double) throw (); +extern double erfc (double) throw (); extern double __erfc (double) throw (); +extern double lgamma (double) throw (); extern double __lgamma (double) throw (); + + + + + + +extern double tgamma (double) throw (); extern double __tgamma (double) throw (); + + + + + +extern double gamma (double) throw (); extern double __gamma (double) throw (); + + + + + + +extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); + + + + + + + +extern double rint (double __x) throw (); extern double __rint (double __x) throw (); + + +extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); + +extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); + + + +extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); + + + +extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); + + + +extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); + + + + +extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); + + + +extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); + + + +extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); + + + +extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); + + + + + + +extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); +__extension__ +extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); + + + +extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); +__extension__ +extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); + + + +extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); + + +extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); + + + +extern int __fpclassify (double __value) throw () + __attribute__ ((__const__)); + + +extern int __signbit (double __value) throw () + __attribute__ ((__const__)); + + + +extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); + + + + + + + + +extern int __issignaling (double __value) throw () + __attribute__ ((__const__)); + + + + + + +extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); +# 84 "/usr/include/math.h" 2 3 4 +# 104 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 52 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 + + +extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); + +extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); + +extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); + +extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); + + + extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); + + extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); + +extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); + + + + +extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); + +extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); + +extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); + + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () + ; + + + + + +extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); + +extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); + +extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); + + + + + + + + extern float expf (float __x) throw (); extern float __expf (float __x) throw (); + + +extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); + + +extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); + + + extern float logf (float __x) throw (); extern float __logf (float __x) throw (); + + +extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); + + +extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + + +extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); + +extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); + + + + + +extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); + + +extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); + + +extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); + + + + + + +extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); + + +extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); + + + + + + + + + extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); + + +extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); + + + + + +extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); + + + + + + +extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); + + + + + + + + +extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); + + +extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); + + +extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); + + + + +extern int __isinff (float __value) throw () __attribute__ ((__const__)); + + +extern int __finitef (float __value) throw () __attribute__ ((__const__)); + + + + + + + + +extern int isinff (float __value) throw () __attribute__ ((__const__)); + + + +extern int finitef (float __value) throw () __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); + + + +extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); + + + + + +extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); + + + + + + +extern float nanf (const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (const char *__tagb) throw () __attribute__ ((__const__)); + + + + + +extern int __isnanf (float __value) throw () __attribute__ ((__const__)); + + + + + + +extern int isnanf (float __value) throw () __attribute__ ((__const__)); + + + + + +extern float j0f (float) throw (); extern float __j0f (float) throw (); +extern float j1f (float) throw (); extern float __j1f (float) throw (); +extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); +extern float y0f (float) throw (); extern float __y0f (float) throw (); +extern float y1f (float) throw (); extern float __y1f (float) throw (); +extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); + + + + + + +extern float erff (float) throw (); extern float __erff (float) throw (); +extern float erfcf (float) throw (); extern float __erfcf (float) throw (); +extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); + + + + + + +extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); + + + + + +extern float gammaf (float) throw (); extern float __gammaf (float) throw (); + + + + + + +extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); + + + + + + + +extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); + + +extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); + +extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); + + + +extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); + + + +extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); + + + +extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); + + + + +extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); + + + +extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); + + + +extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); + + + +extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); + + + + + + +extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); +__extension__ +extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); + + + +extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); +__extension__ +extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); + + + +extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); + + +extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); + + + +extern int __fpclassifyf (float __value) throw () + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) throw () + __attribute__ ((__const__)); + + + +extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); + + + + + + + + +extern int __issignalingf (float __value) throw () + __attribute__ ((__const__)); + + + + + + +extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); +# 105 "/usr/include/math.h" 2 3 4 +# 151 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 52 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 + + +extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); + +extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); + +extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); + +extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); + + + extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); + + extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); + +extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); + + + + +extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); + +extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); + +extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); + + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () + ; + + + + + +extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); + +extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); + +extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); + + + + + + + + extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); + + +extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); + + +extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); + + + extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); + + +extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); + + +extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + + +extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); + +extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); + + + + + +extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); + + +extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); + + +extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); + + + + + + +extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); + + +extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); + + + + + + + + + extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); + + +extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); + + + + + +extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); + + + + + + +extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); + + + + + + + + +extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); + + +extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); + + + + +extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); + + +extern int __finitel (long double __value) throw () __attribute__ ((__const__)); + + + + + + + + +extern int isinfl (long double __value) throw () __attribute__ ((__const__)); + + + +extern int finitel (long double __value) throw () __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); + + + +extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); + + + + + +extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + + + + + +extern long double nanl (const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) throw () __attribute__ ((__const__)); + + + + + +extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); + + + + + + +extern int isnanl (long double __value) throw () __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); +extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); +extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); +extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); +extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); +extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); + + + + + + +extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); +extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); +extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); + + + + + + +extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); + + + + + +extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); + + + + + + +extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); + + + + + + + +extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); + + +extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); + +extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + + +extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); + + + +extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); + + + +extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); + + + + +extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); + + + +extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); + + + +extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); + + + + + + +extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); +__extension__ +extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); + + + +extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); +__extension__ +extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); + + + +extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); + + +extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + + +extern int __fpclassifyl (long double __value) throw () + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) throw () + __attribute__ ((__const__)); + + + +extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); + + + + + + + + +extern int __issignalingl (long double __value) throw () + __attribute__ ((__const__)); + + + + + + +extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); +# 152 "/usr/include/math.h" 2 3 4 +# 168 "/usr/include/math.h" 3 4 +extern int signgam; +# 209 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 347 "/usr/include/math.h" 3 4 +typedef enum +{ + _IEEE_ = -1, + _SVID_, + _XOPEN_, + _POSIX_, + _ISOC_ +} _LIB_VERSION_TYPE; + + + + +extern _LIB_VERSION_TYPE _LIB_VERSION; +# 370 "/usr/include/math.h" 3 4 +struct __exception + + + + { + int type; + char *name; + double arg1; + double arg2; + double retval; + }; + + +extern int matherr (struct __exception *__exc) throw (); +# 534 "/usr/include/math.h" 3 4 +} +# 24 "common.h" 2 + +# 1 "/usr/include/qt4/QtGui/QWidget" 1 +# 1 "/usr/include/qt4/QtGui/qwidget.h" 1 +# 45 "/usr/include/qt4/QtGui/qwidget.h" +# 1 "/usr/include/qt4/QtCore/qconfig.h" 1 +# 46 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qwindowdefs.h" 1 +# 45 "/usr/include/qt4/QtGui/qwindowdefs.h" +# 1 "/usr/include/qt4/QtCore/qobjectdefs.h" 1 +# 45 "/usr/include/qt4/QtCore/qobjectdefs.h" +# 1 "/usr/include/qt4/QtCore/qnamespace.h" 1 +# 45 "/usr/include/qt4/QtCore/qnamespace.h" +# 1 "/usr/include/qt4/QtCore/qglobal.h" 1 +# 45 "/usr/include/qt4/QtCore/qglobal.h" +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 216 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 426 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 46 "/usr/include/qt4/QtCore/qglobal.h" 2 +# 62 "/usr/include/qt4/QtCore/qglobal.h" +# 1 "/usr/include/qt4/QtCore/qconfig.h" 1 +# 63 "/usr/include/qt4/QtCore/qglobal.h" 2 + + + + + +# 1 "/usr/include/c++/5/algorithm" 1 3 +# 58 "/usr/include/c++/5/algorithm" 3 + +# 59 "/usr/include/c++/5/algorithm" 3 + +# 1 "/usr/include/c++/5/utility" 1 3 +# 58 "/usr/include/c++/5/utility" 3 + +# 59 "/usr/include/c++/5/utility" 3 +# 68 "/usr/include/c++/5/utility" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 1 3 +# 194 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + +} +# 216 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 482 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h" 1 3 +# 483 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 2 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h" 1 3 +# 486 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 2 3 +# 69 "/usr/include/c++/5/utility" 2 3 +# 1 "/usr/include/c++/5/bits/stl_relops.h" 1 3 +# 67 "/usr/include/c++/5/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + namespace rel_ops + { + +# 85 "/usr/include/c++/5/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 98 "/usr/include/c++/5/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 111 "/usr/include/c++/5/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 124 "/usr/include/c++/5/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + + + } + +} +# 70 "/usr/include/c++/5/utility" 2 3 +# 1 "/usr/include/c++/5/bits/stl_pair.h" 1 3 +# 59 "/usr/include/c++/5/bits/stl_pair.h" 3 +# 1 "/usr/include/c++/5/bits/move.h" 1 3 +# 34 "/usr/include/c++/5/bits/move.h" 3 +# 1 "/usr/include/c++/5/bits/concept_check.h" 1 3 +# 33 "/usr/include/c++/5/bits/concept_check.h" 3 + +# 34 "/usr/include/c++/5/bits/concept_check.h" 3 +# 35 "/usr/include/c++/5/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline _Tp* + __addressof(_Tp& __r) noexcept + { + return reinterpret_cast<_Tp*> + (&const_cast(reinterpret_cast(__r))); + } + + +} + + +# 1 "/usr/include/c++/5/type_traits" 1 3 +# 32 "/usr/include/c++/5/type_traits" 3 + +# 33 "/usr/include/c++/5/type_traits" 3 +# 42 "/usr/include/c++/5/type_traits" 3 +namespace std +{ + typedef short unsigned int uint_least16_t; + typedef unsigned int uint_least32_t; +} + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 68 "/usr/include/c++/5/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef _Tp value_type; + typedef integral_constant<_Tp, __v> type; + constexpr operator value_type() const { return value; } + + + + + + + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + + typedef integral_constant true_type; + + + typedef integral_constant false_type; + + template + using __bool_constant = integral_constant; + + + + template + struct conditional; + + template + struct __or_; + + template<> + struct __or_<> + : public false_type + { }; + + template + struct __or_<_B1> + : public _B1 + { }; + + template + struct __or_<_B1, _B2> + : public conditional<_B1::value, _B1, _B2>::type + { }; + + template + struct __or_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type + { }; + + template + struct __and_; + + template<> + struct __and_<> + : public true_type + { }; + + template + struct __and_<_B1> + : public _B1 + { }; + + template + struct __and_<_B1, _B2> + : public conditional<_B1::value, _B2, _B1>::type + { }; + + template + struct __and_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type + { }; + + template + struct __not_ + : public integral_constant + { }; + + + + + + + template + struct __success_type + { typedef _Tp type; }; + + struct __failure_type + { }; + + + + template + struct remove_cv; + + template + struct __is_void_helper + : public false_type { }; + + template<> + struct __is_void_helper + : public true_type { }; + + + template + struct is_void + : public __is_void_helper::type>::type + { }; + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + template<> + struct __is_integral_helper + : public true_type { }; + + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; +# 288 "/usr/include/c++/5/type_traits" 3 + template + struct is_integral + : public __is_integral_helper::type>::type + { }; + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 316 "/usr/include/c++/5/type_traits" 3 + template + struct is_floating_point + : public __is_floating_point_helper::type>::type + { }; + + + template + struct is_array + : public false_type { }; + + template + struct is_array<_Tp[_Size]> + : public true_type { }; + + template + struct is_array<_Tp[]> + : public true_type { }; + + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper::type>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + template + struct is_function; + + template + struct __is_member_object_pointer_helper + : public false_type { }; + + template + struct __is_member_object_pointer_helper<_Tp _Cp::*> + : public integral_constant::value> { }; + + + template + struct is_member_object_pointer + : public __is_member_object_pointer_helper< + typename remove_cv<_Tp>::type>::type + { }; + + template + struct __is_member_function_pointer_helper + : public false_type { }; + + template + struct __is_member_function_pointer_helper<_Tp _Cp::*> + : public integral_constant::value> { }; + + + template + struct is_member_function_pointer + : public __is_member_function_pointer_helper< + typename remove_cv<_Tp>::type>::type + { }; + + + template + struct is_enum + : public integral_constant + { }; + + + template + struct is_union + : public integral_constant + { }; + + + template + struct is_class + : public integral_constant + { }; + + + template + struct is_function + : public false_type { }; + + template + struct is_function<_Res(_ArgTypes...)> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......)> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile &&> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile &> + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile &&> + : public true_type { }; + + + + template + struct __is_null_pointer_helper + : public false_type { }; + + template<> + struct __is_null_pointer_helper + : public true_type { }; + + + template + struct is_null_pointer + : public __is_null_pointer_helper::type>::type + { }; + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { }; + + + + + template + struct is_reference + : public __or_, + is_rvalue_reference<_Tp>>::type + { }; + + + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + template + struct is_object + : public __not_<__or_, is_reference<_Tp>, + is_void<_Tp>>>::type + { }; + + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public integral_constant::value> { }; + + template + struct __is_member_pointer_helper + : public false_type { }; + + template + struct __is_member_pointer_helper<_Tp _Cp::*> + : public true_type { }; + + + template + struct is_member_pointer + : public __is_member_pointer_helper::type>::type + { }; + + + + template + struct __is_referenceable + : public __or_, is_reference<_Tp>>::type + { }; + + template + struct __is_referenceable<_Res(_Args...)> + : public true_type + { }; + + template + struct __is_referenceable<_Res(_Args......)> + : public true_type + { }; + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public integral_constant + { }; + + + template + struct is_trivially_copyable + : public integral_constant + { }; + + + template + struct is_standard_layout + : public integral_constant + { }; + + + + template + struct is_pod + : public integral_constant + { }; + + + template + struct is_literal_type + : public integral_constant + { }; + + + template + struct is_empty + : public integral_constant + { }; + + + template + struct is_polymorphic + : public integral_constant + { }; +# 688 "/usr/include/c++/5/type_traits" 3 + template + struct is_abstract + : public integral_constant + { }; + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public integral_constant + { }; + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>>::type + { }; + + + + + template + struct add_rvalue_reference; + + + + + + template + typename add_rvalue_reference<_Tp>::type declval() noexcept; + + template + struct extent; + + template + struct remove_all_extents; + + template + struct __is_array_known_bounds + : public integral_constant::value > 0)> + { }; + + template + struct __is_array_unknown_bounds + : public __and_, __not_>>::type + { }; + + + + + + + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { }; + + + + + + struct __do_is_nt_destructible_impl + { + template + static integral_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { }; + + struct __do_is_default_constructible_impl + { + template + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_default_constructible_impl + : public __do_is_default_constructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_default_constructible_atom + : public __and_<__not_>, + __is_default_constructible_impl<_Tp>>::type + { }; + + template::value> + struct __is_default_constructible_safe; + + + + + + + template + struct __is_default_constructible_safe<_Tp, true> + : public __and_<__is_array_known_bounds<_Tp>, + __is_default_constructible_atom::type>>::type + { }; + + template + struct __is_default_constructible_safe<_Tp, false> + : public __is_default_constructible_atom<_Tp>::type + { }; + + + template + struct is_default_constructible + : public __is_default_constructible_safe<_Tp>::type + { }; +# 900 "/usr/include/c++/5/type_traits" 3 + struct __do_is_static_castable_impl + { + template(declval<_From>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_static_castable_impl + : public __do_is_static_castable_impl + { + typedef decltype(__test<_From, _To>(0)) type; + }; + + template + struct __is_static_castable_safe + : public __is_static_castable_impl<_From, _To>::type + { }; + + + template + struct __is_static_castable + : public integral_constant::value)> + { }; + + + + + + + struct __do_is_direct_constructible_impl + { + template()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_direct_constructible_impl + : public __do_is_direct_constructible_impl + { + typedef decltype(__test<_Tp, _Arg>(0)) type; + }; + + template + struct __is_direct_constructible_new_safe + : public __and_, + __is_direct_constructible_impl<_Tp, _Arg>>::type + { }; + + template + struct is_same; + + template + struct is_base_of; + + template + struct remove_reference; + + template, + is_function<_From>>>::value> + struct __is_base_to_derived_ref; + + + + template + struct __is_base_to_derived_ref<_From, _To, true> + { + typedef typename remove_cv::type>::type __src_t; + typedef typename remove_cv::type>::type __dst_t; + typedef __and_<__not_>, + is_base_of<__src_t, __dst_t>> type; + static constexpr bool value = type::value; + }; + + template + struct __is_base_to_derived_ref<_From, _To, false> + : public false_type + { }; + + template, + is_rvalue_reference<_To>>::value> + struct __is_lvalue_to_rvalue_ref; + + + + template + struct __is_lvalue_to_rvalue_ref<_From, _To, true> + { + typedef typename remove_cv::type>::type __src_t; + typedef typename remove_cv::type>::type __dst_t; + typedef __and_<__not_>, + __or_, + is_base_of<__dst_t, __src_t>>> type; + static constexpr bool value = type::value; + }; + + template + struct __is_lvalue_to_rvalue_ref<_From, _To, false> + : public false_type + { }; + + + + + + + + template + struct __is_direct_constructible_ref_cast + : public __and_<__is_static_castable<_Arg, _Tp>, + __not_<__or_<__is_base_to_derived_ref<_Arg, _Tp>, + __is_lvalue_to_rvalue_ref<_Arg, _Tp> + >>>::type + { }; + + template + struct __is_direct_constructible_new + : public conditional::value, + __is_direct_constructible_ref_cast<_Tp, _Arg>, + __is_direct_constructible_new_safe<_Tp, _Arg> + >::type + { }; + + template + struct __is_direct_constructible + : public __is_direct_constructible_new<_Tp, _Arg>::type + { }; + + + + + + + struct __do_is_nary_constructible_impl + { + template()...))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nary_constructible_impl + : public __do_is_nary_constructible_impl + { + typedef decltype(__test<_Tp, _Args...>(0)) type; + }; + + template + struct __is_nary_constructible + : public __is_nary_constructible_impl<_Tp, _Args...>::type + { + static_assert(sizeof...(_Args) > 1, + "Only useful for > 1 arguments"); + }; + + template + struct __is_constructible_impl + : public __is_nary_constructible<_Tp, _Args...> + { }; + + template + struct __is_constructible_impl<_Tp, _Arg> + : public __is_direct_constructible<_Tp, _Arg> + { }; + + template + struct __is_constructible_impl<_Tp> + : public is_default_constructible<_Tp> + { }; + + + template + struct is_constructible + : public __is_constructible_impl<_Tp, _Args...>::type + { }; + + template::value> + struct __is_copy_constructible_impl; + + template + struct __is_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_constructible_impl<_Tp, true> + : public is_constructible<_Tp, const _Tp&> + { }; + + + template + struct is_copy_constructible + : public __is_copy_constructible_impl<_Tp> + { }; + + template::value> + struct __is_move_constructible_impl; + + template + struct __is_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_constructible_impl<_Tp, true> + : public is_constructible<_Tp, _Tp&&> + { }; + + + template + struct is_move_constructible + : public __is_move_constructible_impl<_Tp> + { }; + + template + struct __is_nt_default_constructible_atom + : public integral_constant + { }; + + template::value> + struct __is_nt_default_constructible_impl; + + template + struct __is_nt_default_constructible_impl<_Tp, true> + : public __and_<__is_array_known_bounds<_Tp>, + __is_nt_default_constructible_atom::type>>::type + { }; + + template + struct __is_nt_default_constructible_impl<_Tp, false> + : public __is_nt_default_constructible_atom<_Tp> + { }; + + + template + struct is_nothrow_default_constructible + : public __and_, + __is_nt_default_constructible_impl<_Tp>>::type + { }; + + template + struct __is_nt_constructible_impl + : public integral_constant()...))> + { }; + + template + struct __is_nt_constructible_impl<_Tp, _Arg> + : public integral_constant(declval<_Arg>()))> + { }; + + template + struct __is_nt_constructible_impl<_Tp> + : public is_nothrow_default_constructible<_Tp> + { }; + + + template + struct is_nothrow_constructible + : public __and_, + __is_nt_constructible_impl<_Tp, _Args...>>::type + { }; + + template::value> + struct __is_nothrow_copy_constructible_impl; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, true> + : public is_nothrow_constructible<_Tp, const _Tp&> + { }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_copy_constructible_impl<_Tp> + { }; + + template::value> + struct __is_nothrow_move_constructible_impl; + + template + struct __is_nothrow_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_move_constructible_impl<_Tp, true> + : public is_nothrow_constructible<_Tp, _Tp&&> + { }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_move_constructible_impl<_Tp> + { }; + + template + class __is_assignable_helper + { + template() = declval<_Up1>())> + static true_type + __test(int); + + template + static false_type + __test(...); + + public: + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct is_assignable + : public __is_assignable_helper<_Tp, _Up>::type + { }; + + template::value> + struct __is_copy_assignable_impl; + + template + struct __is_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_assignable_impl<_Tp, true> + : public is_assignable<_Tp&, const _Tp&> + { }; + + + template + struct is_copy_assignable + : public __is_copy_assignable_impl<_Tp> + { }; + + template::value> + struct __is_move_assignable_impl; + + template + struct __is_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_assignable_impl<_Tp, true> + : public is_assignable<_Tp&, _Tp&&> + { }; + + + template + struct is_move_assignable + : public __is_move_assignable_impl<_Tp> + { }; + + template + struct __is_nt_assignable_impl + : public integral_constant() = declval<_Up>())> + { }; + + + template + struct is_nothrow_assignable + : public __and_, + __is_nt_assignable_impl<_Tp, _Up>>::type + { }; + + template::value> + struct __is_nt_copy_assignable_impl; + + template + struct __is_nt_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_copy_assignable_impl<_Tp, true> + : public is_nothrow_assignable<_Tp&, const _Tp&> + { }; + + + template + struct is_nothrow_copy_assignable + : public __is_nt_copy_assignable_impl<_Tp> + { }; + + template::value> + struct __is_nt_move_assignable_impl; + + template + struct __is_nt_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_move_assignable_impl<_Tp, true> + : public is_nothrow_assignable<_Tp&, _Tp&&> + { }; + + + template + struct is_nothrow_move_assignable + : public __is_nt_move_assignable_impl<_Tp> + { }; + + + template + struct is_trivially_constructible + : public __and_, integral_constant>::type + { }; + + + template + struct is_trivially_default_constructible + : public is_trivially_constructible<_Tp>::type + { }; + + + template + struct is_trivially_copy_constructible + : public __and_, + integral_constant>::type + { }; + + + template + struct is_trivially_move_constructible + : public __and_, + integral_constant>::type + { }; + + + template + struct is_trivially_assignable + : public __and_, + integral_constant>::type + { }; + + + template + struct is_trivially_copy_assignable + : public __and_, + integral_constant>::type + { }; + + + template + struct is_trivially_move_assignable + : public __and_, + integral_constant>::type + { }; + + + template + struct is_trivially_destructible + : public __and_, integral_constant>::type + { }; + + + template + struct has_trivial_default_constructor + : public integral_constant + { } __attribute__ ((__deprecated__)); + + + template + struct has_trivial_copy_constructor + : public integral_constant + { } __attribute__ ((__deprecated__)); + + + template + struct has_trivial_copy_assign + : public integral_constant + { } __attribute__ ((__deprecated__)); + + + template + struct has_virtual_destructor + : public integral_constant + { }; + + + + + + template + struct alignment_of + : public integral_constant { }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public integral_constant::value> + { }; + + template + struct extent<_Tp[], _Uint> + : public integral_constant::value> + { }; + + + + + + template + struct is_same + : public false_type { }; + + template + struct is_same<_Tp, _Tp> + : public true_type { }; + + + template + struct is_base_of + : public integral_constant + { }; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_convertible_helper + { typedef typename is_void<_To>::type type; }; + + template + class __is_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1); + + template(std::declval<_From1>()))> + static true_type + __test(int); + + template + static false_type + __test(...); + + public: + typedef decltype(__test<_From, _To>(0)) type; + }; + + + + template + struct is_convertible + : public __is_convertible_helper<_From, _To>::type + { }; + + + + + + template + struct remove_const + { typedef _Tp type; }; + + template + struct remove_const<_Tp const> + { typedef _Tp type; }; + + + template + struct remove_volatile + { typedef _Tp type; }; + + template + struct remove_volatile<_Tp volatile> + { typedef _Tp type; }; + + + template + struct remove_cv + { + typedef typename + remove_const::type>::type type; + }; + + + template + struct add_const + { typedef _Tp const type; }; + + + template + struct add_volatile + { typedef _Tp volatile type; }; + + + template + struct add_cv + { + typedef typename + add_const::type>::type type; + }; +# 1574 "/usr/include/c++/5/type_traits" 3 + template + struct remove_reference + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&> + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&&> + { typedef _Tp type; }; + + template::value> + struct __add_lvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_lvalue_reference_helper<_Tp, true> + { typedef _Tp& type; }; + + + template + struct add_lvalue_reference + : public __add_lvalue_reference_helper<_Tp> + { }; + + template::value> + struct __add_rvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_rvalue_reference_helper<_Tp, true> + { typedef _Tp&& type; }; + + + template + struct add_rvalue_reference + : public __add_rvalue_reference_helper<_Tp> + { }; +# 1631 "/usr/include/c++/5/type_traits" 3 + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { typedef _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, false, true> + { typedef volatile _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, false> + { typedef const _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, true> + { typedef const volatile _Unqualified __type; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; + + public: + typedef typename __match::__type __type; + }; + + + template + struct __make_unsigned + { typedef _Tp __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned short __type; }; + + template<> + struct __make_unsigned + { typedef unsigned int __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __make_unsigned : __make_unsigned + { }; +# 1718 "/usr/include/c++/5/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + typedef __make_unsigned::type> __unsignedt; + typedef typename __unsignedt::__type __unsigned_type; + typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; + + public: + typedef typename __cv_unsigned::__type __type; + }; + + template + class __make_unsigned_selector<_Tp, false, true> + { + + typedef unsigned char __smallest; + static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); + static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); + static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); + typedef conditional<__b2, unsigned int, unsigned long> __cond2; + typedef typename __cond2::type __cond2_type; + typedef conditional<__b1, unsigned short, __cond2_type> __cond1; + typedef typename __cond1::type __cond1_type; + + public: + typedef typename conditional<__b0, __smallest, __cond1_type>::type __type; + }; + + + + + + template + struct make_unsigned + { typedef typename __make_unsigned_selector<_Tp>::__type type; }; + + + template<> + struct make_unsigned; + + + + template + struct __make_signed + { typedef _Tp __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed short __type; }; + + template<> + struct __make_signed + { typedef signed int __type; }; + + template<> + struct __make_signed + { typedef signed long __type; }; + + template<> + struct __make_signed + { typedef signed long long __type; }; +# 1800 "/usr/include/c++/5/type_traits" 3 + template<> + struct __make_signed : __make_signed + { }; + template<> + struct __make_signed : __make_signed + { }; +# 1830 "/usr/include/c++/5/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + typedef __make_signed::type> __signedt; + typedef typename __signedt::__type __signed_type; + typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; + + public: + typedef typename __cv_signed::__type __type; + }; + + template + class __make_signed_selector<_Tp, false, true> + { + + typedef signed char __smallest; + static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); + static const bool __b1 = sizeof(_Tp) <= sizeof(signed short); + static const bool __b2 = sizeof(_Tp) <= sizeof(signed int); + typedef conditional<__b2, signed int, signed long> __cond2; + typedef typename __cond2::type __cond2_type; + typedef conditional<__b1, signed short, __cond2_type> __cond1; + typedef typename __cond1::type __cond1_type; + + public: + typedef typename conditional<__b0, __smallest, __cond1_type>::type __type; + }; + + + + + + template + struct make_signed + { typedef typename __make_signed_selector<_Tp>::__type type; }; + + + template<> + struct make_signed; +# 1888 "/usr/include/c++/5/type_traits" 3 + template + struct remove_extent + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[_Size]> + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[]> + { typedef _Tp type; }; + + + template + struct remove_all_extents + { typedef _Tp type; }; + + template + struct remove_all_extents<_Tp[_Size]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + template + struct remove_all_extents<_Tp[]> + { typedef typename remove_all_extents<_Tp>::type type; }; +# 1925 "/usr/include/c++/5/type_traits" 3 + template + struct __remove_pointer_helper + { typedef _Tp type; }; + + template + struct __remove_pointer_helper<_Tp, _Up*> + { typedef _Up type; }; + + + template + struct remove_pointer + : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> + { }; + + + template, + is_void<_Tp>>::value> + struct __add_pointer_helper + { typedef _Tp type; }; + + template + struct __add_pointer_helper<_Tp, true> + { typedef typename remove_reference<_Tp>::type* type; }; + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; +# 1964 "/usr/include/c++/5/type_traits" 3 + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 1984 "/usr/include/c++/5/type_traits" 3 + template::__type)> + struct aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; +# 2023 "/usr/include/c++/5/type_traits" 3 + template + struct aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + typedef typename aligned_storage<_S_len, alignment_value>::type type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; + + + + template::value, + bool _IsFunction = is_function<_Up>::value> + struct __decay_selector; + + + template + struct __decay_selector<_Up, false, false> + { typedef typename remove_cv<_Up>::type __type; }; + + template + struct __decay_selector<_Up, true, false> + { typedef typename remove_extent<_Up>::type* __type; }; + + template + struct __decay_selector<_Up, false, true> + { typedef typename add_pointer<_Up>::type __type; }; + + + template + class decay + { + typedef typename remove_reference<_Tp>::type __remove_type; + + public: + typedef typename __decay_selector<__remove_type>::__type type; + }; + + template + class reference_wrapper; + + + template + struct __strip_reference_wrapper + { + typedef _Tp __type; + }; + + template + struct __strip_reference_wrapper > + { + typedef _Tp& __type; + }; + + template + struct __decay_and_strip + { + typedef typename __strip_reference_wrapper< + typename decay<_Tp>::type>::__type __type; + }; + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { typedef _Tp type; }; + + template + using _Require = typename enable_if<__and_<_Cond...>::value>::type; + + + + template + struct conditional + { typedef _Iftrue type; }; + + + template + struct conditional + { typedef _Iffalse type; }; + + + template + struct common_type; + + + + struct __do_common_type_impl + { + template + static __success_type() + : std::declval<_Up>())>::type> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __common_type_impl + : private __do_common_type_impl + { + typedef decltype(_S_test<_Tp, _Up>(0)) type; + }; + + struct __do_member_type_wrapper + { + template + static __success_type _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __member_type_wrapper + : private __do_member_type_wrapper + { + typedef decltype(_S_test<_Tp>(0)) type; + }; + + template + struct __expanded_common_type_wrapper + { + typedef common_type type; + }; + + template + struct __expanded_common_type_wrapper<__failure_type, _Args...> + { typedef __failure_type type; }; + + template + struct common_type<_Tp> + { typedef typename decay<_Tp>::type type; }; + + template + struct common_type<_Tp, _Up> + : public __common_type_impl<_Tp, _Up>::type + { }; + + template + struct common_type<_Tp, _Up, _Vp...> + : public __expanded_common_type_wrapper>::type, _Vp...>::type + { }; + + + template + struct underlying_type + { + typedef __underlying_type(_Tp) type; + }; + + template + struct __declval_protector + { + static const bool __stop = false; + static typename add_rvalue_reference<_Tp>::type __delegate(); + }; + + template + inline typename add_rvalue_reference<_Tp>::type + declval() noexcept + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval_protector<_Tp>::__delegate(); + } + + + template + class result_of; + + + + + + + struct __result_of_memfun_ref_impl + { + template + static __success_type().*std::declval<_Fp>())(std::declval<_Args>()...) + )> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + struct __result_of_memfun_deref_impl + { + template + static __success_type()).*std::declval<_Fp>())(std::declval<_Args>()...) + )> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + struct __result_of_memobj_ref_impl + { + template + static __success_type().*std::declval<_Fp>() + )> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + + struct __result_of_memobj_deref_impl + { + template + static __success_type()).*std::declval<_Fp>() + )> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + typedef typename remove_cv::type>::type _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type::type type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + typedef typename remove_cv::type>::type _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type::type type; + }; + + template + struct __result_of_impl + { + typedef __failure_type type; + }; + + template + struct __result_of_impl + : public __result_of_memobj::type, _Arg> + { }; + + template + struct __result_of_impl + : public __result_of_memfun::type, _Arg, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __success_type()(std::declval<_Args>()...) + )> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; + }; + + template + struct result_of<_Functor(_ArgTypes...)> + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; +# 2407 "/usr/include/c++/5/type_traits" 3 + template using __void_t = void; +# 2425 "/usr/include/c++/5/type_traits" 3 + +} +# 58 "/usr/include/c++/5/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 74 "/usr/include/c++/5/bits/move.h" 3 + template + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } + + + + + + + + template + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" + " substituting _Tp is an lvalue reference type"); + return static_cast<_Tp&&>(__t); + } + + + + + + + template + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 118 "/usr/include/c++/5/bits/move.h" 3 + template + constexpr typename + conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 133 "/usr/include/c++/5/bits/move.h" 3 + template + inline _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + template + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } + + + +} +# 159 "/usr/include/c++/5/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 174 "/usr/include/c++/5/bits/move.h" 3 + template + inline void + swap(_Tp& __a, _Tp& __b) + + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value) + + { + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + inline void + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + + noexcept(noexcept(swap(*__a, *__b))) + + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 60 "/usr/include/c++/5/bits/stl_pair.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 76 "/usr/include/c++/5/bits/stl_pair.h" 3 + struct piecewise_construct_t { }; + + + constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); + + + template + class tuple; + + template + struct _Index_tuple; +# 95 "/usr/include/c++/5/bits/stl_pair.h" 3 + template + struct pair + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + + + + constexpr pair() + : first(), second() { } + + + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + + + + + + template, + is_convertible>::value>::type> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) { } + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + + template::value>::type> + constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template::value>::type> + constexpr pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template, + is_convertible<_U2, _T2>>::value>::type> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } + + template, + is_convertible<_U2, _T2>>::value>::type> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) { } + + template + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + pair& + operator=(const pair& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(pair&& __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + pair& + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + pair& + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } + + void + swap(pair& __p) + noexcept(noexcept(swap(first, __p.first)) + && noexcept(swap(second, __p.second))) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } + + private: + template + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + + }; + + + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } + + + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } + + + + + + template + inline void + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } +# 273 "/usr/include/c++/5/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 292 "/usr/include/c++/5/bits/stl_pair.h" 3 + +} +# 71 "/usr/include/c++/5/utility" 2 3 + + + + +# 1 "/usr/include/c++/5/initializer_list" 1 3 +# 33 "/usr/include/c++/5/initializer_list" 3 + +# 34 "/usr/include/c++/5/initializer_list" 3 + + + + + +#pragma GCC visibility push(default) + + + +namespace std +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} + +#pragma GCC visibility pop +# 76 "/usr/include/c++/5/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class tuple_size; + + template + class tuple_element; + + + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, std::pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, std::pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + }; + + template + constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& + get(std::pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& + get(std::pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& + get(const std::pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } +# 205 "/usr/include/c++/5/utility" 3 + template + struct _Index_tuple + { + typedef _Index_tuple<_Indexes..., sizeof...(_Indexes)> __next; + }; + + + template + struct _Build_index_tuple + { + typedef typename _Build_index_tuple<_Num - 1>::__type::__next __type; + }; + + template<> + struct _Build_index_tuple<0> + { + typedef _Index_tuple<> __type; + }; +# 267 "/usr/include/c++/5/utility" 3 + +} +# 61 "/usr/include/c++/5/algorithm" 2 3 +# 1 "/usr/include/c++/5/bits/stl_algobase.h" 1 3 +# 60 "/usr/include/c++/5/bits/stl_algobase.h" 3 +# 1 "/usr/include/c++/5/bits/functexcept.h" 1 3 +# 40 "/usr/include/c++/5/bits/functexcept.h" 3 +# 1 "/usr/include/c++/5/bits/exception_defines.h" 1 3 +# 41 "/usr/include/c++/5/bits/functexcept.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + void + __throw_bad_exception(void) __attribute__((__noreturn__)); + + + void + __throw_bad_alloc(void) __attribute__((__noreturn__)); + + + void + __throw_bad_cast(void) __attribute__((__noreturn__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__)); + + void + __throw_system_error(int) __attribute__((__noreturn__)); + + void + __throw_future_error(int) __attribute__((__noreturn__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__)); + + +} +# 61 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/5/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/include/c++/5/bits/cpp_type_traits.h" 3 + +# 36 "/usr/include/c++/5/bits/cpp_type_traits.h" 3 +# 68 "/usr/include/c++/5/bits/cpp_type_traits.h" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + template + class __normal_iterator; + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 287 "/usr/include/c++/5/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_normal_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, + _Container> > + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template + class move_iterator; + + template + struct __is_move_iterator< move_iterator<_Iterator> > + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + +} +# 62 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/5/ext/type_traits.h" 1 3 +# 32 "/usr/include/c++/5/ext/type_traits.h" 3 + +# 33 "/usr/include/c++/5/ext/type_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + inline bool + __is_null_pointer(_Type) + { return false; } + + + inline bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type> + struct __promote_2 + { + typedef __typeof__(_Tp2() + _Up2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type> + struct __promote_3 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type, + typename _Wp2 = typename __promote<_Wp>::__type> + struct __promote_4 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; + }; + + +} +# 63 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/5/ext/numeric_traits.h" 1 3 +# 32 "/usr/include/c++/5/ext/numeric_traits.h" 3 + +# 33 "/usr/include/c++/5/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 54 "/usr/include/c++/5/ext/numeric_traits.h" 3 + template + struct __numeric_traits_integer + { + + static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); + static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); + + + + static const bool __is_signed = ((_Value)(-1) < 0); + static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); + }; + + template + const _Value __numeric_traits_integer<_Value>::__min; + + template + const _Value __numeric_traits_integer<_Value>::__max; + + template + const bool __numeric_traits_integer<_Value>::__is_signed; + + template + const int __numeric_traits_integer<_Value>::__digits; +# 99 "/usr/include/c++/5/ext/numeric_traits.h" 3 + template + struct __numeric_traits_floating + { + + static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); + + + static const bool __is_signed = true; + static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); + static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); + }; + + template + const int __numeric_traits_floating<_Value>::__max_digits10; + + template + const bool __numeric_traits_floating<_Value>::__is_signed; + + template + const int __numeric_traits_floating<_Value>::__digits10; + + template + const int __numeric_traits_floating<_Value>::__max_exponent10; + + template + struct __numeric_traits + : public __conditional_type::__value, + __numeric_traits_integer<_Value>, + __numeric_traits_floating<_Value> >::__type + { }; + + +} +# 64 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 + +# 1 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 89 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3 + struct input_iterator_tag { }; + + + struct output_iterator_tag { }; + + + struct forward_iterator_tag : public input_iterator_tag { }; + + + + struct bidirectional_iterator_tag : public forward_iterator_tag { }; + + + + struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 116 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3 + template + struct iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 143 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3 + template> + struct __iterator_traits { }; + + template + struct __iterator_traits<_Iterator, + __void_t> + { + typedef typename _Iterator::iterator_category iterator_category; + typedef typename _Iterator::value_type value_type; + typedef typename _Iterator::difference_type difference_type; + typedef typename _Iterator::pointer pointer; + typedef typename _Iterator::reference reference; + }; + + template + struct iterator_traits + : public __iterator_traits<_Iterator> { }; +# 177 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits<_Tp*> + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + + template + struct iterator_traits + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + }; + + + + + + template + inline typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + + template + struct _Iter_base + { + typedef _Iterator iterator_type; + static iterator_type _S_base(_Iterator __it) + { return __it; } + }; + + template + struct _Iter_base<_Iterator, true> + { + typedef typename _Iterator::iterator_type iterator_type; + static iterator_type _S_base(_Iterator __it) + { return __it.base(); } + }; + + + template + using _RequireInputIter = typename + enable_if::iterator_category, + input_iterator_tag>::value>::type; + + + +} +# 66 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3 + + +# 1 "/usr/include/c++/5/debug/debug.h" 1 3 +# 46 "/usr/include/c++/5/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; +} +# 66 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + inline typename iterator_traits<_InputIterator>::difference_type + __distance(_InputIterator __first, _InputIterator __last, + input_iterator_tag) + { + + + + typename iterator_traits<_InputIterator>::difference_type __n = 0; + while (__first != __last) + { + ++__first; + ++__n; + } + return __n; + } + + template + inline typename iterator_traits<_RandomAccessIterator>::difference_type + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + + + + return __last - __first; + } +# 112 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3 + template + inline typename iterator_traits<_InputIterator>::difference_type + distance(_InputIterator __first, _InputIterator __last) + { + + return std::__distance(__first, __last, + std::__iterator_category(__first)); + } + + template + inline void + __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) + { + + + ; + while (__n--) + ++__i; + } + + template + inline void + __advance(_BidirectionalIterator& __i, _Distance __n, + bidirectional_iterator_tag) + { + + + + if (__n > 0) + while (__n--) + ++__i; + else + while (__n++) + --__i; + } + + template + inline void + __advance(_RandomAccessIterator& __i, _Distance __n, + random_access_iterator_tag) + { + + + + __i += __n; + } +# 171 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3 + template + inline void + advance(_InputIterator& __i, _Distance __n) + { + + typename iterator_traits<_InputIterator>::difference_type __d = __n; + std::__advance(__i, __d, std::__iterator_category(__i)); + } + + + + template + inline _ForwardIterator + next(_ForwardIterator __x, typename + iterator_traits<_ForwardIterator>::difference_type __n = 1) + { + std::advance(__x, __n); + return __x; + } + + template + inline _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/5/bits/stl_iterator.h" 1 3 +# 66 "/usr/include/c++/5/bits/stl_iterator.h" 3 +# 1 "/usr/include/c++/5/bits/ptr_traits.h" 1 3 +# 37 "/usr/include/c++/5/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + +template> struct __has_element_type : false_type { }; template struct __has_element_type<_Tp, __void_t> : true_type { }; +template> struct __has_difference_type : false_type { }; template struct __has_difference_type<_Tp, __void_t> : true_type { }; + + template::value> + struct __ptrtr_elt_type; + + template + struct __ptrtr_elt_type<_Tp, true> + { + typedef typename _Tp::element_type __type; + }; + + template class _SomePtr, typename _Tp, + typename... _Args> + struct __ptrtr_elt_type<_SomePtr<_Tp, _Args...>, false> + { + typedef _Tp __type; + }; + + template::value> + struct __ptrtr_diff_type + { + typedef typename _Tp::difference_type __type; + }; + + template + struct __ptrtr_diff_type<_Tp, false> + { + typedef ptrdiff_t __type; + }; + + template + class __ptrtr_rebind_helper + { + template + static constexpr true_type + _S_chk(typename _Ptr2::template rebind<_Up2>*); + + template + static constexpr false_type + _S_chk(...); + + public: + using __type = decltype(_S_chk<_Ptr, _Up>(nullptr)); + }; + + template::__type::value> + struct __ptrtr_rebind; + + template + struct __ptrtr_rebind<_Tp, _Up, true> + { + typedef typename _Tp::template rebind<_Up> __type; + }; + + template class _SomePtr, typename _Up, + typename _Tp, typename... _Args> + struct __ptrtr_rebind<_SomePtr<_Tp, _Args...>, _Up, false> + { + typedef _SomePtr<_Up, _Args...> __type; + }; + + template::type> + struct __ptrtr_not_void + { + typedef _Tp __type; + }; + + template + struct __ptrtr_not_void<_Tp, void> + { + struct __type { }; + }; + + template + class __ptrtr_pointer_to + { + typedef typename __ptrtr_elt_type<_Ptr>::__type __orig_type; + typedef typename __ptrtr_not_void<__orig_type>::__type __element_type; + + public: + static _Ptr pointer_to(__element_type& __e) + { return _Ptr::pointer_to(__e); } + }; + + + + + + template + struct pointer_traits : __ptrtr_pointer_to<_Ptr> + { + + typedef _Ptr pointer; + + typedef typename __ptrtr_elt_type<_Ptr>::__type element_type; + + typedef typename __ptrtr_diff_type<_Ptr>::__type difference_type; + + template + using rebind = typename __ptrtr_rebind<_Ptr, _Up>::__type; + }; + + + + + + template + struct pointer_traits<_Tp*> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template + using rebind = _Up*; + + + + + + + static pointer + pointer_to(typename __ptrtr_not_void::__type& __r) noexcept + { return std::addressof(__r); } + }; + + +} +# 67 "/usr/include/c++/5/bits/stl_iterator.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 96 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + class reverse_iterator + : public iterator::iterator_category, + typename iterator_traits<_Iterator>::value_type, + typename iterator_traits<_Iterator>::difference_type, + typename iterator_traits<_Iterator>::pointer, + typename iterator_traits<_Iterator>::reference> + { + protected: + _Iterator current; + + typedef iterator_traits<_Iterator> __traits_type; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::pointer pointer; + typedef typename __traits_type::reference reference; + + + + + + + + reverse_iterator() : current() { } + + + + + explicit + reverse_iterator(iterator_type __x) : current(__x) { } + + + + + reverse_iterator(const reverse_iterator& __x) + : current(__x.current) { } + + + + + + template + reverse_iterator(const reverse_iterator<_Iter>& __x) + : current(__x.base()) { } + + + + + iterator_type + base() const + { return current; } +# 160 "/usr/include/c++/5/bits/stl_iterator.h" 3 + reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + pointer + operator->() const + { return &(operator*()); } + + + + + + + reverse_iterator& + operator++() + { + --current; + return *this; + } + + + + + + + reverse_iterator + operator++(int) + { + reverse_iterator __tmp = *this; + --current; + return __tmp; + } + + + + + + + reverse_iterator& + operator--() + { + ++current; + return *this; + } + + + + + + + reverse_iterator + operator--(int) + { + reverse_iterator __tmp = *this; + ++current; + return __tmp; + } + + + + + + + reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + reference + operator[](difference_type __n) const + { return *(*this + __n); } + }; +# 290 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + inline bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + inline bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + inline bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + inline bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + inline bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + inline bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + template + inline typename reverse_iterator<_Iterator>::difference_type + operator-(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() - __x.base(); } + + template + inline reverse_iterator<_Iterator> + operator+(typename reverse_iterator<_Iterator>::difference_type __n, + const reverse_iterator<_Iterator>& __x) + { return reverse_iterator<_Iterator>(__x.base() - __n); } + + + + template + inline bool + operator==(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() == __y.base(); } + + template + inline bool + operator<(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __y.base() < __x.base(); } + + template + inline bool + operator!=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + template + inline bool + operator>(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __y < __x; } + + template + inline bool + operator<=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return !(__y < __x); } + + template + inline bool + operator>=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return !(__x < __y); } + + template + + + inline auto + operator-(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + -> decltype(__y.base() - __x.base()) + + + + + + { return __y.base() - __x.base(); } +# 414 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + class back_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + explicit + back_insert_iterator(_Container& __x) : container(&__x) { } +# 448 "/usr/include/c++/5/bits/stl_iterator.h" 3 + back_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_back(__value); + return *this; + } + + back_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_back(std::move(__value)); + return *this; + } + + + + back_insert_iterator& + operator*() + { return *this; } + + + back_insert_iterator& + operator++() + { return *this; } + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 490 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 505 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + class front_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + explicit front_insert_iterator(_Container& __x) : container(&__x) { } +# 538 "/usr/include/c++/5/bits/stl_iterator.h" 3 + front_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_front(__value); + return *this; + } + + front_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_front(std::move(__value)); + return *this; + } + + + + front_insert_iterator& + operator*() + { return *this; } + + + front_insert_iterator& + operator++() + { return *this; } + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 580 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 599 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + class insert_iterator + : public iterator + { + protected: + _Container* container; + typename _Container::iterator iter; + + public: + + typedef _Container container_type; + + + + + + insert_iterator(_Container& __x, typename _Container::iterator __i) + : container(&__x), iter(__i) {} +# 650 "/usr/include/c++/5/bits/stl_iterator.h" 3 + insert_iterator& + operator=(const typename _Container::value_type& __value) + { + iter = container->insert(iter, __value); + ++iter; + return *this; + } + + insert_iterator& + operator=(typename _Container::value_type&& __value) + { + iter = container->insert(iter, std::move(__value)); + ++iter; + return *this; + } + + + + insert_iterator& + operator*() + { return *this; } + + + insert_iterator& + operator++() + { return *this; } + + + insert_iterator& + operator++(int) + { return *this; } + }; +# 694 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + inline insert_iterator<_Container> + inserter(_Container& __x, _Iterator __i) + { + return insert_iterator<_Container>(__x, + typename _Container::iterator(__i)); + } + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 718 "/usr/include/c++/5/bits/stl_iterator.h" 3 + using std::iterator_traits; + using std::iterator; + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef iterator_traits<_Iterator> __traits_type; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; + typedef typename __traits_type::pointer pointer; + + constexpr __normal_iterator() noexcept + : _M_current(_Iterator()) { } + + explicit + __normal_iterator(const _Iterator& __i) noexcept + : _M_current(__i) { } + + + template + __normal_iterator(const __normal_iterator<_Iter, + typename __enable_if< + (std::__are_same<_Iter, typename _Container::pointer>::__value), + _Container>::__type>& __i) noexcept + : _M_current(__i.base()) { } + + + reference + operator*() const noexcept + { return *_M_current; } + + pointer + operator->() const noexcept + { return _M_current; } + + __normal_iterator& + operator++() noexcept + { + ++_M_current; + return *this; + } + + __normal_iterator + operator++(int) noexcept + { return __normal_iterator(_M_current++); } + + + __normal_iterator& + operator--() noexcept + { + --_M_current; + return *this; + } + + __normal_iterator + operator--(int) noexcept + { return __normal_iterator(_M_current--); } + + + reference + operator[](difference_type __n) const noexcept + { return _M_current[__n]; } + + __normal_iterator& + operator+=(difference_type __n) noexcept + { _M_current += __n; return *this; } + + __normal_iterator + operator+(difference_type __n) const noexcept + { return __normal_iterator(_M_current + __n); } + + __normal_iterator& + operator-=(difference_type __n) noexcept + { _M_current -= __n; return *this; } + + __normal_iterator + operator-(difference_type __n) const noexcept + { return __normal_iterator(_M_current - __n); } + + const _Iterator& + base() const noexcept + { return _M_current; } + }; +# 818 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + template + + + inline auto + operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept + -> decltype(__lhs.base() - __rhs.base()) + + + + + + { return __lhs.base() - __rhs.base(); } + + template + inline typename __normal_iterator<_Iterator, _Container>::difference_type + operator-(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() - __rhs.base(); } + + template + inline __normal_iterator<_Iterator, _Container> + operator+(typename __normal_iterator<_Iterator, _Container>::difference_type + __n, const __normal_iterator<_Iterator, _Container>& __i) + noexcept + { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } + + +} + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 958 "/usr/include/c++/5/bits/stl_iterator.h" 3 + template + class move_iterator + { + protected: + _Iterator _M_current; + + typedef iterator_traits<_Iterator> __traits_type; + typedef typename __traits_type::reference __base_ref; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + + typedef _Iterator pointer; + + + typedef typename conditional::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>::type reference; + + move_iterator() + : _M_current() { } + + explicit + move_iterator(iterator_type __i) + : _M_current(__i) { } + + template + move_iterator(const move_iterator<_Iter>& __i) + : _M_current(__i.base()) { } + + iterator_type + base() const + { return _M_current; } + + reference + operator*() const + { return static_cast(*_M_current); } + + pointer + operator->() const + { return _M_current; } + + move_iterator& + operator++() + { + ++_M_current; + return *this; + } + + move_iterator + operator++(int) + { + move_iterator __tmp = *this; + ++_M_current; + return __tmp; + } + + move_iterator& + operator--() + { + --_M_current; + return *this; + } + + move_iterator + operator--(int) + { + move_iterator __tmp = *this; + --_M_current; + return __tmp; + } + + move_iterator + operator+(difference_type __n) const + { return move_iterator(_M_current + __n); } + + move_iterator& + operator+=(difference_type __n) + { + _M_current += __n; + return *this; + } + + move_iterator + operator-(difference_type __n) const + { return move_iterator(_M_current - __n); } + + move_iterator& + operator-=(difference_type __n) + { + _M_current -= __n; + return *this; + } + + reference + operator[](difference_type __n) const + { return std::move(_M_current[__n]); } + }; + + + + + template + inline bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return __x.base() == __y.base(); } + + template + inline bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + inline bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + template + inline bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + inline bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return __x.base() < __y.base(); } + + template + inline bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + inline bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__y < __x); } + + template + inline bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + inline bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return __y < __x; } + + template + inline bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + inline bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x < __y); } + + template + inline bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + template + inline auto + operator-(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + -> decltype(__x.base() - __y.base()) + { return __x.base() - __y.base(); } + + template + inline auto + operator-(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + -> decltype(__x.base() - __y.base()) + { return __x.base() - __y.base(); } + + template + inline move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + { return __x + __n; } + + template + inline move_iterator<_Iterator> + make_move_iterator(_Iterator __i) + { return move_iterator<_Iterator>(__i); } + + template::value_type>::value, + _Iterator, move_iterator<_Iterator>>::type> + inline _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + +} +# 68 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 + + + +# 1 "/usr/include/c++/5/bits/predefined_ops.h" 1 3 +# 33 "/usr/include/c++/5/bits/predefined_ops.h" 3 +namespace __gnu_cxx +{ +namespace __ops +{ + struct _Iter_less_iter + { + template + + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 < *__it2; } + }; + + inline _Iter_less_iter + __iter_less_iter() + { return _Iter_less_iter(); } + + struct _Iter_less_val + { + template + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it < __val; } + }; + + inline _Iter_less_val + __iter_less_val() + { return _Iter_less_val(); } + + inline _Iter_less_val + __iter_comp_val(_Iter_less_iter) + { return _Iter_less_val(); } + + struct _Val_less_iter + { + template + bool + operator()(_Value& __val, _Iterator __it) const + { return __val < *__it; } + }; + + inline _Val_less_iter + __val_less_iter() + { return _Val_less_iter(); } + + inline _Val_less_iter + __val_comp_iter(_Iter_less_iter) + { return _Val_less_iter(); } + + struct _Iter_equal_to_iter + { + template + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 == *__it2; } + }; + + inline _Iter_equal_to_iter + __iter_equal_to_iter() + { return _Iter_equal_to_iter(); } + + struct _Iter_equal_to_val + { + template + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it == __val; } + }; + + inline _Iter_equal_to_val + __iter_equal_to_val() + { return _Iter_equal_to_val(); } + + inline _Iter_equal_to_val + __iter_comp_val(_Iter_equal_to_iter) + { return _Iter_equal_to_val(); } + + template + struct _Iter_comp_iter + { + _Compare _M_comp; + + _Iter_comp_iter(_Compare __comp) + : _M_comp(__comp) + { } + + template + + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) + { return bool(_M_comp(*__it1, *__it2)); } + }; + + template + + inline _Iter_comp_iter<_Compare> + __iter_comp_iter(_Compare __comp) + { return _Iter_comp_iter<_Compare>(__comp); } + + template + struct _Iter_comp_val + { + _Compare _M_comp; + + _Iter_comp_val(_Compare __comp) + : _M_comp(__comp) + { } + + template + bool + operator()(_Iterator __it, _Value& __val) + { return bool(_M_comp(*__it, __val)); } + }; + + template + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Compare __comp) + { return _Iter_comp_val<_Compare>(__comp); } + + template + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Iter_comp_iter<_Compare> __comp) + { return _Iter_comp_val<_Compare>(__comp._M_comp); } + + template + struct _Val_comp_iter + { + _Compare _M_comp; + + _Val_comp_iter(_Compare __comp) + : _M_comp(__comp) + { } + + template + bool + operator()(_Value& __val, _Iterator __it) + { return bool(_M_comp(__val, *__it)); } + }; + + template + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Compare __comp) + { return _Val_comp_iter<_Compare>(__comp); } + + template + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Iter_comp_iter<_Compare> __comp) + { return _Val_comp_iter<_Compare>(__comp._M_comp); } + + template + struct _Iter_equals_val + { + _Value& _M_value; + + _Iter_equals_val(_Value& __value) + : _M_value(__value) + { } + + template + bool + operator()(_Iterator __it) + { return *__it == _M_value; } + }; + + template + inline _Iter_equals_val<_Value> + __iter_equals_val(_Value& __val) + { return _Iter_equals_val<_Value>(__val); } + + template + struct _Iter_equals_iter + { + typename std::iterator_traits<_Iterator1>::reference _M_ref; + + _Iter_equals_iter(_Iterator1 __it1) + : _M_ref(*__it1) + { } + + template + bool + operator()(_Iterator2 __it2) + { return *__it2 == _M_ref; } + }; + + template + inline _Iter_equals_iter<_Iterator> + __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) + { return _Iter_equals_iter<_Iterator>(__it); } + + template + struct _Iter_pred + { + _Predicate _M_pred; + + _Iter_pred(_Predicate __pred) + : _M_pred(__pred) + { } + + template + bool + operator()(_Iterator __it) + { return bool(_M_pred(*__it)); } + }; + + template + inline _Iter_pred<_Predicate> + __pred_iter(_Predicate __pred) + { return _Iter_pred<_Predicate>(__pred); } + + template + struct _Iter_comp_to_val + { + _Compare _M_comp; + _Value& _M_value; + + _Iter_comp_to_val(_Compare __comp, _Value& __value) + : _M_comp(__comp), _M_value(__value) + { } + + template + bool + operator()(_Iterator __it) + { return bool(_M_comp(*__it, _M_value)); } + }; + + template + _Iter_comp_to_val<_Compare, _Value> + __iter_comp_val(_Compare __comp, _Value &__val) + { return _Iter_comp_to_val<_Compare, _Value>(__comp, __val); } + + template + struct _Iter_comp_to_iter + { + _Compare _M_comp; + typename std::iterator_traits<_Iterator1>::reference _M_ref; + + _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) + : _M_comp(__comp), _M_ref(*__it1) + { } + + template + bool + operator()(_Iterator2 __it2) + { return bool(_M_comp(*__it2, _M_ref)); } + }; + + template + inline _Iter_comp_to_iter<_Compare, _Iterator> + __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) + { return _Iter_comp_to_iter<_Compare, _Iterator>(__comp._M_comp, __it); } + + template + struct _Iter_negate + { + _Predicate _M_pred; + + _Iter_negate(_Predicate __pred) + : _M_pred(__pred) + { } + + template + bool + operator()(_Iterator __it) + { return !bool(_M_pred(*__it)); } + }; + + template + inline _Iter_negate<_Predicate> + __negate(_Iter_pred<_Predicate> __pred) + { return _Iter_negate<_Predicate>(__pred._M_pred); } + +} +} +# 72 "/usr/include/c++/5/bits/stl_algobase.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 118 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 148 "/usr/include/c++/5/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 164 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + _ForwardIterator2 + swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + ; + + for (; __first1 != __last1; ++__first1, ++__first2) + std::iter_swap(__first1, __first2); + return __first2; + } +# 192 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 216 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 240 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 262 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + + inline const _Tp& + max(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__a, __b)) + return __b; + return __a; + } + + + + template + struct _Niter_base + : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value> + { }; + + template + inline typename _Niter_base<_Iterator>::iterator_type + __niter_base(_Iterator __it) + { return std::_Niter_base<_Iterator>::_S_base(__it); } + + + template + struct _Miter_base + : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value> + { }; + + template + inline typename _Miter_base<_Iterator>::iterator_type + __miter_base(_Iterator __it) + { return std::_Miter_base<_Iterator>::_S_base(__it); } + + + + + + + + template + struct __copy_move + { + template + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, ++__first) + *__result = *__first; + return __result; + } + }; + + + template + struct __copy_move + { + template + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, ++__first) + *__result = std::move(*__first); + return __result; + } + }; + + + template<> + struct __copy_move + { + template + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = *__first; + ++__first; + ++__result; + } + return __result; + } + }; + + + template<> + struct __copy_move + { + template + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = std::move(*__first); + ++__first; + ++__result; + } + return __result; + } + }; + + + template + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + static _Tp* + __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + + using __assignable = conditional<_IsMove, + is_move_assignable<_Tp>, + is_copy_assignable<_Tp>>; + + static_assert( __assignable::type::value, "type is not assignable" ); + + const ptrdiff_t _Num = __last - __first; + if (_Num) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + return __result + _Num; + } + }; + + template + inline _OI + __copy_move_a(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::value_type _ValueTypeI; + typedef typename iterator_traits<_OI>::value_type _ValueTypeO; + typedef typename iterator_traits<_II>::iterator_category _Category; + const bool __simple = (__is_trivial(_ValueTypeI) + && __is_pointer<_II>::__value + && __is_pointer<_OI>::__value + && __are_same<_ValueTypeI, _ValueTypeO>::__value); + + return std::__copy_move<_IsMove, __simple, + _Category>::__copy_m(__first, __last, __result); + } + + + + template + struct char_traits; + + template + class istreambuf_iterator; + + template + class ostreambuf_iterator; + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(_CharT*, _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(const _CharT*, const _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + _CharT*>::__type + __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); + + template + inline _OI + __copy_move_a2(_II __first, _II __last, _OI __result) + { + return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), + std::__niter_base(__last), + std::__niter_base(__result))); + } +# 460 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline _OI + copy(_II __first, _II __last, _OI __result) + { + + + + + ; + + return (std::__copy_move_a2<__is_move_iterator<_II>::__value> + (std::__miter_base(__first), std::__miter_base(__last), + __result)); + } +# 493 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline _OI + move(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a2(std::__miter_base(__first), + std::__miter_base(__last), __result); + } + + + + + + + template + struct __copy_move_backward + { + template + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = *--__last; + return __result; + } + }; + + + template + struct __copy_move_backward + { + template + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type __n; + for (__n = __last - __first; __n > 0; --__n) + *--__result = *--__last; + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type __n; + for (__n = __last - __first; __n > 0; --__n) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template + struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> + { + template + static _Tp* + __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + + using __assignable = conditional<_IsMove, + is_move_assignable<_Tp>, + is_copy_assignable<_Tp>>; + + static_assert( __assignable::type::value, "type is not assignable" ); + + const ptrdiff_t _Num = __last - __first; + if (_Num) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + return __result - _Num; + } + }; + + template + inline _BI2 + __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) + { + typedef typename iterator_traits<_BI1>::value_type _ValueType1; + typedef typename iterator_traits<_BI2>::value_type _ValueType2; + typedef typename iterator_traits<_BI1>::iterator_category _Category; + const bool __simple = (__is_trivial(_ValueType1) + && __is_pointer<_BI1>::__value + && __is_pointer<_BI2>::__value + && __are_same<_ValueType1, _ValueType2>::__value); + + return std::__copy_move_backward<_IsMove, __simple, + _Category>::__copy_move_b(__first, + __last, + __result); + } + + template + inline _BI2 + __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) + { + return _BI2(std::__copy_move_backward_a<_IsMove> + (std::__niter_base(__first), std::__niter_base(__last), + std::__niter_base(__result))); + } +# 636 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline _BI2 + copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + + ; + + return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> + (std::__miter_base(__first), std::__miter_base(__last), + __result)); + } +# 672 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline _BI2 + move_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + + ; + + return std::__copy_move_backward_a2(std::__miter_base(__first), + std::__miter_base(__last), + __result); + } + + + + + + + template + inline typename + __gnu_cxx::__enable_if::__value, void>::__type + __fill_a(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + for (; __first != __last; ++__first) + *__first = __value; + } + + template + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type + __fill_a(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __first != __last; ++__first) + *__first = __tmp; + } + + + template + inline typename + __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type + __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) + { + const _Tp __tmp = __c; + if (const size_t __len = __last - __first) + __builtin_memset(__first, static_cast(__tmp), __len); + } +# 738 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), + __value); + } + + template + inline typename + __gnu_cxx::__enable_if::__value, _OutputIterator>::__type + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) + { + for (__decltype(__n + 0) __niter = __n; + __niter > 0; --__niter, ++__first) + *__first = __value; + return __first; + } + + template + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) + { + const _Tp __tmp = __value; + for (__decltype(__n + 0) __niter = __n; + __niter > 0; --__niter, ++__first) + *__first = __tmp; + return __first; + } + + template + inline typename + __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type + __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) + { + std::__fill_a(__first, __first + __n, __c); + return __first + __n; + } +# 798 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline _OI + fill_n(_OI __first, _Size __n, const _Tp& __value) + { + + + + return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); + } + + template + struct __equal + { + template + static bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + for (; __first1 != __last1; ++__first1, ++__first2) + if (!(*__first1 == *__first2)) + return false; + return true; + } + }; + + template<> + struct __equal + { + template + static bool + equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) + { + if (const size_t __len = (__last1 - __first1)) + return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); + return true; + } + }; + + template + inline bool + __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + typedef typename iterator_traits<_II2>::value_type _ValueType2; + const bool __simple = ((__is_integer<_ValueType1>::__value + || __is_pointer<_ValueType1>::__value) + && __is_pointer<_II1>::__value + && __is_pointer<_II2>::__value + && __are_same<_ValueType1, _ValueType2>::__value); + + return std::__equal<__simple>::equal(__first1, __last1, __first2); + } + + template + struct __lc_rai + { + template + static _II1 + __newlast1(_II1, _II1 __last1, _II2, _II2) + { return __last1; } + + template + static bool + __cnd2(_II __first, _II __last) + { return __first != __last; } + }; + + template<> + struct __lc_rai + { + template + static _RAI1 + __newlast1(_RAI1 __first1, _RAI1 __last1, + _RAI2 __first2, _RAI2 __last2) + { + const typename iterator_traits<_RAI1>::difference_type + __diff1 = __last1 - __first1; + const typename iterator_traits<_RAI2>::difference_type + __diff2 = __last2 - __first2; + return __diff2 < __diff1 ? __first1 + __diff2 : __last1; + } + + template + static bool + __cnd2(_RAI, _RAI) + { return true; } + }; + + template + bool + __lexicographical_compare_impl(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, + _Compare __comp) + { + typedef typename iterator_traits<_II1>::iterator_category _Category1; + typedef typename iterator_traits<_II2>::iterator_category _Category2; + typedef std::__lc_rai<_Category1, _Category2> __rai_type; + + __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); + for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); + ++__first1, ++__first2) + { + if (__comp(__first1, __first2)) + return true; + if (__comp(__first2, __first1)) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + template + struct __lexicographical_compare + { + template + static bool __lc(_II1, _II1, _II2, _II2); + }; + + template + template + bool + __lexicographical_compare<_BoolType>:: + __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + return std::__lexicographical_compare_impl(__first1, __last1, + __first2, __last2, + __gnu_cxx::__ops::__iter_less_iter()); + } + + template<> + struct __lexicographical_compare + { + template + static bool + __lc(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { + const size_t __len1 = __last1 - __first1; + const size_t __len2 = __last2 - __first2; + if (const size_t __len = std::min(__len1, __len2)) + if (int __result = __builtin_memcmp(__first1, __first2, __len)) + return __result < 0; + return __len1 < __len2; + } + }; + + template + inline bool + __lexicographical_compare_aux(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + typedef typename iterator_traits<_II2>::value_type _ValueType2; + const bool __simple = + (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value + && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed + && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed + && __is_pointer<_II1>::__value + && __is_pointer<_II2>::__value); + + return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, + __first2, __last2); + } + + template + _ForwardIterator + __lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp(__middle, __val)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } +# 998 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + inline constexpr int + __lg(int __n) + { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } + + inline constexpr unsigned + __lg(unsigned __n) + { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } + + inline constexpr long + __lg(long __n) + { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } + + inline constexpr unsigned long + __lg(unsigned long __n) + { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } + + inline constexpr long long + __lg(long long __n) + { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } + + inline constexpr unsigned long long + __lg(unsigned long long __n) + { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } + + + + +# 1055 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2)); + } +# 1087 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + for (; __first1 != __last1; ++__first1, ++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return true; + } +# 1215 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2), + std::__niter_base(__last2)); + } +# 1251 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, _Compare __comp) + { + + + + ; + ; + + return std::__lexicographical_compare_impl + (__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 1294 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1327 "/usr/include/c++/5/bits/stl_algobase.h" 3 + template + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } +# 1427 "/usr/include/c++/5/bits/stl_algobase.h" 3 + +} +# 62 "/usr/include/c++/5/algorithm" 2 3 +# 1 "/usr/include/c++/5/bits/stl_algo.h" 1 3 +# 59 "/usr/include/c++/5/bits/stl_algo.h" 3 +# 1 "/usr/include/c++/5/cstdlib" 1 3 +# 39 "/usr/include/c++/5/cstdlib" 3 + +# 40 "/usr/include/c++/5/cstdlib" 3 +# 72 "/usr/include/c++/5/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 32 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 +# 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 +typedef enum +{ + P_ALL, + P_PID, + P_PGID +} idtype_t; +# 42 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 +# 64 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 36 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 +# 37 "/usr/include/endian.h" 2 3 4 +# 60 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; +# 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 +# 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef __quad_t *__qaddr_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; +# 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 + + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4 +# 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 +# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +static __inline unsigned int +__bswap_32 (unsigned int __bsx) +{ + return __builtin_bswap32 (__bsx); +} +# 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + return __builtin_bswap64 (__bsx); +} +# 61 "/usr/include/endian.h" 2 3 4 +# 65 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 2 3 4 + +union wait + { + int w_status; + struct + { + + unsigned int __w_termsig:7; + unsigned int __w_coredump:1; + unsigned int __w_retcode:8; + unsigned int:16; + + + + + + + + } __wait_terminated; + struct + { + + unsigned int __w_stopval:8; + unsigned int __w_stopsig:8; + unsigned int:16; + + + + + + + } __wait_stopped; + }; +# 43 "/usr/include/stdlib.h" 2 3 4 +# 95 "/usr/include/stdlib.h" 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; + + +# 139 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) throw () ; + + + + +extern double atof (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +__extension__ extern long long int atoll (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +# 235 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/xlocale.h" 1 3 4 +# 27 "/usr/include/xlocale.h" 3 4 +typedef struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +} *__locale_t; + + +typedef __locale_t locale_t; +# 236 "/usr/include/stdlib.h" 2 3 4 + + + +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, __locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + __locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, __locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, __locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, __locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + __locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 305 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) throw () ; + + +extern long int a64l (const char *__s) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + + + +typedef __loff_t loff_t; + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; + + + + +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; +# 132 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 57 "/usr/include/time.h" 3 4 + + +typedef __clock_t clock_t; + + + +# 73 "/usr/include/time.h" 3 4 + + +typedef __time_t time_t; + + + +# 91 "/usr/include/time.h" 3 4 +typedef __clockid_t clockid_t; +# 103 "/usr/include/time.h" 3 4 +typedef __timer_t timer_t; +# 133 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; +# 200 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); +typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); +typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); +typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 +# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 +# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4 +typedef int __sig_atomic_t; + + + + +typedef struct + { + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; + } __sigset_t; +# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + + +typedef __sigset_t sigset_t; + + + + + +# 1 "/usr/include/time.h" 1 3 4 +# 120 "/usr/include/time.h" 3 4 +struct timespec + { + __time_t tv_sec; + __syscall_slong_t tv_nsec; + }; +# 44 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 +# 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +struct timeval + { + __time_t tv_sec; + __suseconds_t tv_usec; + }; +# 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 +# 54 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef long int __fd_mask; +# 64 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 96 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern "C" { +# 106 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 118 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 131 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +} +# 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 +extern "C" { + +__extension__ +extern unsigned int gnu_dev_major (unsigned long long int __dev) + throw () __attribute__ ((__const__)); +__extension__ +extern unsigned int gnu_dev_minor (unsigned long long int __dev) + throw () __attribute__ ((__const__)); +__extension__ +extern unsigned long long int gnu_dev_makedev (unsigned int __major, + unsigned int __minor) + throw () __attribute__ ((__const__)); +# 58 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 +} +# 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 262 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 +# 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +typedef unsigned long int pthread_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; +# 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +typedef union +{ + struct __pthread_mutex_s + { + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 + } __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + struct + { + int __lock; + unsigned int __futex; + __extension__ unsigned long long int __total_seq; + __extension__ unsigned long long int __wakeup_seq; + __extension__ unsigned long long int __woken_seq; + void *__mutex; + unsigned int __nwaiters; + unsigned int __broadcast_seq; + } __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + + + + +typedef union +{ + + struct + { + int __lock; + unsigned int __nr_readers; + unsigned int __readers_wakeup; + unsigned int __writer_wakeup; + unsigned int __nr_readers_queued; + unsigned int __nr_writers_queued; + int __writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; + + } __data; +# 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 271 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +} +# 315 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) throw (); + + +extern void srandom (unsigned int __seed) throw (); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + throw () __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + throw () __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int rand (void) throw (); + +extern void srand (unsigned int __seed) throw (); + + + + +extern int rand_r (unsigned int *__seed) throw (); + + + + + + + +extern double drand48 (void) throw (); +extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) throw (); +extern long int nrand48 (unsigned short int __xsubi[3]) + throw () __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) throw (); +extern long int jrand48 (unsigned short int __xsubi[3]) + throw () __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) throw (); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + throw () __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + throw () __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + + + + + +extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ; + +extern void *calloc (size_t __nmemb, size_t __size) + throw () __attribute__ ((__malloc__)) ; + + + + + + + + + + +extern void *realloc (void *__ptr, size_t __size) + throw () __attribute__ ((__warn_unused_result__)); + +extern void free (void *__ptr) throw (); + + + + +extern void cfree (void *__ptr) throw (); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) throw (); + + + + + +} +# 493 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + throw () __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ; + + + + +extern void abort (void) throw () __attribute__ ((__noreturn__)); + + + +extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); + + + + + + + + + +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + throw () __attribute__ ((__nonnull__ (1))); + + + + + + +extern void exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + + + +extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + + +extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; + + + + + +extern char *secure_getenv (const char *__name) + throw () __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) throw (); +# 606 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); +# 619 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 629 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 641 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 651 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 662 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; +# 673 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 683 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 693 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 705 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; + + + + + + + + + +extern int system (const char *__command) ; + + + + + + +extern char *canonicalize_file_name (const char *__name) + throw () __attribute__ ((__nonnull__ (1))) ; +# 733 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) throw () ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) throw () __attribute__ ((__const__)) ; +extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; + + + +__extension__ extern long long int llabs (long long int __x) + throw () __attribute__ ((__const__)) ; + + + + + + + +extern div_t div (int __numer, int __denom) + throw () __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + throw () __attribute__ ((__const__)) ; + + + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + throw () __attribute__ ((__const__)) ; + +# 811 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + throw () __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + throw () __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + throw () __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + throw () __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + throw () __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + throw () __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + + +extern int mblen (const char *__s, size_t __n) throw (); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) throw (); + + +extern int wctomb (char *__s, wchar_t __wchar) throw (); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) throw (); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + throw (); + + + + + + + + +extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; +# 898 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + +extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) throw (); + + + +extern int unlockpt (int __fd) throw (); + + + + +extern char *ptsname (int __fd) throw () ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + throw () __attribute__ ((__nonnull__ (1))); + + +# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 +# 955 "/usr/include/stdlib.h" 2 3 4 +# 967 "/usr/include/stdlib.h" 3 4 +} +# 73 "/usr/include/c++/5/cstdlib" 2 3 +# 114 "/usr/include/c++/5/cstdlib" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + using ::abs; + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + inline ldiv_t + div(long __i, long __j) { return ldiv(__i, __j); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 195 "/usr/include/c++/5/cstdlib" 3 + +} +# 209 "/usr/include/c++/5/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +# 241 "/usr/include/c++/5/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} +# 60 "/usr/include/c++/5/bits/stl_algo.h" 2 3 +# 1 "/usr/include/c++/5/bits/algorithmfwd.h" 1 3 +# 33 "/usr/include/c++/5/bits/algorithmfwd.h" 3 + +# 34 "/usr/include/c++/5/bits/algorithmfwd.h" 3 +# 42 "/usr/include/c++/5/bits/algorithmfwd.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 194 "/usr/include/c++/5/bits/algorithmfwd.h" 3 + template + bool + all_of(_IIter, _IIter, _Predicate); + + template + bool + any_of(_IIter, _IIter, _Predicate); + + + template + bool + binary_search(_FIter, _FIter, const _Tp&); + + template + bool + binary_search(_FIter, _FIter, const _Tp&, _Compare); + + template + _OIter + copy(_IIter, _IIter, _OIter); + + template + _BIter2 + copy_backward(_BIter1, _BIter1, _BIter2); + + + template + _OIter + copy_if(_IIter, _IIter, _OIter, _Predicate); + + template + _OIter + copy_n(_IIter, _Size, _OIter); + + + + + + template + pair<_FIter, _FIter> + equal_range(_FIter, _FIter, const _Tp&); + + template + pair<_FIter, _FIter> + equal_range(_FIter, _FIter, const _Tp&, _Compare); + + template + void + fill(_FIter, _FIter, const _Tp&); + + template + _OIter + fill_n(_OIter, _Size, const _Tp&); + + + + template + _FIter1 + find_end(_FIter1, _FIter1, _FIter2, _FIter2); + + template + _FIter1 + find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); + + + + + + template + _IIter + find_if_not(_IIter, _IIter, _Predicate); + + + + + + + template + bool + includes(_IIter1, _IIter1, _IIter2, _IIter2); + + template + bool + includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); + + template + void + inplace_merge(_BIter, _BIter, _BIter); + + template + void + inplace_merge(_BIter, _BIter, _BIter, _Compare); + + + template + bool + is_heap(_RAIter, _RAIter); + + template + bool + is_heap(_RAIter, _RAIter, _Compare); + + template + _RAIter + is_heap_until(_RAIter, _RAIter); + + template + _RAIter + is_heap_until(_RAIter, _RAIter, _Compare); + + template + bool + is_partitioned(_IIter, _IIter, _Predicate); + + template + bool + is_permutation(_FIter1, _FIter1, _FIter2); + + template + bool + is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); + + template + bool + is_sorted(_FIter, _FIter); + + template + bool + is_sorted(_FIter, _FIter, _Compare); + + template + _FIter + is_sorted_until(_FIter, _FIter); + + template + _FIter + is_sorted_until(_FIter, _FIter, _Compare); + + + template + void + iter_swap(_FIter1, _FIter2); + + template + _FIter + lower_bound(_FIter, _FIter, const _Tp&); + + template + _FIter + lower_bound(_FIter, _FIter, const _Tp&, _Compare); + + template + void + make_heap(_RAIter, _RAIter); + + template + void + make_heap(_RAIter, _RAIter, _Compare); + + template + + const _Tp& + max(const _Tp&, const _Tp&); + + template + + const _Tp& + max(const _Tp&, const _Tp&, _Compare); + + + + + template + + const _Tp& + min(const _Tp&, const _Tp&); + + template + + const _Tp& + min(const _Tp&, const _Tp&, _Compare); + + + + + template + + pair + minmax(const _Tp&, const _Tp&); + + template + + pair + minmax(const _Tp&, const _Tp&, _Compare); + + template + + pair<_FIter, _FIter> + minmax_element(_FIter, _FIter); + + template + + pair<_FIter, _FIter> + minmax_element(_FIter, _FIter, _Compare); + + template + + _Tp + min(initializer_list<_Tp>); + + template + + _Tp + min(initializer_list<_Tp>, _Compare); + + template + + _Tp + max(initializer_list<_Tp>); + + template + + _Tp + max(initializer_list<_Tp>, _Compare); + + template + + pair<_Tp, _Tp> + minmax(initializer_list<_Tp>); + + template + + pair<_Tp, _Tp> + minmax(initializer_list<_Tp>, _Compare); + + + + + template + bool + next_permutation(_BIter, _BIter); + + template + bool + next_permutation(_BIter, _BIter, _Compare); + + + template + bool + none_of(_IIter, _IIter, _Predicate); + + + + + + template + _RAIter + partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); + + template + _RAIter + partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); + + + + + template + pair<_OIter1, _OIter2> + partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); + + template + _FIter + partition_point(_FIter, _FIter, _Predicate); + + + template + void + pop_heap(_RAIter, _RAIter); + + template + void + pop_heap(_RAIter, _RAIter, _Compare); + + template + bool + prev_permutation(_BIter, _BIter); + + template + bool + prev_permutation(_BIter, _BIter, _Compare); + + template + void + push_heap(_RAIter, _RAIter); + + template + void + push_heap(_RAIter, _RAIter, _Compare); + + + + template + _FIter + remove(_FIter, _FIter, const _Tp&); + + template + _FIter + remove_if(_FIter, _FIter, _Predicate); + + template + _OIter + remove_copy(_IIter, _IIter, _OIter, const _Tp&); + + template + _OIter + remove_copy_if(_IIter, _IIter, _OIter, _Predicate); + + + + template + _OIter + replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); + + template + _OIter + replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); + + + + template + void + reverse(_BIter, _BIter); + + template + _OIter + reverse_copy(_BIter, _BIter, _OIter); + + inline namespace _V2 + { + template + _FIter + rotate(_FIter, _FIter, _FIter); + } + + template + _OIter + rotate_copy(_FIter, _FIter, _FIter, _OIter); +# 552 "/usr/include/c++/5/bits/algorithmfwd.h" 3 + template + void + shuffle(_RAIter, _RAIter, _UGenerator&&); + + + template + void + sort_heap(_RAIter, _RAIter); + + template + void + sort_heap(_RAIter, _RAIter, _Compare); + + template + _BIter + stable_partition(_BIter, _BIter, _Predicate); + + template + void + swap(_Tp&, _Tp&) + + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value) + + ; + + template + void + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + + noexcept(noexcept(swap(*__a, *__b))) + + ; + + template + _FIter2 + swap_ranges(_FIter1, _FIter1, _FIter2); + + + + template + _FIter + unique(_FIter, _FIter); + + template + _FIter + unique(_FIter, _FIter, _BinaryPredicate); + + + + template + _FIter + upper_bound(_FIter, _FIter, const _Tp&); + + template + _FIter + upper_bound(_FIter, _FIter, const _Tp&, _Compare); + + + + + + template + _FIter + adjacent_find(_FIter, _FIter); + + template + _FIter + adjacent_find(_FIter, _FIter, _BinaryPredicate); + + template + typename iterator_traits<_IIter>::difference_type + count(_IIter, _IIter, const _Tp&); + + template + typename iterator_traits<_IIter>::difference_type + count_if(_IIter, _IIter, _Predicate); + + template + bool + equal(_IIter1, _IIter1, _IIter2); + + template + bool + equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); + + template + _IIter + find(_IIter, _IIter, const _Tp&); + + template + _FIter1 + find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); + + template + _FIter1 + find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); + + template + _IIter + find_if(_IIter, _IIter, _Predicate); + + template + _Funct + for_each(_IIter, _IIter, _Funct); + + template + void + generate(_FIter, _FIter, _Generator); + + template + _OIter + generate_n(_OIter, _Size, _Generator); + + template + bool + lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); + + template + bool + lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); + + template + + _FIter + max_element(_FIter, _FIter); + + template + + _FIter + max_element(_FIter, _FIter, _Compare); + + template + _OIter + merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); + + template + _OIter + merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); + + template + + _FIter + min_element(_FIter, _FIter); + + template + + _FIter + min_element(_FIter, _FIter, _Compare); + + template + pair<_IIter1, _IIter2> + mismatch(_IIter1, _IIter1, _IIter2); + + template + pair<_IIter1, _IIter2> + mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); + + template + void + nth_element(_RAIter, _RAIter, _RAIter); + + template + void + nth_element(_RAIter, _RAIter, _RAIter, _Compare); + + template + void + partial_sort(_RAIter, _RAIter, _RAIter); + + template + void + partial_sort(_RAIter, _RAIter, _RAIter, _Compare); + + template + _BIter + partition(_BIter, _BIter, _Predicate); + + template + void + random_shuffle(_RAIter, _RAIter); + + template + void + random_shuffle(_RAIter, _RAIter, + + _Generator&&); + + + + + template + void + replace(_FIter, _FIter, const _Tp&, const _Tp&); + + template + void + replace_if(_FIter, _FIter, _Predicate, const _Tp&); + + template + _FIter1 + search(_FIter1, _FIter1, _FIter2, _FIter2); + + template + _FIter1 + search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); + + template + _FIter + search_n(_FIter, _FIter, _Size, const _Tp&); + + template + _FIter + search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); + + template + _OIter + set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); + + template + _OIter + set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); + + template + _OIter + set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); + + template + _OIter + set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); + + template + _OIter + set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); + + template + _OIter + set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, + _OIter, _Compare); + + template + _OIter + set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); + + template + _OIter + set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); + + template + void + sort(_RAIter, _RAIter); + + template + void + sort(_RAIter, _RAIter, _Compare); + + template + void + stable_sort(_RAIter, _RAIter); + + template + void + stable_sort(_RAIter, _RAIter, _Compare); + + template + _OIter + transform(_IIter, _IIter, _OIter, _UnaryOperation); + + template + _OIter + transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); + + template + _OIter + unique_copy(_IIter, _IIter, _OIter); + + template + _OIter + unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); + + +} +# 61 "/usr/include/c++/5/bits/stl_algo.h" 2 3 +# 1 "/usr/include/c++/5/bits/stl_heap.h" 1 3 +# 62 "/usr/include/c++/5/bits/stl_heap.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + _Distance + __is_heap_until(_RandomAccessIterator __first, _Distance __n, + _Compare __comp) + { + _Distance __parent = 0; + for (_Distance __child = 1; __child < __n; ++__child) + { + if (__comp(__first + __parent, __first + __child)) + return __child; + if ((__child & 1) == 0) + ++__parent; + } + return __n; + } + + + + template + inline bool + __is_heap(_RandomAccessIterator __first, _Distance __n) + { + return std::__is_heap_until(__first, __n, + __gnu_cxx::__ops::__iter_less_iter()) == __n; + } + + template + inline bool + __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) + { + return std::__is_heap_until(__first, __n, + __gnu_cxx::__ops::__iter_comp_iter(__comp)) == __n; + } + + template + inline bool + __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { return std::__is_heap(__first, std::distance(__first, __last)); } + + template + inline bool + __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { return std::__is_heap(__first, __comp, std::distance(__first, __last)); } + + + + + template + void + __push_heap(_RandomAccessIterator __first, + _Distance __holeIndex, _Distance __topIndex, _Tp __value, + _Compare __comp) + { + _Distance __parent = (__holeIndex - 1) / 2; + while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) + { + *(__first + __holeIndex) = std::move(*(__first + __parent)); + __holeIndex = __parent; + __parent = (__holeIndex - 1) / 2; + } + *(__first + __holeIndex) = std::move(__value); + } +# 148 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + + + + + ; + ; + + _ValueType __value = std::move(*(__last - 1)); + std::__push_heap(__first, _DistanceType((__last - __first) - 1), + _DistanceType(0), std::move(__value), + __gnu_cxx::__ops::__iter_less_val()); + } +# 182 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + + + + ; + ; + + _ValueType __value = std::move(*(__last - 1)); + std::__push_heap(__first, _DistanceType((__last - __first) - 1), + _DistanceType(0), std::move(__value), + __gnu_cxx::__ops::__iter_comp_val(__comp)); + } + + template + void + __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, + _Distance __len, _Tp __value, _Compare __comp) + { + const _Distance __topIndex = __holeIndex; + _Distance __secondChild = __holeIndex; + while (__secondChild < (__len - 1) / 2) + { + __secondChild = 2 * (__secondChild + 1); + if (__comp(__first + __secondChild, + __first + (__secondChild - 1))) + __secondChild--; + *(__first + __holeIndex) = std::move(*(__first + __secondChild)); + __holeIndex = __secondChild; + } + if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) + { + __secondChild = 2 * (__secondChild + 1); + *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) + ; + __holeIndex = __secondChild - 1; + } + std::__push_heap(__first, __holeIndex, __topIndex, + std::move(__value), + __gnu_cxx::__ops::__iter_comp_val(__comp)); + } + + template + inline void + __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _RandomAccessIterator __result, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + _ValueType __value = std::move(*__result); + *__result = std::move(*__first); + std::__adjust_heap(__first, _DistanceType(0), + _DistanceType(__last - __first), + std::move(__value), __comp); + } +# 261 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + + + + + + ; + ; + ; + + if (__last - __first > 1) + { + --__last; + std::__pop_heap(__first, __last, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } + } +# 295 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + pop_heap(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + + + + ; + ; + ; + + if (__last - __first > 1) + { + --__last; + std::__pop_heap(__first, __last, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + } + + template + void + __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + if (__last - __first < 2) + return; + + const _DistanceType __len = __last - __first; + _DistanceType __parent = (__len - 2) / 2; + while (true) + { + _ValueType __value = std::move(*(__first + __parent)); + std::__adjust_heap(__first, __parent, __len, std::move(__value), + __comp); + if (__parent == 0) + return; + __parent--; + } + } +# 349 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + + + + + + ; + + std::__make_heap(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 374 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + + + + ; + + std::__make_heap(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + void + __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + while (__last - __first > 1) + { + --__last; + std::__pop_heap(__first, __last, __last, __comp); + } + } +# 408 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + + + + + + ; + ; + + std::__sort_heap(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 434 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline void + sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + + + + ; + ; + + std::__sort_heap(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 460 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline _RandomAccessIterator + is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + + + + + + ; + + return __first + + std::__is_heap_until(__first, std::distance(__first, __last), + __gnu_cxx::__ops::__iter_less_iter()); + } +# 487 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline _RandomAccessIterator + is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + + + + ; + + return __first + + std::__is_heap_until(__first, std::distance(__first, __last), + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 509 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline bool + is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { return std::is_heap_until(__first, __last) == __last; } +# 522 "/usr/include/c++/5/bits/stl_heap.h" 3 + template + inline bool + is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { return std::is_heap_until(__first, __last, __comp) == __last; } + + + +} +# 62 "/usr/include/c++/5/bits/stl_algo.h" 2 3 +# 1 "/usr/include/c++/5/bits/stl_tempbuf.h" 1 3 +# 60 "/usr/include/c++/5/bits/stl_tempbuf.h" 3 +# 1 "/usr/include/c++/5/bits/stl_construct.h" 1 3 +# 59 "/usr/include/c++/5/bits/stl_construct.h" 3 +# 1 "/usr/include/c++/5/new" 1 3 +# 37 "/usr/include/c++/5/new" 3 + +# 38 "/usr/include/c++/5/new" 3 + + +# 1 "/usr/include/c++/5/exception" 1 3 +# 33 "/usr/include/c++/5/exception" 3 + +# 34 "/usr/include/c++/5/exception" 3 + +#pragma GCC visibility push(default) + + +# 1 "/usr/include/c++/5/bits/atomic_lockfree_defines.h" 1 3 +# 33 "/usr/include/c++/5/bits/atomic_lockfree_defines.h" 3 + +# 34 "/usr/include/c++/5/bits/atomic_lockfree_defines.h" 3 +# 39 "/usr/include/c++/5/exception" 2 3 + +extern "C++" { + +namespace std +{ +# 60 "/usr/include/c++/5/exception" 3 + class exception + { + public: + exception() noexcept { } + virtual ~exception() noexcept; + + + + virtual const char* what() const noexcept; + }; + + + + class bad_exception : public exception + { + public: + bad_exception() noexcept { } + + + + virtual ~bad_exception() noexcept; + + + virtual const char* what() const noexcept; + }; + + + typedef void (*terminate_handler) (); + + + typedef void (*unexpected_handler) (); + + + terminate_handler set_terminate(terminate_handler) noexcept; + + + + terminate_handler get_terminate() noexcept; + + + + + void terminate() noexcept __attribute__ ((__noreturn__)); + + + unexpected_handler set_unexpected(unexpected_handler) noexcept; + + + + unexpected_handler get_unexpected() noexcept; + + + + + void unexpected() __attribute__ ((__noreturn__)); +# 127 "/usr/include/c++/5/exception" 3 + bool uncaught_exception() noexcept __attribute__ ((__pure__)); + + +} + +namespace __gnu_cxx +{ + +# 152 "/usr/include/c++/5/exception" 3 + void __verbose_terminate_handler(); + + +} + +} + +#pragma GCC visibility pop + + +# 1 "/usr/include/c++/5/bits/exception_ptr.h" 1 3 +# 34 "/usr/include/c++/5/bits/exception_ptr.h" 3 +#pragma GCC visibility push(default) +# 43 "/usr/include/c++/5/bits/exception_ptr.h" 3 +extern "C++" { + +namespace std +{ + class type_info; + + + + + + namespace __exception_ptr + { + class exception_ptr; + } + + using __exception_ptr::exception_ptr; + + + + + + exception_ptr current_exception() noexcept; + + + void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); + + namespace __exception_ptr + { + + + + + class exception_ptr + { + void* _M_exception_object; + + explicit exception_ptr(void* __e) noexcept; + + void _M_addref() noexcept; + void _M_release() noexcept; + + void *_M_get() const noexcept __attribute__ ((__pure__)); + + friend exception_ptr std::current_exception() noexcept; + friend void std::rethrow_exception(exception_ptr); + + public: + exception_ptr() noexcept; + + exception_ptr(const exception_ptr&) noexcept; + + + exception_ptr(nullptr_t) noexcept + : _M_exception_object(0) + { } + + exception_ptr(exception_ptr&& __o) noexcept + : _M_exception_object(__o._M_exception_object) + { __o._M_exception_object = 0; } +# 111 "/usr/include/c++/5/bits/exception_ptr.h" 3 + exception_ptr& + operator=(const exception_ptr&) noexcept; + + + exception_ptr& + operator=(exception_ptr&& __o) noexcept + { + exception_ptr(static_cast(__o)).swap(*this); + return *this; + } + + + ~exception_ptr() noexcept; + + void + swap(exception_ptr&) noexcept; +# 138 "/usr/include/c++/5/bits/exception_ptr.h" 3 + explicit operator bool() const + { return _M_exception_object; } + + + friend bool + operator==(const exception_ptr&, const exception_ptr&) + noexcept __attribute__ ((__pure__)); + + const class std::type_info* + __cxa_exception_type() const noexcept + __attribute__ ((__pure__)); + }; + + bool + operator==(const exception_ptr&, const exception_ptr&) + noexcept __attribute__ ((__pure__)); + + bool + operator!=(const exception_ptr&, const exception_ptr&) + noexcept __attribute__ ((__pure__)); + + inline void + swap(exception_ptr& __lhs, exception_ptr& __rhs) + { __lhs.swap(__rhs); } + + } + + + + template + exception_ptr + make_exception_ptr(_Ex __ex) noexcept + { + + try + { + throw __ex; + } + catch(...) + { + return current_exception(); + } + + + + } + + + + + + template + exception_ptr + copy_exception(_Ex __ex) noexcept __attribute__ ((__deprecated__)); + + template + exception_ptr + copy_exception(_Ex __ex) noexcept + { return std::make_exception_ptr<_Ex>(__ex); } + + +} + +} + +#pragma GCC visibility pop +# 163 "/usr/include/c++/5/exception" 2 3 +# 1 "/usr/include/c++/5/bits/nested_exception.h" 1 3 +# 33 "/usr/include/c++/5/bits/nested_exception.h" 3 +#pragma GCC visibility push(default) +# 45 "/usr/include/c++/5/bits/nested_exception.h" 3 +extern "C++" { + +namespace std +{ + + + + + + + class nested_exception + { + exception_ptr _M_ptr; + + public: + nested_exception() noexcept : _M_ptr(current_exception()) { } + + nested_exception(const nested_exception&) noexcept = default; + + nested_exception& operator=(const nested_exception&) noexcept = default; + + virtual ~nested_exception() noexcept; + + [[noreturn]] + void + rethrow_nested() const + { + if (_M_ptr) + rethrow_exception(_M_ptr); + std::terminate(); + } + + exception_ptr + nested_ptr() const noexcept + { return _M_ptr; } + }; + + template + struct _Nested_exception : public _Except, public nested_exception + { + explicit _Nested_exception(const _Except& __ex) + : _Except(__ex) + { } + + explicit _Nested_exception(_Except&& __ex) + : _Except(static_cast<_Except&&>(__ex)) + { } + }; + + template + struct _Throw_with_nested_impl + { + template + static void _S_throw(_Up&& __t) + { throw _Nested_exception<_Tp>{static_cast<_Up&&>(__t)}; } + }; + + template + struct _Throw_with_nested_impl<_Tp, false> + { + template + static void _S_throw(_Up&& __t) + { throw static_cast<_Up&&>(__t); } + }; + + template + struct _Throw_with_nested_helper : _Throw_with_nested_impl<_Tp> + { }; + + template + struct _Throw_with_nested_helper<_Tp, false> + : _Throw_with_nested_impl<_Tp, false> + { }; + + template + struct _Throw_with_nested_helper<_Tp&, false> + : _Throw_with_nested_helper<_Tp> + { }; + + template + struct _Throw_with_nested_helper<_Tp&&, false> + : _Throw_with_nested_helper<_Tp> + { }; + + + + template + [[noreturn]] + inline void + throw_with_nested(_Tp&& __t) + { + _Throw_with_nested_helper<_Tp>::_S_throw(static_cast<_Tp&&>(__t)); + } + + template + struct _Rethrow_if_nested_impl + { + static void _S_rethrow(const _Tp& __t) + { + if (auto __tp = dynamic_cast(&__t)) + __tp->rethrow_nested(); + } + }; + + template + struct _Rethrow_if_nested_impl<_Tp, false> + { + static void _S_rethrow(const _Tp&) { } + }; + + + template + inline void + rethrow_if_nested(const _Ex& __ex) + { + _Rethrow_if_nested_impl<_Ex>::_S_rethrow(__ex); + } + + +} + +} + + + +#pragma GCC visibility pop +# 164 "/usr/include/c++/5/exception" 2 3 +# 41 "/usr/include/c++/5/new" 2 3 + +#pragma GCC visibility push(default) + +extern "C++" { + +namespace std +{ + + + + + + + class bad_alloc : public exception + { + public: + bad_alloc() throw() { } + + + + virtual ~bad_alloc() throw(); + + + virtual const char* what() const throw(); + }; + + + class bad_array_new_length : public bad_alloc + { + public: + bad_array_new_length() throw() { }; + + + + virtual ~bad_array_new_length() throw(); + + + virtual const char* what() const throw(); + }; + + + struct nothrow_t { }; + + extern const nothrow_t nothrow; + + + + typedef void (*new_handler)(); + + + + new_handler set_new_handler(new_handler) throw(); + + + + new_handler get_new_handler() noexcept; + +} +# 111 "/usr/include/c++/5/new" 3 +void* operator new(std::size_t) + __attribute__((__externally_visible__)); +void* operator new[](std::size_t) + __attribute__((__externally_visible__)); +void operator delete(void*) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*) noexcept + __attribute__((__externally_visible__)); +void* operator new(std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +void* operator new[](std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +void operator delete(void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); + + +inline void* operator new(std::size_t, void* __p) noexcept +{ return __p; } +inline void* operator new[](std::size_t, void* __p) noexcept +{ return __p; } + + +inline void operator delete (void*, void*) noexcept { } +inline void operator delete[](void*, void*) noexcept { } + +} + +#pragma GCC visibility pop +# 60 "/usr/include/c++/5/bits/stl_construct.h" 2 3 + +# 1 "/usr/include/c++/5/ext/alloc_traits.h" 1 3 +# 32 "/usr/include/c++/5/ext/alloc_traits.h" 3 + +# 33 "/usr/include/c++/5/ext/alloc_traits.h" 3 + + + +# 1 "/usr/include/c++/5/bits/alloc_traits.h" 1 3 +# 35 "/usr/include/c++/5/bits/alloc_traits.h" 3 +# 1 "/usr/include/c++/5/bits/memoryfwd.h" 1 3 +# 46 "/usr/include/c++/5/bits/memoryfwd.h" 3 + +# 47 "/usr/include/c++/5/bits/memoryfwd.h" 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/include/c++/5/bits/memoryfwd.h" 3 + template + class allocator; + + template<> + class allocator; + + + template + struct uses_allocator; + + + + +} +# 36 "/usr/include/c++/5/bits/alloc_traits.h" 2 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class __alloctr_rebind_helper + { + template + static constexpr true_type + _S_chk(typename _Alloc2::template rebind<_Tp2>::other*); + + template + static constexpr false_type + _S_chk(...); + + public: + using __type = decltype(_S_chk<_Alloc, _Tp>(nullptr)); + }; + + template::__type::value> + struct __alloctr_rebind; + + template + struct __alloctr_rebind<_Alloc, _Tp, true> + { + typedef typename _Alloc::template rebind<_Tp>::other __type; + }; + + template class _Alloc, typename _Tp, + typename _Up, typename... _Args> + struct __alloctr_rebind<_Alloc<_Up, _Args...>, _Tp, false> + { + typedef _Alloc<_Tp, _Args...> __type; + }; + + template + using __alloc_rebind = typename __alloctr_rebind<_Alloc, _Tp>::__type; + + + + + + template + struct allocator_traits + { + + typedef _Alloc allocator_type; + + typedef typename _Alloc::value_type value_type; +# 98 "/usr/include/c++/5/bits/alloc_traits.h" 3 +private: template static typename _Tp::pointer _S_pointer_helper(_Tp*); static value_type* _S_pointer_helper(...); typedef decltype(_S_pointer_helper((_Alloc*)0)) __pointer; public: + + + + + + + typedef __pointer pointer; + +private: template static typename _Tp::const_pointer _S_const_pointer_helper(_Tp*); static typename pointer_traits::template rebind _S_const_pointer_helper(...); typedef decltype(_S_const_pointer_helper((_Alloc*)0)) __const_pointer; public: +# 116 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __const_pointer const_pointer; + +private: template static typename _Tp::void_pointer _S_void_pointer_helper(_Tp*); static typename pointer_traits::template rebind _S_void_pointer_helper(...); typedef decltype(_S_void_pointer_helper((_Alloc*)0)) __void_pointer; public: +# 127 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __void_pointer void_pointer; + +private: template static typename _Tp::const_void_pointer _S_const_void_pointer_helper(_Tp*); static typename pointer_traits::template rebind _S_const_void_pointer_helper(...); typedef decltype(_S_const_void_pointer_helper((_Alloc*)0)) __const_void_pointer; public: +# 138 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __const_void_pointer const_void_pointer; + +private: template static typename _Tp::difference_type _S_difference_type_helper(_Tp*); static typename pointer_traits::difference_type _S_difference_type_helper(...); typedef decltype(_S_difference_type_helper((_Alloc*)0)) __difference_type; public: +# 149 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __difference_type difference_type; + +private: template static typename _Tp::size_type _S_size_type_helper(_Tp*); static typename make_unsigned::type _S_size_type_helper(...); typedef decltype(_S_size_type_helper((_Alloc*)0)) __size_type; public: +# 160 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __size_type size_type; + +private: template static typename _Tp::propagate_on_container_copy_assignment _S_propagate_on_container_copy_assignment_helper(_Tp*); static false_type _S_propagate_on_container_copy_assignment_helper(...); typedef decltype(_S_propagate_on_container_copy_assignment_helper((_Alloc*)0)) __propagate_on_container_copy_assignment; public: +# 171 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __propagate_on_container_copy_assignment + propagate_on_container_copy_assignment; + +private: template static typename _Tp::propagate_on_container_move_assignment _S_propagate_on_container_move_assignment_helper(_Tp*); static false_type _S_propagate_on_container_move_assignment_helper(...); typedef decltype(_S_propagate_on_container_move_assignment_helper((_Alloc*)0)) __propagate_on_container_move_assignment; public: +# 183 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __propagate_on_container_move_assignment + propagate_on_container_move_assignment; + +private: template static typename _Tp::propagate_on_container_swap _S_propagate_on_container_swap_helper(_Tp*); static false_type _S_propagate_on_container_swap_helper(...); typedef decltype(_S_propagate_on_container_swap_helper((_Alloc*)0)) __propagate_on_container_swap; public: +# 195 "/usr/include/c++/5/bits/alloc_traits.h" 3 + typedef __propagate_on_container_swap propagate_on_container_swap; + + + + template + using rebind_alloc = typename __alloctr_rebind<_Alloc, _Tp>::__type; + template + using rebind_traits = allocator_traits>; + + private: + template + struct __allocate_helper + { + template()->allocate( + std::declval(), + std::declval()))> + static true_type __test(int); + + template + static false_type __test(...); + + using type = decltype(__test<_Alloc>(0)); + }; + + template + using __has_allocate = typename __allocate_helper<_Alloc2>::type; + + template>> + static pointer + _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint) + { return __a.allocate(__n, __hint); } + + template>>> + static pointer + _S_allocate(_Alloc2& __a, size_type __n, _UnusedHint) + { return __a.allocate(__n); } + + template + struct __construct_helper + { + template()->construct( + std::declval<_Tp*>(), std::declval<_Args>()...))> + static true_type __test(int); + + template + static false_type __test(...); + + using type = decltype(__test<_Alloc>(0)); + }; + + template + using __has_construct + = typename __construct_helper<_Tp, _Args...>::type; + + template + static _Require<__has_construct<_Tp, _Args...>> + _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) + { __a.construct(__p, std::forward<_Args>(__args)...); } + + template + static + _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, + is_constructible<_Tp, _Args...>>> + _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) + { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } + + template + struct __destroy_helper + { + template()->destroy( + std::declval<_Tp*>()))> + static true_type __test(int); + + template + static false_type __test(...); + + using type = decltype(__test<_Alloc>(0)); + }; + + template + using __has_destroy = typename __destroy_helper<_Tp>::type; + + template + static _Require<__has_destroy<_Tp>> + _S_destroy(_Alloc& __a, _Tp* __p) + { __a.destroy(__p); } + + template + static _Require<__not_<__has_destroy<_Tp>>> + _S_destroy(_Alloc&, _Tp* __p) + { __p->~_Tp(); } + + template + struct __maxsize_helper + { + template()->max_size())> + static true_type __test(int); + + template + static false_type __test(...); + + using type = decltype(__test<_Alloc2>(0)); + }; + + template + using __has_max_size = typename __maxsize_helper<_Alloc2>::type; + + template>> + static size_type + _S_max_size(_Alloc2& __a, int) + { return __a.max_size(); } + + template>>> + static size_type + _S_max_size(_Alloc2&, ...) + { return __gnu_cxx::__numeric_traits::__max; } + + template + struct __select_helper + { + template() + ->select_on_container_copy_construction())> + static true_type __test(int); + + template + static false_type __test(...); + + using type = decltype(__test<_Alloc2>(0)); + }; + + template + using __has_soccc = typename __select_helper<_Alloc2>::type; + + template>> + static _Alloc2 + _S_select(_Alloc2& __a, int) + { return __a.select_on_container_copy_construction(); } + + template>>> + static _Alloc2 + _S_select(_Alloc2& __a, ...) + { return __a; } + + public: +# 358 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static pointer + allocate(_Alloc& __a, size_type __n) + { return __a.allocate(__n); } +# 373 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static pointer + allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) + { return _S_allocate(__a, __n, __hint); } +# 385 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static void deallocate(_Alloc& __a, pointer __p, size_type __n) + { __a.deallocate(__p, __n); } +# 399 "/usr/include/c++/5/bits/alloc_traits.h" 3 + template + static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) + -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) + { _S_construct(__a, __p, std::forward<_Args>(__args)...); } +# 412 "/usr/include/c++/5/bits/alloc_traits.h" 3 + template + static void destroy(_Alloc& __a, _Tp* __p) + { _S_destroy(__a, __p); } +# 424 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static size_type max_size(const _Alloc& __a) noexcept + { return _S_max_size(__a, 0); } +# 435 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static _Alloc + select_on_container_copy_construction(const _Alloc& __rhs) + { return _S_select(__rhs, 0); } + }; + + + template + struct allocator_traits> + { + + using allocator_type = allocator<_Tp>; + + using value_type = _Tp; + + + using pointer = _Tp*; + + + using const_pointer = const _Tp*; + + + using void_pointer = void*; + + + using const_void_pointer = const void*; + + + using difference_type = std::ptrdiff_t; + + + using size_type = std::size_t; + + + using propagate_on_container_copy_assignment = false_type; + + + using propagate_on_container_move_assignment = true_type; + + + using propagate_on_container_swap = false_type; + + template + using rebind_alloc = allocator<_Up>; + + template + using rebind_traits = allocator_traits>; +# 489 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static pointer + allocate(allocator_type& __a, size_type __n) + { return __a.allocate(__n); } +# 503 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static pointer + allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) + { return __a.allocate(__n, __hint); } +# 515 "/usr/include/c++/5/bits/alloc_traits.h" 3 + static void + deallocate(allocator_type& __a, pointer __p, size_type __n) + { __a.deallocate(__p, __n); } +# 527 "/usr/include/c++/5/bits/alloc_traits.h" 3 + template + static void + construct(allocator_type& __a, _Up* __p, _Args&&... __args) + { __a.construct(__p, std::forward<_Args>(__args)...); } +# 539 "/usr/include/c++/5/bits/alloc_traits.h" 3 + template + static void + destroy(allocator_type& __a, _Up* __p) + { __a.destroy(__p); } + + + + + + + static size_type + max_size(const allocator_type& __a) noexcept + { return __a.max_size(); } + + + + + + + static allocator_type + select_on_container_copy_construction(const allocator_type& __rhs) + { return __rhs; } + }; + + + template + inline void + __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) + { __one = __two; } + + template + inline void + __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) + { } + + template + inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) + { + typedef allocator_traits<_Alloc> __traits; + typedef typename __traits::propagate_on_container_copy_assignment __pocca; + __do_alloc_on_copy(__one, __two, __pocca()); + } + + template + inline _Alloc __alloc_on_copy(const _Alloc& __a) + { + typedef allocator_traits<_Alloc> __traits; + return __traits::select_on_container_copy_construction(__a); + } + + template + inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) + { __one = std::move(__two); } + + template + inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) + { } + + template + inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) + { + typedef allocator_traits<_Alloc> __traits; + typedef typename __traits::propagate_on_container_move_assignment __pocma; + __do_alloc_on_move(__one, __two, __pocma()); + } + + template + inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) + { + using std::swap; + swap(__one, __two); + } + + template + inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) + { } + + template + inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) + { + typedef allocator_traits<_Alloc> __traits; + typedef typename __traits::propagate_on_container_swap __pocs; + __do_alloc_on_swap(__one, __two, __pocs()); + } + + template + class __is_copy_insertable_impl + { + typedef allocator_traits<_Alloc> _Traits; + + template(), + std::declval<_Up*>(), + std::declval()))> + static true_type + _M_select(int); + + template + static false_type + _M_select(...); + + public: + typedef decltype(_M_select(0)) type; + }; + + + template + struct __is_copy_insertable + : __is_copy_insertable_impl<_Alloc>::type + { }; + + + template + struct __is_copy_insertable> + : is_copy_constructible<_Tp> + { }; + + +} +# 37 "/usr/include/c++/5/ext/alloc_traits.h" 2 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __allocator_always_compares_equal : std::false_type { }; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + template struct array_allocator; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + template struct bitmap_allocator; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + template struct malloc_allocator; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + template struct mt_allocator; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + template struct new_allocator; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + template struct pool_allocator; + + template + struct __allocator_always_compares_equal> + : std::true_type { }; + + + + + + +template + struct __alloc_traits + + : std::allocator_traits<_Alloc> + + { + typedef _Alloc allocator_type; + + typedef std::allocator_traits<_Alloc> _Base_type; + typedef typename _Base_type::value_type value_type; + typedef typename _Base_type::pointer pointer; + typedef typename _Base_type::const_pointer const_pointer; + typedef typename _Base_type::size_type size_type; + typedef typename _Base_type::difference_type difference_type; + + typedef value_type& reference; + typedef const value_type& const_reference; + using _Base_type::allocate; + using _Base_type::deallocate; + using _Base_type::construct; + using _Base_type::destroy; + using _Base_type::max_size; + + private: + template + using __is_custom_pointer + = std::__and_, + std::__not_>>; + + public: + + template + static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type + construct(_Alloc& __a, _Ptr __p, _Args&&... __args) + { + _Base_type::construct(__a, std::addressof(*__p), + std::forward<_Args>(__args)...); + } + + + template + static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type + destroy(_Alloc& __a, _Ptr __p) + { _Base_type::destroy(__a, std::addressof(*__p)); } + + static _Alloc _S_select_on_copy(const _Alloc& __a) + { return _Base_type::select_on_container_copy_construction(__a); } + + static void _S_on_swap(_Alloc& __a, _Alloc& __b) + { std::__alloc_on_swap(__a, __b); } + + static constexpr bool _S_propagate_on_copy_assign() + { return _Base_type::propagate_on_container_copy_assignment::value; } + + static constexpr bool _S_propagate_on_move_assign() + { return _Base_type::propagate_on_container_move_assignment::value; } + + static constexpr bool _S_propagate_on_swap() + { return _Base_type::propagate_on_container_swap::value; } + + static constexpr bool _S_always_equal() + { return __allocator_always_compares_equal<_Alloc>::value; } + + static constexpr bool _S_nothrow_move() + { return _S_propagate_on_move_assign() || _S_always_equal(); } + + static constexpr bool _S_nothrow_swap() + { + using std::swap; + return !_S_propagate_on_swap() + || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>())); + } + + template + struct rebind + { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; +# 210 "/usr/include/c++/5/ext/alloc_traits.h" 3 + }; + + +} +# 62 "/usr/include/c++/5/bits/stl_construct.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline void + _Construct(_T1* __p, _Args&&... __args) + { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } +# 90 "/usr/include/c++/5/bits/stl_construct.h" 3 + template + inline void + _Destroy(_Tp* __pointer) + { __pointer->~_Tp(); } + + template + struct _Destroy_aux + { + template + static void + __destroy(_ForwardIterator __first, _ForwardIterator __last) + { + for (; __first != __last; ++__first) + std::_Destroy(std::__addressof(*__first)); + } + }; + + template<> + struct _Destroy_aux + { + template + static void + __destroy(_ForwardIterator, _ForwardIterator) { } + }; + + + + + + + template + inline void + _Destroy(_ForwardIterator __first, _ForwardIterator __last) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _Value_type; + std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: + __destroy(__first, __last); + } + + + + + + + + template + void + _Destroy(_ForwardIterator __first, _ForwardIterator __last, + _Allocator& __alloc) + { + typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; + for (; __first != __last; ++__first) + __traits::destroy(__alloc, std::__addressof(*__first)); + } + + template + inline void + _Destroy(_ForwardIterator __first, _ForwardIterator __last, + allocator<_Tp>&) + { + _Destroy(__first, __last); + } + + +} +# 61 "/usr/include/c++/5/bits/stl_tempbuf.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 83 "/usr/include/c++/5/bits/stl_tempbuf.h" 3 + template + pair<_Tp*, ptrdiff_t> + get_temporary_buffer(ptrdiff_t __len) noexcept + { + const ptrdiff_t __max = + __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); + if (__len > __max) + __len = __max; + + while (__len > 0) + { + _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), + std::nothrow)); + if (__tmp != 0) + return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); + __len /= 2; + } + return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); + } +# 110 "/usr/include/c++/5/bits/stl_tempbuf.h" 3 + template + inline void + return_temporary_buffer(_Tp* __p) + { ::operator delete(__p, std::nothrow); } + + + + + + + + template + class _Temporary_buffer + { + + + + public: + typedef _Tp value_type; + typedef value_type* pointer; + typedef pointer iterator; + typedef ptrdiff_t size_type; + + protected: + size_type _M_original_len; + size_type _M_len; + pointer _M_buffer; + + public: + + size_type + size() const + { return _M_len; } + + + size_type + requested_size() const + { return _M_original_len; } + + + iterator + begin() + { return _M_buffer; } + + + iterator + end() + { return _M_buffer + _M_len; } + + + + + + _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); + + ~_Temporary_buffer() + { + std::_Destroy(_M_buffer, _M_buffer + _M_len); + std::return_temporary_buffer(_M_buffer); + } + + private: + + _Temporary_buffer(const _Temporary_buffer&); + + void + operator=(const _Temporary_buffer&); + }; + + + template + struct __uninitialized_construct_buf_dispatch + { + template + static void + __ucr(_Pointer __first, _Pointer __last, + _ForwardIterator __seed) + { + if(__first == __last) + return; + + _Pointer __cur = __first; + try + { + std::_Construct(std::__addressof(*__first), + std::move(*__seed)); + _Pointer __prev = __cur; + ++__cur; + for(; __cur != __last; ++__cur, ++__prev) + std::_Construct(std::__addressof(*__cur), + std::move(*__prev)); + *__seed = std::move(*__prev); + } + catch(...) + { + std::_Destroy(__first, __cur); + throw; + } + } + }; + + template<> + struct __uninitialized_construct_buf_dispatch + { + template + static void + __ucr(_Pointer, _Pointer, _ForwardIterator) { } + }; +# 229 "/usr/include/c++/5/bits/stl_tempbuf.h" 3 + template + inline void + __uninitialized_construct_buf(_Pointer __first, _Pointer __last, + _ForwardIterator __seed) + { + typedef typename std::iterator_traits<_Pointer>::value_type + _ValueType; + + std::__uninitialized_construct_buf_dispatch< + __has_trivial_constructor(_ValueType)>:: + __ucr(__first, __last, __seed); + } + + template + _Temporary_buffer<_ForwardIterator, _Tp>:: + _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) + : _M_original_len(std::distance(__first, __last)), + _M_len(0), _M_buffer(0) + { + try + { + std::pair __p(std::get_temporary_buffer< + value_type>(_M_original_len)); + _M_buffer = __p.first; + _M_len = __p.second; + if (_M_buffer) + std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, + __first); + } + catch(...) + { + std::return_temporary_buffer(_M_buffer); + _M_buffer = 0; + _M_len = 0; + throw; + } + } + + +} +# 63 "/usr/include/c++/5/bits/stl_algo.h" 2 3 + + + +# 1 "/usr/include/c++/5/random" 1 3 +# 32 "/usr/include/c++/5/random" 3 + +# 33 "/usr/include/c++/5/random" 3 + + + + + +# 1 "/usr/include/c++/5/cmath" 1 3 +# 39 "/usr/include/c++/5/cmath" 3 + +# 40 "/usr/include/c++/5/cmath" 3 +# 75 "/usr/include/c++/5/cmath" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + abs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 431 "/usr/include/c++/5/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } + + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } + + +} +# 555 "/usr/include/c++/5/cmath" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp __x) + { return true; } + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp __x) + { return false; } + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp __x) + { return false; } + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + constexpr bool + signbit(float __x) + { return __builtin_signbitf(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbitl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 946 "/usr/include/c++/5/cmath" 3 + +} +# 1062 "/usr/include/c++/5/cmath" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::double_t; + using ::float_t; + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } + + +} +# 39 "/usr/include/c++/5/random" 2 3 +# 1 "/usr/include/c++/5/cstdlib" 1 3 +# 39 "/usr/include/c++/5/cstdlib" 3 + +# 40 "/usr/include/c++/5/cstdlib" 3 +# 40 "/usr/include/c++/5/random" 2 3 +# 1 "/usr/include/c++/5/string" 1 3 +# 36 "/usr/include/c++/5/string" 3 + +# 37 "/usr/include/c++/5/string" 3 + + +# 1 "/usr/include/c++/5/bits/stringfwd.h" 1 3 +# 37 "/usr/include/c++/5/bits/stringfwd.h" 3 + +# 38 "/usr/include/c++/5/bits/stringfwd.h" 3 + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + + template + struct char_traits; + + template<> struct char_traits; + + + template<> struct char_traits; + + + + + template<> struct char_traits; + template<> struct char_traits; + + +namespace __cxx11 { + + template, + typename _Alloc = allocator<_CharT> > + class basic_string; + + + typedef basic_string string; + + + + typedef basic_string wstring; + + + + + + typedef basic_string u16string; + + + typedef basic_string u32string; + + +} + + + + +} +# 40 "/usr/include/c++/5/string" 2 3 +# 1 "/usr/include/c++/5/bits/char_traits.h" 1 3 +# 37 "/usr/include/c++/5/bits/char_traits.h" 3 + +# 38 "/usr/include/c++/5/bits/char_traits.h" 3 + + +# 1 "/usr/include/c++/5/bits/postypes.h" 1 3 +# 38 "/usr/include/c++/5/bits/postypes.h" 3 + +# 39 "/usr/include/c++/5/bits/postypes.h" 3 + +# 1 "/usr/include/c++/5/cwchar" 1 3 +# 39 "/usr/include/c++/5/cwchar" 3 + +# 40 "/usr/include/c++/5/cwchar" 3 + + + + +# 1 "/usr/include/wchar.h" 1 3 4 +# 36 "/usr/include/wchar.h" 3 4 +# 1 "/usr/include/stdio.h" 1 3 4 +# 44 "/usr/include/stdio.h" 3 4 +struct _IO_FILE; + + + +typedef struct _IO_FILE FILE; + + + + + +# 64 "/usr/include/stdio.h" 3 4 +typedef struct _IO_FILE __FILE; +# 37 "/usr/include/wchar.h" 2 3 4 + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4 +# 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4 +typedef __builtin_va_list __gnuc_va_list; +# 40 "/usr/include/wchar.h" 2 3 4 +# 51 "/usr/include/wchar.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 357 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4 +typedef unsigned int wint_t; +# 52 "/usr/include/wchar.h" 2 3 4 +# 82 "/usr/include/wchar.h" 3 4 +typedef struct +{ + int __count; + union + { + + unsigned int __wch; + + + + char __wchb[4]; + } __value; +} __mbstate_t; +# 104 "/usr/include/wchar.h" 3 4 + + +typedef __mbstate_t mbstate_t; + + + + + + +# 132 "/usr/include/wchar.h" 3 4 +extern "C" { + + + + +struct tm; + + + + + + + + + +extern wchar_t *wcscpy (wchar_t *__restrict __dest, + const wchar_t *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern wchar_t *wcsncpy (wchar_t *__restrict __dest, + const wchar_t *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern wchar_t *wcscat (wchar_t *__restrict __dest, + const wchar_t *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern wchar_t *wcsncat (wchar_t *__restrict __dest, + const wchar_t *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); + + +extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, + size_t __n) throw (); + + + + + +extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, + __locale_t __loc) throw (); + +extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, + size_t __n, __locale_t __loc) throw (); + + + + + +extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); + + + +extern size_t wcsxfrm (wchar_t *__restrict __s1, + const wchar_t *__restrict __s2, size_t __n) throw (); + + + + + + + + +extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, + __locale_t __loc) throw (); + + + + +extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, + size_t __n, __locale_t __loc) throw (); + + +extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); + + + + + +extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) + throw () __asm ("wcschr") __attribute__ ((__pure__)); +extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) + throw () __asm ("wcschr") __attribute__ ((__pure__)); + + + + + + +extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) + throw () __asm ("wcsrchr") __attribute__ ((__pure__)); +extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) + throw () __asm ("wcsrchr") __attribute__ ((__pure__)); + + + + + + + + + +extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) + throw () __attribute__ ((__pure__)); + + + + + +extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) + throw () __attribute__ ((__pure__)); + + +extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) + throw () __attribute__ ((__pure__)); + + +extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) + throw () __asm ("wcspbrk") __attribute__ ((__pure__)); +extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, + const wchar_t *__accept) + throw () __asm ("wcspbrk") __attribute__ ((__pure__)); + + + + + + +extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) + throw () __asm ("wcsstr") __attribute__ ((__pure__)); +extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, + const wchar_t *__needle) + throw () __asm ("wcsstr") __attribute__ ((__pure__)); + + + + + + +extern wchar_t *wcstok (wchar_t *__restrict __s, + const wchar_t *__restrict __delim, + wchar_t **__restrict __ptr) throw (); + + +extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); + + + + + +extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) + throw () __asm ("wcswcs") __attribute__ ((__pure__)); +extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, + const wchar_t *__needle) + throw () __asm ("wcswcs") __attribute__ ((__pure__)); +# 309 "/usr/include/wchar.h" 3 4 +extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) + throw () __attribute__ ((__pure__)); + + + + + + +extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) + throw () __asm ("wmemchr") __attribute__ ((__pure__)); +extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, + size_t __n) + throw () __asm ("wmemchr") __attribute__ ((__pure__)); + + + + + + +extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) + throw () __attribute__ ((__pure__)); + + +extern wchar_t *wmemcpy (wchar_t *__restrict __s1, + const wchar_t *__restrict __s2, size_t __n) throw (); + + + +extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) + throw (); + + +extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); + + + + + +extern wchar_t *wmempcpy (wchar_t *__restrict __s1, + const wchar_t *__restrict __s2, size_t __n) + throw (); + + + + + + +extern wint_t btowc (int __c) throw (); + + + +extern int wctob (wint_t __c) throw (); + + + +extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); + + + +extern size_t mbrtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n, + mbstate_t *__restrict __p) throw (); + + +extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, + mbstate_t *__restrict __ps) throw (); + + +extern size_t __mbrlen (const char *__restrict __s, size_t __n, + mbstate_t *__restrict __ps) throw (); +extern size_t mbrlen (const char *__restrict __s, size_t __n, + mbstate_t *__restrict __ps) throw (); + +# 408 "/usr/include/wchar.h" 3 4 + + + +extern size_t mbsrtowcs (wchar_t *__restrict __dst, + const char **__restrict __src, size_t __len, + mbstate_t *__restrict __ps) throw (); + + + +extern size_t wcsrtombs (char *__restrict __dst, + const wchar_t **__restrict __src, size_t __len, + mbstate_t *__restrict __ps) throw (); + + + + + + +extern size_t mbsnrtowcs (wchar_t *__restrict __dst, + const char **__restrict __src, size_t __nmc, + size_t __len, mbstate_t *__restrict __ps) throw (); + + + +extern size_t wcsnrtombs (char *__restrict __dst, + const wchar_t **__restrict __src, + size_t __nwc, size_t __len, + mbstate_t *__restrict __ps) throw (); + + + + + + +extern int wcwidth (wchar_t __c) throw (); + + + +extern int wcswidth (const wchar_t *__s, size_t __n) throw (); + + + + + + +extern double wcstod (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) throw (); + + + + + +extern float wcstof (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) throw (); +extern long double wcstold (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) throw (); + + + + + + + +extern long int wcstol (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base) throw (); + + + +extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base) + throw (); + + + + + + +__extension__ +extern long long int wcstoll (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base) + throw (); + + + +__extension__ +extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base) throw (); + + + + + + +__extension__ +extern long long int wcstoq (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base) + throw (); + + + +__extension__ +extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base) throw (); +# 533 "/usr/include/wchar.h" 3 4 +extern long int wcstol_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base, + __locale_t __loc) throw (); + +extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base, __locale_t __loc) throw (); + +__extension__ +extern long long int wcstoll_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base, __locale_t __loc) throw (); + +__extension__ +extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base, __locale_t __loc) + throw (); + +extern double wcstod_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, __locale_t __loc) + throw (); + +extern float wcstof_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, __locale_t __loc) + throw (); + +extern long double wcstold_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + __locale_t __loc) throw (); + + + + + + +extern wchar_t *wcpcpy (wchar_t *__restrict __dest, + const wchar_t *__restrict __src) throw (); + + + +extern wchar_t *wcpncpy (wchar_t *__restrict __dest, + const wchar_t *__restrict __src, size_t __n) + throw (); + + + + + + +extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); + + + + + + +extern int fwide (__FILE *__fp, int __mode) throw (); + + + + + + +extern int fwprintf (__FILE *__restrict __stream, + const wchar_t *__restrict __format, ...) + ; + + + + +extern int wprintf (const wchar_t *__restrict __format, ...) + ; + +extern int swprintf (wchar_t *__restrict __s, size_t __n, + const wchar_t *__restrict __format, ...) + throw () ; + + + + + +extern int vfwprintf (__FILE *__restrict __s, + const wchar_t *__restrict __format, + __gnuc_va_list __arg) + ; + + + + +extern int vwprintf (const wchar_t *__restrict __format, + __gnuc_va_list __arg) + ; + + +extern int vswprintf (wchar_t *__restrict __s, size_t __n, + const wchar_t *__restrict __format, + __gnuc_va_list __arg) + throw () ; + + + + + + +extern int fwscanf (__FILE *__restrict __stream, + const wchar_t *__restrict __format, ...) + ; + + + + +extern int wscanf (const wchar_t *__restrict __format, ...) + ; + +extern int swscanf (const wchar_t *__restrict __s, + const wchar_t *__restrict __format, ...) + throw () ; +# 683 "/usr/include/wchar.h" 3 4 + + + + + + + + + +extern int vfwscanf (__FILE *__restrict __s, + const wchar_t *__restrict __format, + __gnuc_va_list __arg) + ; + + + + +extern int vwscanf (const wchar_t *__restrict __format, + __gnuc_va_list __arg) + ; + +extern int vswscanf (const wchar_t *__restrict __s, + const wchar_t *__restrict __format, + __gnuc_va_list __arg) + throw () ; +# 739 "/usr/include/wchar.h" 3 4 + + + + + + + + + +extern wint_t fgetwc (__FILE *__stream); +extern wint_t getwc (__FILE *__stream); + + + + + +extern wint_t getwchar (void); + + + + + + +extern wint_t fputwc (wchar_t __wc, __FILE *__stream); +extern wint_t putwc (wchar_t __wc, __FILE *__stream); + + + + + +extern wint_t putwchar (wchar_t __wc); + + + + + + + +extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, + __FILE *__restrict __stream); + + + + + +extern int fputws (const wchar_t *__restrict __ws, + __FILE *__restrict __stream); + + + + + + +extern wint_t ungetwc (wint_t __wc, __FILE *__stream); + +# 804 "/usr/include/wchar.h" 3 4 +extern wint_t getwc_unlocked (__FILE *__stream); +extern wint_t getwchar_unlocked (void); + + + + + + + +extern wint_t fgetwc_unlocked (__FILE *__stream); + + + + + + + +extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); +# 830 "/usr/include/wchar.h" 3 4 +extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); +extern wint_t putwchar_unlocked (wchar_t __wc); +# 840 "/usr/include/wchar.h" 3 4 +extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, + __FILE *__restrict __stream); + + + + + + + +extern int fputws_unlocked (const wchar_t *__restrict __ws, + __FILE *__restrict __stream); + + + + + + + +extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, + const wchar_t *__restrict __format, + const struct tm *__restrict __tp) throw (); + + + + + + + +extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, + const wchar_t *__restrict __format, + const struct tm *__restrict __tp, + __locale_t __loc) throw (); +# 894 "/usr/include/wchar.h" 3 4 +} +# 45 "/usr/include/c++/5/cwchar" 2 3 +# 62 "/usr/include/c++/5/cwchar" 3 +namespace std +{ + using ::mbstate_t; +} +# 135 "/usr/include/c++/5/cwchar" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::wint_t; + + using ::btowc; + using ::fgetwc; + using ::fgetws; + using ::fputwc; + using ::fputws; + using ::fwide; + using ::fwprintf; + using ::fwscanf; + using ::getwc; + using ::getwchar; + using ::mbrlen; + using ::mbrtowc; + using ::mbsinit; + using ::mbsrtowcs; + using ::putwc; + using ::putwchar; + + using ::swprintf; + + using ::swscanf; + using ::ungetwc; + using ::vfwprintf; + + using ::vfwscanf; + + + using ::vswprintf; + + + using ::vswscanf; + + using ::vwprintf; + + using ::vwscanf; + + using ::wcrtomb; + using ::wcscat; + using ::wcscmp; + using ::wcscoll; + using ::wcscpy; + using ::wcscspn; + using ::wcsftime; + using ::wcslen; + using ::wcsncat; + using ::wcsncmp; + using ::wcsncpy; + using ::wcsrtombs; + using ::wcsspn; + using ::wcstod; + + using ::wcstof; + + using ::wcstok; + using ::wcstol; + using ::wcstoul; + using ::wcsxfrm; + using ::wctob; + using ::wmemcmp; + using ::wmemcpy; + using ::wmemmove; + using ::wmemset; + using ::wprintf; + using ::wscanf; + using ::wcschr; + using ::wcspbrk; + using ::wcsrchr; + using ::wcsstr; + using ::wmemchr; +# 232 "/usr/include/c++/5/cwchar" 3 + +} + + + + + + + +namespace __gnu_cxx +{ + + + + + + using ::wcstold; +# 257 "/usr/include/c++/5/cwchar" 3 + using ::wcstoll; + using ::wcstoull; + +} + +namespace std +{ + using ::__gnu_cxx::wcstold; + using ::__gnu_cxx::wcstoll; + using ::__gnu_cxx::wcstoull; +} +# 277 "/usr/include/c++/5/cwchar" 3 +namespace std +{ + + using std::wcstof; + + + using std::vfwscanf; + + + using std::vswscanf; + + + using std::vwscanf; + + + + using std::wcstold; + using std::wcstoll; + using std::wcstoull; + +} +# 41 "/usr/include/c++/5/bits/postypes.h" 2 3 +# 68 "/usr/include/c++/5/bits/postypes.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 88 "/usr/include/c++/5/bits/postypes.h" 3 + typedef long streamoff; +# 98 "/usr/include/c++/5/bits/postypes.h" 3 + typedef ptrdiff_t streamsize; +# 111 "/usr/include/c++/5/bits/postypes.h" 3 + template + class fpos + { + private: + streamoff _M_off; + _StateT _M_state; + + public: + + + + + fpos() + : _M_off(0), _M_state() { } +# 133 "/usr/include/c++/5/bits/postypes.h" 3 + fpos(streamoff __off) + : _M_off(__off), _M_state() { } + + + operator streamoff() const { return _M_off; } + + + void + state(_StateT __st) + { _M_state = __st; } + + + _StateT + state() const + { return _M_state; } + + + + + + fpos& + operator+=(streamoff __off) + { + _M_off += __off; + return *this; + } + + + + + + fpos& + operator-=(streamoff __off) + { + _M_off -= __off; + return *this; + } + + + + + + + + fpos + operator+(streamoff __off) const + { + fpos __pos(*this); + __pos += __off; + return __pos; + } + + + + + + + + fpos + operator-(streamoff __off) const + { + fpos __pos(*this); + __pos -= __off; + return __pos; + } + + + + + + + streamoff + operator-(const fpos& __other) const + { return _M_off - __other._M_off; } + }; + + + + + + + template + inline bool + operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) + { return streamoff(__lhs) == streamoff(__rhs); } + + template + inline bool + operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) + { return streamoff(__lhs) != streamoff(__rhs); } + + + + + + typedef fpos streampos; + + typedef fpos wstreampos; + + + + typedef fpos u16streampos; + + typedef fpos u32streampos; + + + +} +# 41 "/usr/include/c++/5/bits/char_traits.h" 2 3 +# 1 "/usr/include/c++/5/cwchar" 1 3 +# 39 "/usr/include/c++/5/cwchar" 3 + +# 40 "/usr/include/c++/5/cwchar" 3 + + + + +# 1 "/usr/include/wchar.h" 1 3 4 +# 45 "/usr/include/c++/5/cwchar" 2 3 +# 42 "/usr/include/c++/5/bits/char_traits.h" 2 3 + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 57 "/usr/include/c++/5/bits/char_traits.h" 3 + template + struct _Char_types + { + typedef unsigned long int_type; + typedef std::streampos pos_type; + typedef std::streamoff off_type; + typedef std::mbstate_t state_type; + }; +# 82 "/usr/include/c++/5/bits/char_traits.h" 3 + template + struct char_traits + { + typedef _CharT char_type; + typedef typename _Char_types<_CharT>::int_type int_type; + typedef typename _Char_types<_CharT>::pos_type pos_type; + typedef typename _Char_types<_CharT>::off_type off_type; + typedef typename _Char_types<_CharT>::state_type state_type; + + static void + assign(char_type& __c1, const char_type& __c2) + { __c1 = __c2; } + + static constexpr bool + eq(const char_type& __c1, const char_type& __c2) + { return __c1 == __c2; } + + static constexpr bool + lt(const char_type& __c1, const char_type& __c2) + { return __c1 < __c2; } + + static int + compare(const char_type* __s1, const char_type* __s2, std::size_t __n); + + static std::size_t + length(const char_type* __s); + + static const char_type* + find(const char_type* __s, std::size_t __n, const char_type& __a); + + static char_type* + move(char_type* __s1, const char_type* __s2, std::size_t __n); + + static char_type* + copy(char_type* __s1, const char_type* __s2, std::size_t __n); + + static char_type* + assign(char_type* __s, std::size_t __n, char_type __a); + + static constexpr char_type + to_char_type(const int_type& __c) + { return static_cast(__c); } + + static constexpr int_type + to_int_type(const char_type& __c) + { return static_cast(__c); } + + static constexpr bool + eq_int_type(const int_type& __c1, const int_type& __c2) + { return __c1 == __c2; } + + static constexpr int_type + eof() + { return static_cast(-1); } + + static constexpr int_type + not_eof(const int_type& __c) + { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } + }; + + template + int + char_traits<_CharT>:: + compare(const char_type* __s1, const char_type* __s2, std::size_t __n) + { + for (std::size_t __i = 0; __i < __n; ++__i) + if (lt(__s1[__i], __s2[__i])) + return -1; + else if (lt(__s2[__i], __s1[__i])) + return 1; + return 0; + } + + template + std::size_t + char_traits<_CharT>:: + length(const char_type* __p) + { + std::size_t __i = 0; + while (!eq(__p[__i], char_type())) + ++__i; + return __i; + } + + template + const typename char_traits<_CharT>::char_type* + char_traits<_CharT>:: + find(const char_type* __s, std::size_t __n, const char_type& __a) + { + for (std::size_t __i = 0; __i < __n; ++__i) + if (eq(__s[__i], __a)) + return __s + __i; + return 0; + } + + template + typename char_traits<_CharT>::char_type* + char_traits<_CharT>:: + move(char_type* __s1, const char_type* __s2, std::size_t __n) + { + return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, + __n * sizeof(char_type))); + } + + template + typename char_traits<_CharT>::char_type* + char_traits<_CharT>:: + copy(char_type* __s1, const char_type* __s2, std::size_t __n) + { + + std::copy(__s2, __s2 + __n, __s1); + return __s1; + } + + template + typename char_traits<_CharT>::char_type* + char_traits<_CharT>:: + assign(char_type* __s, std::size_t __n, char_type __a) + { + + std::fill_n(__s, __n, __a); + return __s; + } + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 226 "/usr/include/c++/5/bits/char_traits.h" 3 + template + struct char_traits : public __gnu_cxx::char_traits<_CharT> + { }; + + + + template<> + struct char_traits + { + typedef char char_type; + typedef int int_type; + typedef streampos pos_type; + typedef streamoff off_type; + typedef mbstate_t state_type; + + static void + assign(char_type& __c1, const char_type& __c2) noexcept + { __c1 = __c2; } + + static constexpr bool + eq(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr bool + lt(const char_type& __c1, const char_type& __c2) noexcept + { + + return (static_cast(__c1) + < static_cast(__c2)); + } + + static int + compare(const char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return 0; + return __builtin_memcmp(__s1, __s2, __n); + } + + static size_t + length(const char_type* __s) + { return __builtin_strlen(__s); } + + static const char_type* + find(const char_type* __s, size_t __n, const char_type& __a) + { + if (__n == 0) + return 0; + return static_cast(__builtin_memchr(__s, __a, __n)); + } + + static char_type* + move(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return static_cast(__builtin_memmove(__s1, __s2, __n)); + } + + static char_type* + copy(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return static_cast(__builtin_memcpy(__s1, __s2, __n)); + } + + static char_type* + assign(char_type* __s, size_t __n, char_type __a) + { + if (__n == 0) + return __s; + return static_cast(__builtin_memset(__s, __a, __n)); + } + + static constexpr char_type + to_char_type(const int_type& __c) noexcept + { return static_cast(__c); } + + + + static constexpr int_type + to_int_type(const char_type& __c) noexcept + { return static_cast(static_cast(__c)); } + + static constexpr bool + eq_int_type(const int_type& __c1, const int_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr int_type + eof() noexcept + { return static_cast(-1); } + + static constexpr int_type + not_eof(const int_type& __c) noexcept + { return (__c == eof()) ? 0 : __c; } + }; + + + + + template<> + struct char_traits + { + typedef wchar_t char_type; + typedef wint_t int_type; + typedef streamoff off_type; + typedef wstreampos pos_type; + typedef mbstate_t state_type; + + static void + assign(char_type& __c1, const char_type& __c2) noexcept + { __c1 = __c2; } + + static constexpr bool + eq(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr bool + lt(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 < __c2; } + + static int + compare(const char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return 0; + return wmemcmp(__s1, __s2, __n); + } + + static size_t + length(const char_type* __s) + { return wcslen(__s); } + + static const char_type* + find(const char_type* __s, size_t __n, const char_type& __a) + { + if (__n == 0) + return 0; + return wmemchr(__s, __a, __n); + } + + static char_type* + move(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return wmemmove(__s1, __s2, __n); + } + + static char_type* + copy(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return wmemcpy(__s1, __s2, __n); + } + + static char_type* + assign(char_type* __s, size_t __n, char_type __a) + { + if (__n == 0) + return __s; + return wmemset(__s, __a, __n); + } + + static constexpr char_type + to_char_type(const int_type& __c) noexcept + { return char_type(__c); } + + static constexpr int_type + to_int_type(const char_type& __c) noexcept + { return int_type(__c); } + + static constexpr bool + eq_int_type(const int_type& __c1, const int_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr int_type + eof() noexcept + { return static_cast((0xffffffffu)); } + + static constexpr int_type + not_eof(const int_type& __c) noexcept + { return eq_int_type(__c, eof()) ? 0 : __c; } + }; + + + +} + + + + +# 1 "/usr/include/c++/5/cstdint" 1 3 +# 32 "/usr/include/c++/5/cstdint" 3 + +# 33 "/usr/include/c++/5/cstdint" 3 +# 46 "/usr/include/c++/5/cstdint" 3 +namespace std +{ + using ::int8_t; + using ::int16_t; + using ::int32_t; + using ::int64_t; + + using ::int_fast8_t; + using ::int_fast16_t; + using ::int_fast32_t; + using ::int_fast64_t; + + using ::int_least8_t; + using ::int_least16_t; + using ::int_least32_t; + using ::int_least64_t; + + using ::intmax_t; + using ::intptr_t; + + using ::uint8_t; + using ::uint16_t; + using ::uint32_t; + using ::uint64_t; + + using ::uint_fast8_t; + using ::uint_fast16_t; + using ::uint_fast32_t; + using ::uint_fast64_t; + + using ::uint_least8_t; + using ::uint_least16_t; + using ::uint_least32_t; + using ::uint_least64_t; + + using ::uintmax_t; + using ::uintptr_t; +} +# 421 "/usr/include/c++/5/bits/char_traits.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template<> + struct char_traits + { + typedef char16_t char_type; + typedef uint_least16_t int_type; + typedef streamoff off_type; + typedef u16streampos pos_type; + typedef mbstate_t state_type; + + static void + assign(char_type& __c1, const char_type& __c2) noexcept + { __c1 = __c2; } + + static constexpr bool + eq(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr bool + lt(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 < __c2; } + + static int + compare(const char_type* __s1, const char_type* __s2, size_t __n) + { + for (size_t __i = 0; __i < __n; ++__i) + if (lt(__s1[__i], __s2[__i])) + return -1; + else if (lt(__s2[__i], __s1[__i])) + return 1; + return 0; + } + + static size_t + length(const char_type* __s) + { + size_t __i = 0; + while (!eq(__s[__i], char_type())) + ++__i; + return __i; + } + + static const char_type* + find(const char_type* __s, size_t __n, const char_type& __a) + { + for (size_t __i = 0; __i < __n; ++__i) + if (eq(__s[__i], __a)) + return __s + __i; + return 0; + } + + static char_type* + move(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return (static_cast + (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); + } + + static char_type* + copy(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return (static_cast + (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); + } + + static char_type* + assign(char_type* __s, size_t __n, char_type __a) + { + for (size_t __i = 0; __i < __n; ++__i) + assign(__s[__i], __a); + return __s; + } + + static constexpr char_type + to_char_type(const int_type& __c) noexcept + { return char_type(__c); } + + static constexpr int_type + to_int_type(const char_type& __c) noexcept + { return int_type(__c); } + + static constexpr bool + eq_int_type(const int_type& __c1, const int_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr int_type + eof() noexcept + { return static_cast(-1); } + + static constexpr int_type + not_eof(const int_type& __c) noexcept + { return eq_int_type(__c, eof()) ? 0 : __c; } + }; + + template<> + struct char_traits + { + typedef char32_t char_type; + typedef uint_least32_t int_type; + typedef streamoff off_type; + typedef u32streampos pos_type; + typedef mbstate_t state_type; + + static void + assign(char_type& __c1, const char_type& __c2) noexcept + { __c1 = __c2; } + + static constexpr bool + eq(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr bool + lt(const char_type& __c1, const char_type& __c2) noexcept + { return __c1 < __c2; } + + static int + compare(const char_type* __s1, const char_type* __s2, size_t __n) + { + for (size_t __i = 0; __i < __n; ++__i) + if (lt(__s1[__i], __s2[__i])) + return -1; + else if (lt(__s2[__i], __s1[__i])) + return 1; + return 0; + } + + static size_t + length(const char_type* __s) + { + size_t __i = 0; + while (!eq(__s[__i], char_type())) + ++__i; + return __i; + } + + static const char_type* + find(const char_type* __s, size_t __n, const char_type& __a) + { + for (size_t __i = 0; __i < __n; ++__i) + if (eq(__s[__i], __a)) + return __s + __i; + return 0; + } + + static char_type* + move(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return (static_cast + (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); + } + + static char_type* + copy(char_type* __s1, const char_type* __s2, size_t __n) + { + if (__n == 0) + return __s1; + return (static_cast + (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); + } + + static char_type* + assign(char_type* __s, size_t __n, char_type __a) + { + for (size_t __i = 0; __i < __n; ++__i) + assign(__s[__i], __a); + return __s; + } + + static constexpr char_type + to_char_type(const int_type& __c) noexcept + { return char_type(__c); } + + static constexpr int_type + to_int_type(const char_type& __c) noexcept + { return int_type(__c); } + + static constexpr bool + eq_int_type(const int_type& __c1, const int_type& __c2) noexcept + { return __c1 == __c2; } + + static constexpr int_type + eof() noexcept + { return static_cast(-1); } + + static constexpr int_type + not_eof(const int_type& __c) noexcept + { return eq_int_type(__c, eof()) ? 0 : __c; } + }; + + +} +# 41 "/usr/include/c++/5/string" 2 3 +# 1 "/usr/include/c++/5/bits/allocator.h" 1 3 +# 46 "/usr/include/c++/5/bits/allocator.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 1 3 +# 33 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 3 +# 1 "/usr/include/c++/5/ext/new_allocator.h" 1 3 +# 40 "/usr/include/c++/5/ext/new_allocator.h" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + using std::size_t; + using std::ptrdiff_t; +# 57 "/usr/include/c++/5/ext/new_allocator.h" 3 + template + class new_allocator + { + public: + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef const _Tp* const_pointer; + typedef _Tp& reference; + typedef const _Tp& const_reference; + typedef _Tp value_type; + + template + struct rebind + { typedef new_allocator<_Tp1> other; }; + + + + + typedef std::true_type propagate_on_container_move_assignment; + + + new_allocator() noexcept { } + + new_allocator(const new_allocator&) noexcept { } + + template + new_allocator(const new_allocator<_Tp1>&) noexcept { } + + ~new_allocator() noexcept { } + + pointer + address(reference __x) const noexcept + { return std::__addressof(__x); } + + const_pointer + address(const_reference __x) const noexcept + { return std::__addressof(__x); } + + + + pointer + allocate(size_type __n, const void* = 0) + { + if (__n > this->max_size()) + std::__throw_bad_alloc(); + + return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); + } + + + void + deallocate(pointer __p, size_type) + { ::operator delete(__p); } + + size_type + max_size() const noexcept + { return size_t(-1) / sizeof(_Tp); } + + + template + void + construct(_Up* __p, _Args&&... __args) + { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } + + template + void + destroy(_Up* __p) { __p->~_Up(); } +# 135 "/usr/include/c++/5/ext/new_allocator.h" 3 + }; + + template + inline bool + operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) + { return true; } + + template + inline bool + operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) + { return false; } + + +} +# 34 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 2 3 + + +namespace std +{ +# 47 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 3 + template + using __allocator_base = __gnu_cxx::new_allocator<_Tp>; +} +# 47 "/usr/include/c++/5/bits/allocator.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + + template<> + class allocator + { + public: + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef void* pointer; + typedef const void* const_pointer; + typedef void value_type; + + template + struct rebind + { typedef allocator<_Tp1> other; }; + + + + + typedef true_type propagate_on_container_move_assignment; + + }; +# 91 "/usr/include/c++/5/bits/allocator.h" 3 + template + class allocator: public __allocator_base<_Tp> + { + public: + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef const _Tp* const_pointer; + typedef _Tp& reference; + typedef const _Tp& const_reference; + typedef _Tp value_type; + + template + struct rebind + { typedef allocator<_Tp1> other; }; + + + + + typedef true_type propagate_on_container_move_assignment; + + + allocator() throw() { } + + allocator(const allocator& __a) throw() + : __allocator_base<_Tp>(__a) { } + + template + allocator(const allocator<_Tp1>&) throw() { } + + ~allocator() throw() { } + + + }; + + template + inline bool + operator==(const allocator<_T1>&, const allocator<_T2>&) + noexcept + { return true; } + + template + inline bool + operator==(const allocator<_Tp>&, const allocator<_Tp>&) + noexcept + { return true; } + + template + inline bool + operator!=(const allocator<_T1>&, const allocator<_T2>&) + noexcept + { return false; } + + template + inline bool + operator!=(const allocator<_Tp>&, const allocator<_Tp>&) + noexcept + { return false; } + + + + + + + extern template class allocator; + extern template class allocator; + + + + + + + template + struct __alloc_swap + { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; + + template + struct __alloc_swap<_Alloc, false> + { + static void + _S_do_it(_Alloc& __one, _Alloc& __two) noexcept + { + + if (__one != __two) + swap(__one, __two); + } + }; + + + template + struct __alloc_neq + { + static bool + _S_do_it(const _Alloc&, const _Alloc&) + { return false; } + }; + + template + struct __alloc_neq<_Alloc, false> + { + static bool + _S_do_it(const _Alloc& __one, const _Alloc& __two) + { return __one != __two; } + }; + + + template, + is_nothrow_move_constructible>::value> + struct __shrink_to_fit_aux + { static bool _S_do_it(_Tp&) noexcept { return false; } }; + + template + struct __shrink_to_fit_aux<_Tp, true> + { + static bool + _S_do_it(_Tp& __c) noexcept + { + + try + { + _Tp(__make_move_if_noexcept_iterator(__c.begin()), + __make_move_if_noexcept_iterator(__c.end()), + __c.get_allocator()).swap(__c); + return true; + } + catch(...) + { return false; } + + + + } + }; + + + +} +# 42 "/usr/include/c++/5/string" 2 3 + +# 1 "/usr/include/c++/5/bits/localefwd.h" 1 3 +# 37 "/usr/include/c++/5/bits/localefwd.h" 3 + +# 38 "/usr/include/c++/5/bits/localefwd.h" 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 1 3 +# 39 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 3 + +# 40 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 3 + +# 1 "/usr/include/c++/5/clocale" 1 3 +# 39 "/usr/include/c++/5/clocale" 3 + +# 40 "/usr/include/c++/5/clocale" 3 + + +# 1 "/usr/include/locale.h" 1 3 4 +# 28 "/usr/include/locale.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 29 "/usr/include/locale.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/locale.h" 1 3 4 +# 30 "/usr/include/locale.h" 2 3 4 + +extern "C" { +# 50 "/usr/include/locale.h" 3 4 + + + +struct lconv +{ + + + char *decimal_point; + char *thousands_sep; + + + + + + char *grouping; + + + + + + char *int_curr_symbol; + char *currency_symbol; + char *mon_decimal_point; + char *mon_thousands_sep; + char *mon_grouping; + char *positive_sign; + char *negative_sign; + char int_frac_digits; + char frac_digits; + + char p_cs_precedes; + + char p_sep_by_space; + + char n_cs_precedes; + + char n_sep_by_space; + + + + + + + char p_sign_posn; + char n_sign_posn; + + + char int_p_cs_precedes; + + char int_p_sep_by_space; + + char int_n_cs_precedes; + + char int_n_sep_by_space; + + + + + + + char int_p_sign_posn; + char int_n_sign_posn; +# 120 "/usr/include/locale.h" 3 4 +}; + + + +extern char *setlocale (int __category, const char *__locale) throw (); + + +extern struct lconv *localeconv (void) throw (); + + +# 151 "/usr/include/locale.h" 3 4 +extern __locale_t newlocale (int __category_mask, const char *__locale, + __locale_t __base) throw (); +# 186 "/usr/include/locale.h" 3 4 +extern __locale_t duplocale (__locale_t __dataset) throw (); + + + +extern void freelocale (__locale_t __dataset) throw (); + + + + + + +extern __locale_t uselocale (__locale_t __dataset) throw (); + + + + + + + +} +# 43 "/usr/include/c++/5/clocale" 2 3 +# 51 "/usr/include/c++/5/clocale" 3 +namespace std +{ + using ::lconv; + using ::setlocale; + using ::localeconv; +} +# 42 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 2 3 + + + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + extern "C" __typeof(uselocale) __uselocale; + + +} + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + typedef __locale_t __c_locale; + + + + + + inline int + __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), + char* __out, + const int __size __attribute__ ((__unused__)), + const char* __fmt, ...) + { + + __c_locale __old = __gnu_cxx::__uselocale(__cloc); +# 88 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 3 + __builtin_va_list __args; + __builtin_va_start(__args, __fmt); + + + const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); + + + + + __builtin_va_end(__args); + + + __gnu_cxx::__uselocale(__old); + + + + + + + + return __ret; + } + + +} +# 41 "/usr/include/c++/5/bits/localefwd.h" 2 3 +# 1 "/usr/include/c++/5/iosfwd" 1 3 +# 36 "/usr/include/c++/5/iosfwd" 3 + +# 37 "/usr/include/c++/5/iosfwd" 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 74 "/usr/include/c++/5/iosfwd" 3 + class ios_base; + + template > + class basic_ios; + + template > + class basic_streambuf; + + template > + class basic_istream; + + template > + class basic_ostream; + + template > + class basic_iostream; + + +namespace __cxx11 { + + template, + typename _Alloc = allocator<_CharT> > + class basic_stringbuf; + + template, + typename _Alloc = allocator<_CharT> > + class basic_istringstream; + + template, + typename _Alloc = allocator<_CharT> > + class basic_ostringstream; + + template, + typename _Alloc = allocator<_CharT> > + class basic_stringstream; + +} + + template > + class basic_filebuf; + + template > + class basic_ifstream; + + template > + class basic_ofstream; + + template > + class basic_fstream; + + template > + class istreambuf_iterator; + + template > + class ostreambuf_iterator; + + + + typedef basic_ios ios; + + + typedef basic_streambuf streambuf; + + + typedef basic_istream istream; + + + typedef basic_ostream ostream; + + + typedef basic_iostream iostream; + + + typedef basic_stringbuf stringbuf; + + + typedef basic_istringstream istringstream; + + + typedef basic_ostringstream ostringstream; + + + typedef basic_stringstream stringstream; + + + typedef basic_filebuf filebuf; + + + typedef basic_ifstream ifstream; + + + typedef basic_ofstream ofstream; + + + typedef basic_fstream fstream; + + + + typedef basic_ios wios; + + + typedef basic_streambuf wstreambuf; + + + typedef basic_istream wistream; + + + typedef basic_ostream wostream; + + + typedef basic_iostream wiostream; + + + typedef basic_stringbuf wstringbuf; + + + typedef basic_istringstream wistringstream; + + + typedef basic_ostringstream wostringstream; + + + typedef basic_stringstream wstringstream; + + + typedef basic_filebuf wfilebuf; + + + typedef basic_ifstream wifstream; + + + typedef basic_ofstream wofstream; + + + typedef basic_fstream wfstream; + + + + +} +# 42 "/usr/include/c++/5/bits/localefwd.h" 2 3 +# 1 "/usr/include/c++/5/cctype" 1 3 +# 39 "/usr/include/c++/5/cctype" 3 + +# 40 "/usr/include/c++/5/cctype" 3 + + +# 1 "/usr/include/ctype.h" 1 3 4 +# 28 "/usr/include/ctype.h" 3 4 +extern "C" { +# 46 "/usr/include/ctype.h" 3 4 +enum +{ + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) +}; +# 79 "/usr/include/ctype.h" 3 4 +extern const unsigned short int **__ctype_b_loc (void) + throw () __attribute__ ((__const__)); +extern const __int32_t **__ctype_tolower_loc (void) + throw () __attribute__ ((__const__)); +extern const __int32_t **__ctype_toupper_loc (void) + throw () __attribute__ ((__const__)); +# 104 "/usr/include/ctype.h" 3 4 + + + + + + +extern int isalnum (int) throw (); +extern int isalpha (int) throw (); +extern int iscntrl (int) throw (); +extern int isdigit (int) throw (); +extern int islower (int) throw (); +extern int isgraph (int) throw (); +extern int isprint (int) throw (); +extern int ispunct (int) throw (); +extern int isspace (int) throw (); +extern int isupper (int) throw (); +extern int isxdigit (int) throw (); + + + +extern int tolower (int __c) throw (); + + +extern int toupper (int __c) throw (); + + + + + + + + +extern int isblank (int) throw (); + + + + + + +extern int isctype (int __c, int __mask) throw (); + + + + + + +extern int isascii (int __c) throw (); + + + +extern int toascii (int __c) throw (); + + + +extern int _toupper (int) throw (); +extern int _tolower (int) throw (); +# 271 "/usr/include/ctype.h" 3 4 +extern int isalnum_l (int, __locale_t) throw (); +extern int isalpha_l (int, __locale_t) throw (); +extern int iscntrl_l (int, __locale_t) throw (); +extern int isdigit_l (int, __locale_t) throw (); +extern int islower_l (int, __locale_t) throw (); +extern int isgraph_l (int, __locale_t) throw (); +extern int isprint_l (int, __locale_t) throw (); +extern int ispunct_l (int, __locale_t) throw (); +extern int isspace_l (int, __locale_t) throw (); +extern int isupper_l (int, __locale_t) throw (); +extern int isxdigit_l (int, __locale_t) throw (); + +extern int isblank_l (int, __locale_t) throw (); + + + +extern int __tolower_l (int __c, __locale_t __l) throw (); +extern int tolower_l (int __c, __locale_t __l) throw (); + + +extern int __toupper_l (int __c, __locale_t __l) throw (); +extern int toupper_l (int __c, __locale_t __l) throw (); +# 347 "/usr/include/ctype.h" 3 4 +} +# 43 "/usr/include/c++/5/cctype" 2 3 +# 62 "/usr/include/c++/5/cctype" 3 +namespace std +{ + using ::isalnum; + using ::isalpha; + using ::iscntrl; + using ::isdigit; + using ::isgraph; + using ::islower; + using ::isprint; + using ::ispunct; + using ::isspace; + using ::isupper; + using ::isxdigit; + using ::tolower; + using ::toupper; +} + + + + + + + +namespace std +{ + using ::isblank; +} +# 43 "/usr/include/c++/5/bits/localefwd.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 55 "/usr/include/c++/5/bits/localefwd.h" 3 + class locale; + + template + bool + has_facet(const locale&) throw(); + + template + const _Facet& + use_facet(const locale&); + + + template + bool + isspace(_CharT, const locale&); + + template + bool + isprint(_CharT, const locale&); + + template + bool + iscntrl(_CharT, const locale&); + + template + bool + isupper(_CharT, const locale&); + + template + bool + islower(_CharT, const locale&); + + template + bool + isalpha(_CharT, const locale&); + + template + bool + isdigit(_CharT, const locale&); + + template + bool + ispunct(_CharT, const locale&); + + template + bool + isxdigit(_CharT, const locale&); + + template + bool + isalnum(_CharT, const locale&); + + template + bool + isgraph(_CharT, const locale&); + + + template + bool + isblank(_CharT, const locale&); + + + template + _CharT + toupper(_CharT, const locale&); + + template + _CharT + tolower(_CharT, const locale&); + + + class ctype_base; + template + class ctype; + template<> class ctype; + + template<> class ctype; + + template + class ctype_byname; + + + class codecvt_base; + template + class codecvt; + template<> class codecvt; + + template<> class codecvt; + + template + class codecvt_byname; + + + + template > + class num_get; + template > + class num_put; + +namespace __cxx11 { + template class numpunct; + template class numpunct_byname; +} + +namespace __cxx11 { + + template + class collate; + template + class collate_byname; +} + + + class time_base; +namespace __cxx11 { + template > + class time_get; + template > + class time_get_byname; +} + template > + class time_put; + template > + class time_put_byname; + + + class money_base; +namespace __cxx11 { + template > + class money_get; + template > + class money_put; +} +namespace __cxx11 { + template + class moneypunct; + template + class moneypunct_byname; +} + + + class messages_base; +namespace __cxx11 { + template + class messages; + template + class messages_byname; +} + + +} +# 44 "/usr/include/c++/5/string" 2 3 +# 1 "/usr/include/c++/5/bits/ostream_insert.h" 1 3 +# 33 "/usr/include/c++/5/bits/ostream_insert.h" 3 + +# 34 "/usr/include/c++/5/bits/ostream_insert.h" 3 + + +# 1 "/usr/include/c++/5/bits/cxxabi_forced.h" 1 3 +# 34 "/usr/include/c++/5/bits/cxxabi_forced.h" 3 + +# 35 "/usr/include/c++/5/bits/cxxabi_forced.h" 3 + +#pragma GCC visibility push(default) + + +namespace __cxxabiv1 +{ + + + + + + + + class __forced_unwind + { + virtual ~__forced_unwind() throw(); + + + virtual void __pure_dummy() = 0; + }; +} + + +#pragma GCC visibility pop +# 37 "/usr/include/c++/5/bits/ostream_insert.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + inline void + __ostream_write(basic_ostream<_CharT, _Traits>& __out, + const _CharT* __s, streamsize __n) + { + typedef basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const streamsize __put = __out.rdbuf()->sputn(__s, __n); + if (__put != __n) + __out.setstate(__ios_base::badbit); + } + + template + inline void + __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) + { + typedef basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const _CharT __c = __out.fill(); + for (; __n > 0; --__n) + { + const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); + if (_Traits::eq_int_type(__put, _Traits::eof())) + { + __out.setstate(__ios_base::badbit); + break; + } + } + } + + template + basic_ostream<_CharT, _Traits>& + __ostream_insert(basic_ostream<_CharT, _Traits>& __out, + const _CharT* __s, streamsize __n) + { + typedef basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + typename __ostream_type::sentry __cerb(__out); + if (__cerb) + { + try + { + const streamsize __w = __out.width(); + if (__w > __n) + { + const bool __left = ((__out.flags() + & __ios_base::adjustfield) + == __ios_base::left); + if (!__left) + __ostream_fill(__out, __w - __n); + if (__out.good()) + __ostream_write(__out, __s, __n); + if (__left && __out.good()) + __ostream_fill(__out, __w - __n); + } + else + __ostream_write(__out, __s, __n); + __out.width(0); + } + catch(__cxxabiv1::__forced_unwind&) + { + __out._M_setstate(__ios_base::badbit); + throw; + } + catch(...) + { __out._M_setstate(__ios_base::badbit); } + } + return __out; + } + + + + + extern template ostream& __ostream_insert(ostream&, const char*, streamsize); + + + extern template wostream& __ostream_insert(wostream&, const wchar_t*, + streamsize); + + + + +} +# 45 "/usr/include/c++/5/string" 2 3 + + + +# 1 "/usr/include/c++/5/bits/stl_function.h" 1 3 +# 63 "/usr/include/c++/5/bits/stl_function.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 104 "/usr/include/c++/5/bits/stl_function.h" 3 + template + struct unary_function + { + + typedef _Arg argument_type; + + + typedef _Result result_type; + }; + + + + + template + struct binary_function + { + + typedef _Arg1 first_argument_type; + + + typedef _Arg2 second_argument_type; + + + typedef _Result result_type; + }; +# 166 "/usr/include/c++/5/bits/stl_function.h" 3 + template + struct plus : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x + __y; } + }; + + + template + struct minus : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x - __y; } + }; + + + template + struct multiplies : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x * __y; } + }; + + + template + struct divides : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x / __y; } + }; + + + template + struct modulus : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x % __y; } + }; + + + template + struct negate : public unary_function<_Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x) const + { return -__x; } + }; +# 351 "/usr/include/c++/5/bits/stl_function.h" 3 + template + struct equal_to : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x == __y; } + }; + + + template + struct not_equal_to : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x != __y; } + }; + + + template + struct greater : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x > __y; } + }; + + + template + struct less : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x < __y; } + }; + + + template + struct greater_equal : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x >= __y; } + }; + + + template + struct less_equal : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x <= __y; } + }; +# 524 "/usr/include/c++/5/bits/stl_function.h" 3 + template + struct logical_and : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x && __y; } + }; + + + template + struct logical_or : public binary_function<_Tp, _Tp, bool> + { + + bool + operator()(const _Tp& __x, const _Tp& __y) const + { return __x || __y; } + }; + + + template + struct logical_not : public unary_function<_Tp, bool> + { + + bool + operator()(const _Tp& __x) const + { return !__x; } + }; +# 617 "/usr/include/c++/5/bits/stl_function.h" 3 + template + struct bit_and : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x & __y; } + }; + + template + struct bit_or : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x | __y; } + }; + + template + struct bit_xor : public binary_function<_Tp, _Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x, const _Tp& __y) const + { return __x ^ __y; } + }; + + template + struct bit_not : public unary_function<_Tp, _Tp> + { + + _Tp + operator()(const _Tp& __x) const + { return ~__x; } + }; +# 741 "/usr/include/c++/5/bits/stl_function.h" 3 + template + class unary_negate + : public unary_function + { + protected: + _Predicate _M_pred; + + public: + + explicit + unary_negate(const _Predicate& __x) : _M_pred(__x) { } + + + bool + operator()(const typename _Predicate::argument_type& __x) const + { return !_M_pred(__x); } + }; + + + template + + inline unary_negate<_Predicate> + not1(const _Predicate& __pred) + { return unary_negate<_Predicate>(__pred); } + + + template + class binary_negate + : public binary_function + { + protected: + _Predicate _M_pred; + + public: + + explicit + binary_negate(const _Predicate& __x) : _M_pred(__x) { } + + + bool + operator()(const typename _Predicate::first_argument_type& __x, + const typename _Predicate::second_argument_type& __y) const + { return !_M_pred(__x, __y); } + }; + + + template + + inline binary_negate<_Predicate> + not2(const _Predicate& __pred) + { return binary_negate<_Predicate>(__pred); } +# 818 "/usr/include/c++/5/bits/stl_function.h" 3 + template + class pointer_to_unary_function : public unary_function<_Arg, _Result> + { + protected: + _Result (*_M_ptr)(_Arg); + + public: + pointer_to_unary_function() { } + + explicit + pointer_to_unary_function(_Result (*__x)(_Arg)) + : _M_ptr(__x) { } + + _Result + operator()(_Arg __x) const + { return _M_ptr(__x); } + }; + + + template + inline pointer_to_unary_function<_Arg, _Result> + ptr_fun(_Result (*__x)(_Arg)) + { return pointer_to_unary_function<_Arg, _Result>(__x); } + + + template + class pointer_to_binary_function + : public binary_function<_Arg1, _Arg2, _Result> + { + protected: + _Result (*_M_ptr)(_Arg1, _Arg2); + + public: + pointer_to_binary_function() { } + + explicit + pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) + : _M_ptr(__x) { } + + _Result + operator()(_Arg1 __x, _Arg2 __y) const + { return _M_ptr(__x, __y); } + }; + + + template + inline pointer_to_binary_function<_Arg1, _Arg2, _Result> + ptr_fun(_Result (*__x)(_Arg1, _Arg2)) + { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } + + + template + struct _Identity + : public unary_function<_Tp,_Tp> + { + _Tp& + operator()(_Tp& __x) const + { return __x; } + + const _Tp& + operator()(const _Tp& __x) const + { return __x; } + }; + + template + struct _Select1st + : public unary_function<_Pair, typename _Pair::first_type> + { + typename _Pair::first_type& + operator()(_Pair& __x) const + { return __x.first; } + + const typename _Pair::first_type& + operator()(const _Pair& __x) const + { return __x.first; } + + + template + typename _Pair2::first_type& + operator()(_Pair2& __x) const + { return __x.first; } + + template + const typename _Pair2::first_type& + operator()(const _Pair2& __x) const + { return __x.first; } + + }; + + template + struct _Select2nd + : public unary_function<_Pair, typename _Pair::second_type> + { + typename _Pair::second_type& + operator()(_Pair& __x) const + { return __x.second; } + + const typename _Pair::second_type& + operator()(const _Pair& __x) const + { return __x.second; } + }; +# 938 "/usr/include/c++/5/bits/stl_function.h" 3 + template + class mem_fun_t : public unary_function<_Tp*, _Ret> + { + public: + explicit + mem_fun_t(_Ret (_Tp::*__pf)()) + : _M_f(__pf) { } + + _Ret + operator()(_Tp* __p) const + { return (__p->*_M_f)(); } + + private: + _Ret (_Tp::*_M_f)(); + }; + + + + template + class const_mem_fun_t : public unary_function + { + public: + explicit + const_mem_fun_t(_Ret (_Tp::*__pf)() const) + : _M_f(__pf) { } + + _Ret + operator()(const _Tp* __p) const + { return (__p->*_M_f)(); } + + private: + _Ret (_Tp::*_M_f)() const; + }; + + + + template + class mem_fun_ref_t : public unary_function<_Tp, _Ret> + { + public: + explicit + mem_fun_ref_t(_Ret (_Tp::*__pf)()) + : _M_f(__pf) { } + + _Ret + operator()(_Tp& __r) const + { return (__r.*_M_f)(); } + + private: + _Ret (_Tp::*_M_f)(); + }; + + + + template + class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> + { + public: + explicit + const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) + : _M_f(__pf) { } + + _Ret + operator()(const _Tp& __r) const + { return (__r.*_M_f)(); } + + private: + _Ret (_Tp::*_M_f)() const; + }; + + + + template + class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> + { + public: + explicit + mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) + : _M_f(__pf) { } + + _Ret + operator()(_Tp* __p, _Arg __x) const + { return (__p->*_M_f)(__x); } + + private: + _Ret (_Tp::*_M_f)(_Arg); + }; + + + + template + class const_mem_fun1_t : public binary_function + { + public: + explicit + const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) + : _M_f(__pf) { } + + _Ret + operator()(const _Tp* __p, _Arg __x) const + { return (__p->*_M_f)(__x); } + + private: + _Ret (_Tp::*_M_f)(_Arg) const; + }; + + + + template + class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> + { + public: + explicit + mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) + : _M_f(__pf) { } + + _Ret + operator()(_Tp& __r, _Arg __x) const + { return (__r.*_M_f)(__x); } + + private: + _Ret (_Tp::*_M_f)(_Arg); + }; + + + + template + class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> + { + public: + explicit + const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) + : _M_f(__pf) { } + + _Ret + operator()(const _Tp& __r, _Arg __x) const + { return (__r.*_M_f)(__x); } + + private: + _Ret (_Tp::*_M_f)(_Arg) const; + }; + + + + template + inline mem_fun_t<_Ret, _Tp> + mem_fun(_Ret (_Tp::*__f)()) + { return mem_fun_t<_Ret, _Tp>(__f); } + + template + inline const_mem_fun_t<_Ret, _Tp> + mem_fun(_Ret (_Tp::*__f)() const) + { return const_mem_fun_t<_Ret, _Tp>(__f); } + + template + inline mem_fun_ref_t<_Ret, _Tp> + mem_fun_ref(_Ret (_Tp::*__f)()) + { return mem_fun_ref_t<_Ret, _Tp>(__f); } + + template + inline const_mem_fun_ref_t<_Ret, _Tp> + mem_fun_ref(_Ret (_Tp::*__f)() const) + { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } + + template + inline mem_fun1_t<_Ret, _Tp, _Arg> + mem_fun(_Ret (_Tp::*__f)(_Arg)) + { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } + + template + inline const_mem_fun1_t<_Ret, _Tp, _Arg> + mem_fun(_Ret (_Tp::*__f)(_Arg) const) + { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } + + template + inline mem_fun1_ref_t<_Ret, _Tp, _Arg> + mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) + { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } + + template + inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> + mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) + { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } + + + + +} + + +# 1 "/usr/include/c++/5/backward/binders.h" 1 3 +# 60 "/usr/include/c++/5/backward/binders.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 107 "/usr/include/c++/5/backward/binders.h" 3 + template + class binder1st + : public unary_function + { + protected: + _Operation op; + typename _Operation::first_argument_type value; + + public: + binder1st(const _Operation& __x, + const typename _Operation::first_argument_type& __y) + : op(__x), value(__y) { } + + typename _Operation::result_type + operator()(const typename _Operation::second_argument_type& __x) const + { return op(value, __x); } + + + + typename _Operation::result_type + operator()(typename _Operation::second_argument_type& __x) const + { return op(value, __x); } + } __attribute__ ((__deprecated__)); + + + template + inline binder1st<_Operation> + bind1st(const _Operation& __fn, const _Tp& __x) + { + typedef typename _Operation::first_argument_type _Arg1_type; + return binder1st<_Operation>(__fn, _Arg1_type(__x)); + } + + + template + class binder2nd + : public unary_function + { + protected: + _Operation op; + typename _Operation::second_argument_type value; + + public: + binder2nd(const _Operation& __x, + const typename _Operation::second_argument_type& __y) + : op(__x), value(__y) { } + + typename _Operation::result_type + operator()(const typename _Operation::first_argument_type& __x) const + { return op(__x, value); } + + + + typename _Operation::result_type + operator()(typename _Operation::first_argument_type& __x) const + { return op(__x, value); } + } __attribute__ ((__deprecated__)); + + + template + inline binder2nd<_Operation> + bind2nd(const _Operation& __fn, const _Tp& __x) + { + typedef typename _Operation::second_argument_type _Arg2_type; + return binder2nd<_Operation>(__fn, _Arg2_type(__x)); + } + + + +} + +#pragma GCC diagnostic pop +# 1129 "/usr/include/c++/5/bits/stl_function.h" 2 3 +# 49 "/usr/include/c++/5/string" 2 3 + + +# 1 "/usr/include/c++/5/bits/range_access.h" 1 3 +# 33 "/usr/include/c++/5/bits/range_access.h" 3 + +# 34 "/usr/include/c++/5/bits/range_access.h" 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline auto + begin(_Container& __cont) -> decltype(__cont.begin()) + { return __cont.begin(); } + + + + + + + template + inline auto + begin(const _Container& __cont) -> decltype(__cont.begin()) + { return __cont.begin(); } + + + + + + + template + inline auto + end(_Container& __cont) -> decltype(__cont.end()) + { return __cont.end(); } + + + + + + + template + inline auto + end(const _Container& __cont) -> decltype(__cont.end()) + { return __cont.end(); } + + + + + + template + inline _Tp* + begin(_Tp (&__arr)[_Nm]) + { return __arr; } + + + + + + + template + inline _Tp* + end(_Tp (&__arr)[_Nm]) + { return __arr + _Nm; } +# 233 "/usr/include/c++/5/bits/range_access.h" 3 + +} +# 52 "/usr/include/c++/5/string" 2 3 +# 1 "/usr/include/c++/5/bits/basic_string.h" 1 3 +# 37 "/usr/include/c++/5/bits/basic_string.h" 3 + +# 38 "/usr/include/c++/5/bits/basic_string.h" 3 + +# 1 "/usr/include/c++/5/ext/atomicity.h" 1 3 +# 32 "/usr/include/c++/5/ext/atomicity.h" 3 + +# 33 "/usr/include/c++/5/ext/atomicity.h" 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 1 3 +# 30 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 3 +#pragma GCC visibility push(default) +# 148 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 1 3 +# 35 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +# 1 "/usr/include/pthread.h" 1 3 4 +# 23 "/usr/include/pthread.h" 3 4 +# 1 "/usr/include/sched.h" 1 3 4 +# 28 "/usr/include/sched.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 29 "/usr/include/sched.h" 2 3 4 + + + + + +# 1 "/usr/include/time.h" 1 3 4 +# 35 "/usr/include/sched.h" 2 3 4 +# 43 "/usr/include/sched.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/sched.h" 1 3 4 +# 72 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4 +struct sched_param + { + int __sched_priority; + }; + +extern "C" { + + + +extern int clone (int (*__fn) (void *__arg), void *__child_stack, + int __flags, void *__arg, ...) throw (); + + +extern int unshare (int __flags) throw (); + + +extern int sched_getcpu (void) throw (); + + +extern int setns (int __fd, int __nstype) throw (); + + + +} + + + + + + + +struct __sched_param + { + int __sched_priority; + }; +# 118 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4 +typedef unsigned long int __cpu_mask; + + + + + + +typedef struct +{ + __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; +} cpu_set_t; +# 201 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4 +extern "C" { + +extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) + throw (); +extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ; +extern void __sched_cpufree (cpu_set_t *__set) throw (); + +} +# 44 "/usr/include/sched.h" 2 3 4 + + + + +extern "C" { + + +extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) + throw (); + + +extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); + + +extern int sched_setscheduler (__pid_t __pid, int __policy, + const struct sched_param *__param) throw (); + + +extern int sched_getscheduler (__pid_t __pid) throw (); + + +extern int sched_yield (void) throw (); + + +extern int sched_get_priority_max (int __algorithm) throw (); + + +extern int sched_get_priority_min (int __algorithm) throw (); + + +extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); +# 118 "/usr/include/sched.h" 3 4 +extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, + const cpu_set_t *__cpuset) throw (); + + +extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, + cpu_set_t *__cpuset) throw (); + + +} +# 24 "/usr/include/pthread.h" 2 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +extern "C" { + + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 38 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 +# 88 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 +struct timex +{ + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +}; +# 89 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); + +} +# 42 "/usr/include/time.h" 2 3 4 +# 131 "/usr/include/time.h" 3 4 + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; + + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; + + +struct sigevent; +# 186 "/usr/include/time.h" 3 4 + + + +extern clock_t clock (void) throw (); + + +extern time_t time (time_t *__timer) throw (); + + +extern double difftime (time_t __time1, time_t __time0) + throw () __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) throw (); + + + + + +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) throw (); + + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + throw (); + + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + __locale_t __loc) throw (); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + __locale_t __loc) throw (); + + + + + + +extern struct tm *gmtime (const time_t *__timer) throw (); + + + +extern struct tm *localtime (const time_t *__timer) throw (); + + + + + +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) throw (); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) throw (); + + + + + +extern char *asctime (const struct tm *__tp) throw (); + + +extern char *ctime (const time_t *__timer) throw (); + + + + + + + +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) throw (); + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) throw (); + + + + +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) throw (); + + + +extern int daylight; +extern long int timezone; + + + + + +extern int stime (const time_t *__when) throw (); +# 319 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) throw (); + + +extern time_t timelocal (struct tm *__tp) throw (); + + +extern int dysize (int __year) throw () __attribute__ ((__const__)); +# 334 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + throw (); + + + + + + +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); + + +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) throw (); + + +extern int timer_delete (timer_t __timerid) throw (); + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) throw (); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + throw (); + + +extern int timer_getoverrun (timer_t __timerid) throw (); + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + throw () __attribute__ ((__nonnull__ (1))); +# 403 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 412 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 426 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 25 "/usr/include/pthread.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4 + + + + +typedef long int __jmp_buf[8]; +# 28 "/usr/include/pthread.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 29 "/usr/include/pthread.h" 2 3 4 + + + +enum +{ + PTHREAD_CREATE_JOINABLE, + + PTHREAD_CREATE_DETACHED + +}; + + + +enum +{ + PTHREAD_MUTEX_TIMED_NP, + PTHREAD_MUTEX_RECURSIVE_NP, + PTHREAD_MUTEX_ERRORCHECK_NP, + PTHREAD_MUTEX_ADAPTIVE_NP + + , + PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, + PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, + PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, + PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL + + + + , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP + +}; + + + + +enum +{ + PTHREAD_MUTEX_STALLED, + PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, + PTHREAD_MUTEX_ROBUST, + PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST +}; + + + + + +enum +{ + PTHREAD_PRIO_NONE, + PTHREAD_PRIO_INHERIT, + PTHREAD_PRIO_PROTECT +}; +# 114 "/usr/include/pthread.h" 3 4 +enum +{ + PTHREAD_RWLOCK_PREFER_READER_NP, + PTHREAD_RWLOCK_PREFER_WRITER_NP, + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, + PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP +}; +# 155 "/usr/include/pthread.h" 3 4 +enum +{ + PTHREAD_INHERIT_SCHED, + + PTHREAD_EXPLICIT_SCHED + +}; + + + +enum +{ + PTHREAD_SCOPE_SYSTEM, + + PTHREAD_SCOPE_PROCESS + +}; + + + +enum +{ + PTHREAD_PROCESS_PRIVATE, + + PTHREAD_PROCESS_SHARED + +}; +# 190 "/usr/include/pthread.h" 3 4 +struct _pthread_cleanup_buffer +{ + void (*__routine) (void *); + void *__arg; + int __canceltype; + struct _pthread_cleanup_buffer *__prev; +}; + + +enum +{ + PTHREAD_CANCEL_ENABLE, + + PTHREAD_CANCEL_DISABLE + +}; +enum +{ + PTHREAD_CANCEL_DEFERRED, + + PTHREAD_CANCEL_ASYNCHRONOUS + +}; +# 228 "/usr/include/pthread.h" 3 4 +extern "C" { + + + + +extern int pthread_create (pthread_t *__restrict __newthread, + const pthread_attr_t *__restrict __attr, + void *(*__start_routine) (void *), + void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); + + + + + +extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); + + + + + + + +extern int pthread_join (pthread_t __th, void **__thread_return); + + + + +extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); + + + + + + + +extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, + const struct timespec *__abstime); + + + + + + +extern int pthread_detach (pthread_t __th) throw (); + + + +extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); + + +extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) + throw () __attribute__ ((__const__)); + + + + + + + +extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_destroy (pthread_attr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, + int *__detachstate) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, + int __detachstate) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, + size_t *__guardsize) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setguardsize (pthread_attr_t *__attr, + size_t __guardsize) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, + struct sched_param *__restrict __param) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, + const struct sched_param *__restrict + __param) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict + __attr, int *__restrict __policy) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict + __attr, int *__restrict __inherit) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, + int __inherit) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, + int *__restrict __scope) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict + __attr, void **__restrict __stackaddr) + throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); + + + + + +extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, + void *__stackaddr) + throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); + + +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict + __attr, size_t *__restrict __stacksize) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int pthread_attr_setstacksize (pthread_attr_t *__attr, + size_t __stacksize) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, + void **__restrict __stackaddr, + size_t *__restrict __stacksize) + throw () __attribute__ ((__nonnull__ (1, 2, 3))); + + + + +extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, + size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, + size_t __cpusetsize, + const cpu_set_t *__cpuset) + throw () __attribute__ ((__nonnull__ (1, 3))); + + + +extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, + size_t __cpusetsize, + cpu_set_t *__cpuset) + throw () __attribute__ ((__nonnull__ (1, 3))); + + +extern int pthread_getattr_default_np (pthread_attr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_setattr_default_np (const pthread_attr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + + + +extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) + throw () __attribute__ ((__nonnull__ (2))); + + + + + + + +extern int pthread_setschedparam (pthread_t __target_thread, int __policy, + const struct sched_param *__param) + throw () __attribute__ ((__nonnull__ (3))); + + +extern int pthread_getschedparam (pthread_t __target_thread, + int *__restrict __policy, + struct sched_param *__restrict __param) + throw () __attribute__ ((__nonnull__ (2, 3))); + + +extern int pthread_setschedprio (pthread_t __target_thread, int __prio) + throw (); + + + + +extern int pthread_getname_np (pthread_t __target_thread, char *__buf, + size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int pthread_setname_np (pthread_t __target_thread, const char *__name) + throw () __attribute__ ((__nonnull__ (2))); + + + + + +extern int pthread_getconcurrency (void) throw (); + + +extern int pthread_setconcurrency (int __level) throw (); + + + + + + + +extern int pthread_yield (void) throw (); + + + + +extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, + const cpu_set_t *__cpuset) + throw () __attribute__ ((__nonnull__ (3))); + + +extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, + cpu_set_t *__cpuset) + throw () __attribute__ ((__nonnull__ (3))); +# 494 "/usr/include/pthread.h" 3 4 +extern int pthread_once (pthread_once_t *__once_control, + void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); +# 506 "/usr/include/pthread.h" 3 4 +extern int pthread_setcancelstate (int __state, int *__oldstate); + + + +extern int pthread_setcanceltype (int __type, int *__oldtype); + + +extern int pthread_cancel (pthread_t __th); + + + + +extern void pthread_testcancel (void); + + + + +typedef struct +{ + struct + { + __jmp_buf __cancel_jmp_buf; + int __mask_was_saved; + } __cancel_jmp_buf[1]; + void *__pad[4]; +} __pthread_unwind_buf_t __attribute__ ((__aligned__)); +# 540 "/usr/include/pthread.h" 3 4 +struct __pthread_cleanup_frame +{ + void (*__cancel_routine) (void *); + void *__cancel_arg; + int __do_it; + int __cancel_type; +}; + + + + +class __pthread_cleanup_class +{ + void (*__cancel_routine) (void *); + void *__cancel_arg; + int __do_it; + int __cancel_type; + + public: + __pthread_cleanup_class (void (*__fct) (void *), void *__arg) + : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } + ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } + void __setdoit (int __newval) { __do_it = __newval; } + void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, + &__cancel_type); } + void __restore () const { pthread_setcanceltype (__cancel_type, 0); } +}; +# 742 "/usr/include/pthread.h" 3 4 +struct __jmp_buf_tag; +extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); + + + + + +extern int pthread_mutex_init (pthread_mutex_t *__mutex, + const pthread_mutexattr_t *__mutexattr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutex_lock (pthread_mutex_t *__mutex) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, + const struct timespec *__restrict + __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutex_getprioceiling (const pthread_mutex_t * + __restrict __mutex, + int *__restrict __prioceiling) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, + int __prioceiling, + int *__restrict __old_ceiling) + throw () __attribute__ ((__nonnull__ (1, 3))); + + + + +extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) + throw () __attribute__ ((__nonnull__ (1))); + +extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) + throw () __attribute__ ((__nonnull__ (1))); +# 806 "/usr/include/pthread.h" 3 4 +extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * + __restrict __attr, + int *__restrict __pshared) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, + int __pshared) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict + __attr, int *__restrict __kind) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * + __restrict __attr, + int *__restrict __protocol) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, + int __protocol) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * + __restrict __attr, + int *__restrict __prioceiling) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, + int __prioceiling) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, + int *__robustness) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, + int *__robustness) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, + int __robustness) + throw () __attribute__ ((__nonnull__ (1))); + +extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, + int __robustness) + throw () __attribute__ ((__nonnull__ (1))); +# 888 "/usr/include/pthread.h" 3 4 +extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, + const pthread_rwlockattr_t *__restrict + __attr) throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, + const struct timespec *__restrict + __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, + const struct timespec *__restrict + __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) + throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * + __restrict __attr, + int *__restrict __pshared) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, + int __pshared) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * + __restrict __attr, + int *__restrict __pref) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, + int __pref) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int pthread_cond_init (pthread_cond_t *__restrict __cond, + const pthread_condattr_t *__restrict __cond_attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_cond_destroy (pthread_cond_t *__cond) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_cond_signal (pthread_cond_t *__cond) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_cond_broadcast (pthread_cond_t *__cond) + throw () __attribute__ ((__nonnull__ (1))); + + + + + + +extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex) + __attribute__ ((__nonnull__ (1, 2))); +# 1000 "/usr/include/pthread.h" 3 4 +extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex, + const struct timespec *__restrict __abstime) + __attribute__ ((__nonnull__ (1, 2, 3))); + + + + +extern int pthread_condattr_init (pthread_condattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_condattr_destroy (pthread_condattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_condattr_getpshared (const pthread_condattr_t * + __restrict __attr, + int *__restrict __pshared) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, + int __pshared) throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_condattr_getclock (const pthread_condattr_t * + __restrict __attr, + __clockid_t *__restrict __clock_id) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_condattr_setclock (pthread_condattr_t *__attr, + __clockid_t __clock_id) + throw () __attribute__ ((__nonnull__ (1))); +# 1044 "/usr/include/pthread.h" 3 4 +extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_destroy (pthread_spinlock_t *__lock) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_lock (pthread_spinlock_t *__lock) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_trylock (pthread_spinlock_t *__lock) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_unlock (pthread_spinlock_t *__lock) + throw () __attribute__ ((__nonnull__ (1))); + + + + + + +extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, + const pthread_barrierattr_t *__restrict + __attr, unsigned int __count) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrier_wait (pthread_barrier_t *__barrier) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * + __restrict __attr, + int *__restrict __pshared) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, + int __pshared) + throw () __attribute__ ((__nonnull__ (1))); +# 1111 "/usr/include/pthread.h" 3 4 +extern int pthread_key_create (pthread_key_t *__key, + void (*__destr_function) (void *)) + throw () __attribute__ ((__nonnull__ (1))); + + +extern int pthread_key_delete (pthread_key_t __key) throw (); + + +extern void *pthread_getspecific (pthread_key_t __key) throw (); + + +extern int pthread_setspecific (pthread_key_t __key, + const void *__pointer) throw () ; + + + + +extern int pthread_getcpuclockid (pthread_t __thread_id, + __clockid_t *__clock_id) + throw () __attribute__ ((__nonnull__ (2))); +# 1145 "/usr/include/pthread.h" 3 4 +extern int pthread_atfork (void (*__prepare) (void), + void (*__parent) (void), + void (*__child) (void)) throw (); +# 1159 "/usr/include/pthread.h" 3 4 +} +# 36 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 2 3 +# 47 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +typedef pthread_t __gthread_t; +typedef pthread_key_t __gthread_key_t; +typedef pthread_once_t __gthread_once_t; +typedef pthread_mutex_t __gthread_mutex_t; +typedef pthread_mutex_t __gthread_recursive_mutex_t; +typedef pthread_cond_t __gthread_cond_t; +typedef struct timespec __gthread_time_t; +# 101 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); +static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); +static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); + +static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); +static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); +static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); +static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); +static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); + +static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); + +static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); + +static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); +static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); + +static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); + +static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); +static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); +static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); + +static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); +static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); +static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); +static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); +static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); +static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); + +static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); +static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); +static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); +static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); +static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); +# 236 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); +# 246 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +static inline int +__gthread_active_p (void) +{ + static void *const __gthread_active_ptr + = __extension__ (void *) &__gthrw___pthread_key_create; + return __gthread_active_ptr != 0; +} +# 658 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +static inline int +__gthread_create (__gthread_t *__threadid, void *(*__func) (void*), + void *__args) +{ + return __gthrw_pthread_create (__threadid, __null, __func, __args); +} + +static inline int +__gthread_join (__gthread_t __threadid, void **__value_ptr) +{ + return __gthrw_pthread_join (__threadid, __value_ptr); +} + +static inline int +__gthread_detach (__gthread_t __threadid) +{ + return __gthrw_pthread_detach (__threadid); +} + +static inline int +__gthread_equal (__gthread_t __t1, __gthread_t __t2) +{ + return __gthrw_pthread_equal (__t1, __t2); +} + +static inline __gthread_t +__gthread_self (void) +{ + return __gthrw_pthread_self (); +} + +static inline int +__gthread_yield (void) +{ + return __gthrw_sched_yield (); +} + +static inline int +__gthread_once (__gthread_once_t *__once, void (*__func) (void)) +{ + if (__gthread_active_p ()) + return __gthrw_pthread_once (__once, __func); + else + return -1; +} + +static inline int +__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) +{ + return __gthrw_pthread_key_create (__key, __dtor); +} + +static inline int +__gthread_key_delete (__gthread_key_t __key) +{ + return __gthrw_pthread_key_delete (__key); +} + +static inline void * +__gthread_getspecific (__gthread_key_t __key) +{ + return __gthrw_pthread_getspecific (__key); +} + +static inline int +__gthread_setspecific (__gthread_key_t __key, const void *__ptr) +{ + return __gthrw_pthread_setspecific (__key, __ptr); +} + +static inline void +__gthread_mutex_init_function (__gthread_mutex_t *__mutex) +{ + if (__gthread_active_p ()) + __gthrw_pthread_mutex_init (__mutex, __null); +} + +static inline int +__gthread_mutex_destroy (__gthread_mutex_t *__mutex) +{ + if (__gthread_active_p ()) + return __gthrw_pthread_mutex_destroy (__mutex); + else + return 0; +} + +static inline int +__gthread_mutex_lock (__gthread_mutex_t *__mutex) +{ + if (__gthread_active_p ()) + return __gthrw_pthread_mutex_lock (__mutex); + else + return 0; +} + +static inline int +__gthread_mutex_trylock (__gthread_mutex_t *__mutex) +{ + if (__gthread_active_p ()) + return __gthrw_pthread_mutex_trylock (__mutex); + else + return 0; +} + + +static inline int +__gthread_mutex_timedlock (__gthread_mutex_t *__mutex, + const __gthread_time_t *__abs_timeout) +{ + if (__gthread_active_p ()) + return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); + else + return 0; +} + + +static inline int +__gthread_mutex_unlock (__gthread_mutex_t *__mutex) +{ + if (__gthread_active_p ()) + return __gthrw_pthread_mutex_unlock (__mutex); + else + return 0; +} +# 807 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +static inline int +__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_lock (__mutex); +} + +static inline int +__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_trylock (__mutex); +} + + +static inline int +__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, + const __gthread_time_t *__abs_timeout) +{ + return __gthread_mutex_timedlock (__mutex, __abs_timeout); +} + + +static inline int +__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_unlock (__mutex); +} + +static inline int +__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_destroy (__mutex); +} +# 849 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3 +static inline int +__gthread_cond_broadcast (__gthread_cond_t *__cond) +{ + return __gthrw_pthread_cond_broadcast (__cond); +} + +static inline int +__gthread_cond_signal (__gthread_cond_t *__cond) +{ + return __gthrw_pthread_cond_signal (__cond); +} + +static inline int +__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) +{ + return __gthrw_pthread_cond_wait (__cond, __mutex); +} + +static inline int +__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, + const __gthread_time_t *__abs_timeout) +{ + return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); +} + +static inline int +__gthread_cond_wait_recursive (__gthread_cond_t *__cond, + __gthread_recursive_mutex_t *__mutex) +{ + return __gthread_cond_wait (__cond, __mutex); +} + +static inline int +__gthread_cond_destroy (__gthread_cond_t* __cond) +{ + return __gthrw_pthread_cond_destroy (__cond); +} +# 149 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 2 3 + + +#pragma GCC visibility pop +# 36 "/usr/include/c++/5/ext/atomicity.h" 2 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h" 1 3 +# 32 "/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h" 3 +typedef int _Atomic_word; +# 37 "/usr/include/c++/5/ext/atomicity.h" 2 3 + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + static inline _Atomic_word + __exchange_and_add(volatile _Atomic_word* __mem, int __val) + { return __atomic_fetch_add(__mem, __val, 4); } + + static inline void + __atomic_add(volatile _Atomic_word* __mem, int __val) + { __atomic_fetch_add(__mem, __val, 4); } +# 64 "/usr/include/c++/5/ext/atomicity.h" 3 + static inline _Atomic_word + __exchange_and_add_single(_Atomic_word* __mem, int __val) + { + _Atomic_word __result = *__mem; + *__mem += __val; + return __result; + } + + static inline void + __atomic_add_single(_Atomic_word* __mem, int __val) + { *__mem += __val; } + + static inline _Atomic_word + __attribute__ ((__unused__)) + __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) + { + + if (__gthread_active_p()) + return __exchange_and_add(__mem, __val); + else + return __exchange_and_add_single(__mem, __val); + + + + } + + static inline void + __attribute__ ((__unused__)) + __atomic_add_dispatch(_Atomic_word* __mem, int __val) + { + + if (__gthread_active_p()) + __atomic_add(__mem, __val); + else + __atomic_add_single(__mem, __val); + + + + } + + +} +# 40 "/usr/include/c++/5/bits/basic_string.h" 2 3 + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + +namespace __cxx11 { +# 70 "/usr/include/c++/5/bits/basic_string.h" 3 + template + class basic_string + { + typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template + rebind<_CharT>::other _Char_alloc_type; + typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; + + + public: + typedef _Traits traits_type; + typedef typename _Traits::char_type value_type; + typedef _Char_alloc_type allocator_type; + typedef typename _Alloc_traits::size_type size_type; + typedef typename _Alloc_traits::difference_type difference_type; + typedef typename _Alloc_traits::reference reference; + typedef typename _Alloc_traits::const_reference const_reference; + typedef typename _Alloc_traits::pointer pointer; + typedef typename _Alloc_traits::const_pointer const_pointer; + typedef __gnu_cxx::__normal_iterator iterator; + typedef __gnu_cxx::__normal_iterator + const_iterator; + typedef std::reverse_iterator const_reverse_iterator; + typedef std::reverse_iterator reverse_iterator; + + + static const size_type npos = static_cast(-1); + + private: + + + + + typedef const_iterator __const_iterator; + + + + struct _Alloc_hider : allocator_type + { + _Alloc_hider(pointer __dat, const _Alloc& __a = _Alloc()) + : allocator_type(__a), _M_p(__dat) { } + + pointer _M_p; + }; + + _Alloc_hider _M_dataplus; + size_type _M_string_length; + + enum { _S_local_capacity = 15 / sizeof(_CharT) }; + + union + { + _CharT _M_local_buf[_S_local_capacity + 1]; + size_type _M_allocated_capacity; + }; + + void + _M_data(pointer __p) + { _M_dataplus._M_p = __p; } + + void + _M_length(size_type __length) + { _M_string_length = __length; } + + pointer + _M_data() const + { return _M_dataplus._M_p; } + + pointer + _M_local_data() + { + + return std::pointer_traits::pointer_to(*_M_local_buf); + + + + } + + const_pointer + _M_local_data() const + { + + return std::pointer_traits::pointer_to(*_M_local_buf); + + + + } + + void + _M_capacity(size_type __capacity) + { _M_allocated_capacity = __capacity; } + + void + _M_set_length(size_type __n) + { + _M_length(__n); + traits_type::assign(_M_data()[__n], _CharT()); + } + + bool + _M_is_local() const + { return _M_data() == _M_local_data(); } + + + pointer + _M_create(size_type&, size_type); + + void + _M_dispose() + { + if (!_M_is_local()) + _M_destroy(_M_allocated_capacity); + } + + void + _M_destroy(size_type __size) throw() + { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } + + + + template + void + _M_construct_aux(_InIterator __beg, _InIterator __end, + std::__false_type) + { + typedef typename iterator_traits<_InIterator>::iterator_category _Tag; + _M_construct(__beg, __end, _Tag()); + } + + + + template + void + _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) + { _M_construct_aux_2(static_cast(__beg), __end); } + + void + _M_construct_aux_2(size_type __req, _CharT __c) + { _M_construct(__req, __c); } + + template + void + _M_construct(_InIterator __beg, _InIterator __end) + { + typedef typename std::__is_integer<_InIterator>::__type _Integral; + _M_construct_aux(__beg, __end, _Integral()); + } + + + template + void + _M_construct(_InIterator __beg, _InIterator __end, + std::input_iterator_tag); + + + + template + void + _M_construct(_FwdIterator __beg, _FwdIterator __end, + std::forward_iterator_tag); + + void + _M_construct(size_type __req, _CharT __c); + + allocator_type& + _M_get_allocator() + { return _M_dataplus; } + + const allocator_type& + _M_get_allocator() const + { return _M_dataplus; } + + private: +# 257 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + _M_check(size_type __pos, const char* __s) const + { + if (__pos > this->size()) + __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") + , + __s, __pos, this->size()); + return __pos; + } + + void + _M_check_length(size_type __n1, size_type __n2, const char* __s) const + { + if (this->max_size() - (this->size() - __n1) < __n2) + __throw_length_error((__s)); + } + + + + size_type + _M_limit(size_type __pos, size_type __off) const noexcept + { + const bool __testoff = __off < this->size() - __pos; + return __testoff ? __off : this->size() - __pos; + } + + + bool + _M_disjunct(const _CharT* __s) const noexcept + { + return (less()(__s, _M_data()) + || less()(_M_data() + this->size(), __s)); + } + + + + static void + _S_copy(_CharT* __d, const _CharT* __s, size_type __n) + { + if (__n == 1) + traits_type::assign(*__d, *__s); + else + traits_type::copy(__d, __s, __n); + } + + static void + _S_move(_CharT* __d, const _CharT* __s, size_type __n) + { + if (__n == 1) + traits_type::assign(*__d, *__s); + else + traits_type::move(__d, __s, __n); + } + + static void + _S_assign(_CharT* __d, size_type __n, _CharT __c) + { + if (__n == 1) + traits_type::assign(*__d, __c); + else + traits_type::assign(__d, __n, __c); + } + + + + template + static void + _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) + { + for (; __k1 != __k2; ++__k1, ++__p) + traits_type::assign(*__p, *__k1); + } + + static void + _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept + { _S_copy_chars(__p, __k1.base(), __k2.base()); } + + static void + _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) + noexcept + { _S_copy_chars(__p, __k1.base(), __k2.base()); } + + static void + _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept + { _S_copy(__p, __k1, __k2 - __k1); } + + static void + _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) + noexcept + { _S_copy(__p, __k1, __k2 - __k1); } + + static int + _S_compare(size_type __n1, size_type __n2) noexcept + { + const difference_type __d = difference_type(__n1 - __n2); + + if (__d > __gnu_cxx::__numeric_traits::__max) + return __gnu_cxx::__numeric_traits::__max; + else if (__d < __gnu_cxx::__numeric_traits::__min) + return __gnu_cxx::__numeric_traits::__min; + else + return int(__d); + } + + void + _M_assign(const basic_string& __rcs); + + void + _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, + size_type __len2); + + void + _M_erase(size_type __pos, size_type __n); + + public: + + + + + + + + basic_string() + + noexcept(is_nothrow_default_constructible<_Alloc>::value) + + : _M_dataplus(_M_local_data()) + { _M_set_length(0); } + + + + + explicit + basic_string(const _Alloc& __a) + : _M_dataplus(_M_local_data(), __a) + { _M_set_length(0); } + + + + + + basic_string(const basic_string& __str) + : _M_dataplus(_M_local_data(), __str._M_get_allocator()) + { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } +# 410 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string(const basic_string& __str, size_type __pos, + size_type __n = npos) + : _M_dataplus(_M_local_data()) + { + const _CharT* __start = __str._M_data() + + __str._M_check(__pos, "basic_string::basic_string"); + _M_construct(__start, __start + __str._M_limit(__pos, __n)); + } +# 426 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string(const basic_string& __str, size_type __pos, + size_type __n, const _Alloc& __a) + : _M_dataplus(_M_local_data(), __a) + { + const _CharT* __start + = __str._M_data() + __str._M_check(__pos, "string::string"); + _M_construct(__start, __start + __str._M_limit(__pos, __n)); + } +# 444 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string(const _CharT* __s, size_type __n, + const _Alloc& __a = _Alloc()) + : _M_dataplus(_M_local_data(), __a) + { _M_construct(__s, __s + __n); } + + + + + + + basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) + : _M_dataplus(_M_local_data(), __a) + { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } + + + + + + + + basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) + : _M_dataplus(_M_local_data(), __a) + { _M_construct(__n, __c); } +# 476 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string(basic_string&& __str) noexcept + : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) + { + if (__str._M_is_local()) + { + traits_type::copy(_M_local_buf, __str._M_local_buf, + _S_local_capacity + 1); + } + else + { + _M_data(__str._M_data()); + _M_capacity(__str._M_allocated_capacity); + } + + + + + _M_length(__str.length()); + __str._M_data(__str._M_local_data()); + __str._M_set_length(0); + } + + + + + + + basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) + : _M_dataplus(_M_local_data(), __a) + { _M_construct(__l.begin(), __l.end()); } + + basic_string(const basic_string& __str, const _Alloc& __a) + : _M_dataplus(_M_local_data(), __a) + { _M_construct(__str.begin(), __str.end()); } + + basic_string(basic_string&& __str, const _Alloc& __a) + : _M_dataplus(_M_local_data(), __a) + { + if (__str.get_allocator() == __a) + *this = std::move(__str); + else + _M_construct(__str.begin(), __str.end()); + } +# 529 "/usr/include/c++/5/bits/basic_string.h" 3 + template> + + + + basic_string(_InputIterator __beg, _InputIterator __end, + const _Alloc& __a = _Alloc()) + : _M_dataplus(_M_local_data(), __a) + { _M_construct(__beg, __end); } + + + + + ~basic_string() + { _M_dispose(); } + + + + + + basic_string& + operator=(const basic_string& __str) + { return this->assign(__str); } + + + + + + basic_string& + operator=(const _CharT* __s) + { return this->assign(__s); } +# 568 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + operator=(_CharT __c) + { + this->assign(1, __c); + return *this; + } +# 586 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + operator=(basic_string&& __str) + { + this->swap(__str); + return *this; + } + + + + + + basic_string& + operator=(initializer_list<_CharT> __l) + { + this->assign(__l.begin(), __l.size()); + return *this; + } + + + + + + + + iterator + begin() noexcept + { return iterator(_M_data()); } + + + + + + const_iterator + begin() const noexcept + { return const_iterator(_M_data()); } + + + + + + iterator + end() noexcept + { return iterator(_M_data() + this->size()); } + + + + + + const_iterator + end() const noexcept + { return const_iterator(_M_data() + this->size()); } + + + + + + + reverse_iterator + rbegin() noexcept + { return reverse_iterator(this->end()); } + + + + + + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(this->end()); } + + + + + + + reverse_iterator + rend() noexcept + { return reverse_iterator(this->begin()); } + + + + + + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(this->begin()); } + + + + + + + const_iterator + cbegin() const noexcept + { return const_iterator(this->_M_data()); } + + + + + + const_iterator + cend() const noexcept + { return const_iterator(this->_M_data() + this->size()); } + + + + + + + const_reverse_iterator + crbegin() const noexcept + { return const_reverse_iterator(this->end()); } + + + + + + + const_reverse_iterator + crend() const noexcept + { return const_reverse_iterator(this->begin()); } + + + public: + + + + size_type + size() const noexcept + { return _M_string_length; } + + + + size_type + length() const noexcept + { return _M_string_length; } + + + size_type + max_size() const noexcept + { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } +# 739 "/usr/include/c++/5/bits/basic_string.h" 3 + void + resize(size_type __n, _CharT __c); +# 752 "/usr/include/c++/5/bits/basic_string.h" 3 + void + resize(size_type __n) + { this->resize(__n, _CharT()); } + + + + void + shrink_to_fit() noexcept + { + + if (capacity() > size()) + { + try + { reserve(0); } + catch(...) + { } + } + + } + + + + + + + size_type + capacity() const noexcept + { + return _M_is_local() ? size_type(_S_local_capacity) + : _M_allocated_capacity; + } +# 801 "/usr/include/c++/5/bits/basic_string.h" 3 + void + reserve(size_type __res_arg = 0); + + + + + void + clear() noexcept + { _M_set_length(0); } + + + + + + bool + empty() const noexcept + { return this->size() == 0; } +# 830 "/usr/include/c++/5/bits/basic_string.h" 3 + const_reference + operator[] (size_type __pos) const noexcept + { + ; + return _M_data()[__pos]; + } +# 847 "/usr/include/c++/5/bits/basic_string.h" 3 + reference + operator[](size_type __pos) + { + + + ; + + ; + return _M_data()[__pos]; + } +# 868 "/usr/include/c++/5/bits/basic_string.h" 3 + const_reference + at(size_type __n) const + { + if (__n >= this->size()) + __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") + + , + __n, this->size()); + return _M_data()[__n]; + } +# 889 "/usr/include/c++/5/bits/basic_string.h" 3 + reference + at(size_type __n) + { + if (__n >= size()) + __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") + + , + __n, this->size()); + return _M_data()[__n]; + } + + + + + + + reference + front() noexcept + { return operator[](0); } + + + + + + const_reference + front() const noexcept + { return operator[](0); } + + + + + + reference + back() noexcept + { return operator[](this->size() - 1); } + + + + + + const_reference + back() const noexcept + { return operator[](this->size() - 1); } +# 940 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + operator+=(const basic_string& __str) + { return this->append(__str); } + + + + + + + basic_string& + operator+=(const _CharT* __s) + { return this->append(__s); } + + + + + + + basic_string& + operator+=(_CharT __c) + { + this->push_back(__c); + return *this; + } + + + + + + + + basic_string& + operator+=(initializer_list<_CharT> __l) + { return this->append(__l.begin(), __l.size()); } + + + + + + + + basic_string& + append(const basic_string& __str) + { return _M_append(__str._M_data(), __str.size()); } +# 998 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + append(const basic_string& __str, size_type __pos, size_type __n) + { return _M_append(__str._M_data() + + __str._M_check(__pos, "basic_string::append"), + __str._M_limit(__pos, __n)); } + + + + + + + + basic_string& + append(const _CharT* __s, size_type __n) + { + ; + _M_check_length(size_type(0), __n, "basic_string::append"); + return _M_append(__s, __n); + } + + + + + + + basic_string& + append(const _CharT* __s) + { + ; + const size_type __n = traits_type::length(__s); + _M_check_length(size_type(0), __n, "basic_string::append"); + return _M_append(__s, __n); + } +# 1040 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + append(size_type __n, _CharT __c) + { return _M_replace_aux(this->size(), size_type(0), __n, __c); } + + + + + + + + basic_string& + append(initializer_list<_CharT> __l) + { return this->append(__l.begin(), __l.size()); } +# 1064 "/usr/include/c++/5/bits/basic_string.h" 3 + template> + + + + basic_string& + append(_InputIterator __first, _InputIterator __last) + { return this->replace(end(), end(), __first, __last); } + + + + + + void + push_back(_CharT __c) + { + const size_type __size = this->size(); + if (__size + 1 > this->capacity()) + this->_M_mutate(__size, size_type(0), 0, size_type(1)); + traits_type::assign(this->_M_data()[__size], __c); + this->_M_set_length(__size + 1); + } + + + + + + + basic_string& + assign(const basic_string& __str) + { + this->_M_assign(__str); + return *this; + } +# 1108 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + assign(basic_string&& __str) + { + + + return *this = std::move(__str); + } +# 1130 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + assign(const basic_string& __str, size_type __pos, size_type __n) + { return _M_replace(size_type(0), this->size(), __str._M_data() + + __str._M_check(__pos, "basic_string::assign"), + __str._M_limit(__pos, __n)); } +# 1146 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + assign(const _CharT* __s, size_type __n) + { + ; + return _M_replace(size_type(0), this->size(), __s, __n); + } +# 1162 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + assign(const _CharT* __s) + { + ; + return _M_replace(size_type(0), this->size(), __s, + traits_type::length(__s)); + } +# 1179 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + assign(size_type __n, _CharT __c) + { return _M_replace_aux(size_type(0), this->size(), __n, __c); } +# 1192 "/usr/include/c++/5/bits/basic_string.h" 3 + template> + + + + basic_string& + assign(_InputIterator __first, _InputIterator __last) + { return this->replace(begin(), end(), __first, __last); } + + + + + + + + basic_string& + assign(initializer_list<_CharT> __l) + { return this->assign(__l.begin(), __l.size()); } +# 1228 "/usr/include/c++/5/bits/basic_string.h" 3 + iterator + insert(const_iterator __p, size_type __n, _CharT __c) + { + ; + const size_type __pos = __p - begin(); + this->replace(__p, __p, __n, __c); + return iterator(this->_M_data() + __pos); + } +# 1270 "/usr/include/c++/5/bits/basic_string.h" 3 + template> + iterator + insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) + { + ; + const size_type __pos = __p - begin(); + this->replace(__p, __p, __beg, __end); + return iterator(this->_M_data() + __pos); + } +# 1306 "/usr/include/c++/5/bits/basic_string.h" 3 + void + insert(iterator __p, initializer_list<_CharT> __l) + { + ; + this->insert(__p - begin(), __l.begin(), __l.size()); + } +# 1326 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + insert(size_type __pos1, const basic_string& __str) + { return this->replace(__pos1, size_type(0), + __str._M_data(), __str.size()); } +# 1349 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + insert(size_type __pos1, const basic_string& __str, + size_type __pos2, size_type __n) + { return this->replace(__pos1, size_type(0), __str._M_data() + + __str._M_check(__pos2, "basic_string::insert"), + __str._M_limit(__pos2, __n)); } +# 1372 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + insert(size_type __pos, const _CharT* __s, size_type __n) + { return this->replace(__pos, size_type(0), __s, __n); } +# 1391 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + insert(size_type __pos, const _CharT* __s) + { + ; + return this->replace(__pos, size_type(0), __s, + traits_type::length(__s)); + } +# 1415 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + insert(size_type __pos, size_type __n, _CharT __c) + { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), + size_type(0), __n, __c); } +# 1433 "/usr/include/c++/5/bits/basic_string.h" 3 + iterator + insert(__const_iterator __p, _CharT __c) + { + ; + const size_type __pos = __p - begin(); + _M_replace_aux(__pos, size_type(0), size_type(1), __c); + return iterator(_M_data() + __pos); + } +# 1457 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + erase(size_type __pos = 0, size_type __n = npos) + { + this->_M_erase(_M_check(__pos, "basic_string::erase"), + _M_limit(__pos, __n)); + return *this; + } +# 1473 "/usr/include/c++/5/bits/basic_string.h" 3 + iterator + erase(__const_iterator __position) + { + + ; + const size_type __pos = __position - begin(); + this->_M_erase(__pos, size_type(1)); + return iterator(_M_data() + __pos); + } +# 1492 "/usr/include/c++/5/bits/basic_string.h" 3 + iterator + erase(__const_iterator __first, __const_iterator __last) + { + + ; + const size_type __pos = __first - begin(); + this->_M_erase(__pos, __last - __first); + return iterator(this->_M_data() + __pos); + } + + + + + + + + void + pop_back() noexcept + { _M_erase(size()-1, 1); } +# 1530 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(size_type __pos, size_type __n, const basic_string& __str) + { return this->replace(__pos, __n, __str._M_data(), __str.size()); } +# 1552 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(size_type __pos1, size_type __n1, const basic_string& __str, + size_type __pos2, size_type __n2) + { return this->replace(__pos1, __n1, __str._M_data() + + __str._M_check(__pos2, "basic_string::replace"), + __str._M_limit(__pos2, __n2)); } +# 1577 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(size_type __pos, size_type __n1, const _CharT* __s, + size_type __n2) + { + ; + return _M_replace(_M_check(__pos, "basic_string::replace"), + _M_limit(__pos, __n1), __s, __n2); + } +# 1602 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(size_type __pos, size_type __n1, const _CharT* __s) + { + ; + return this->replace(__pos, __n1, __s, traits_type::length(__s)); + } +# 1626 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) + { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), + _M_limit(__pos, __n1), __n2, __c); } +# 1644 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, + const basic_string& __str) + { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } +# 1664 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, + const _CharT* __s, size_type __n) + { + + ; + return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); + } +# 1686 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) + { + ; + return this->replace(__i1, __i2, __s, traits_type::length(__s)); + } +# 1707 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, size_type __n, + _CharT __c) + { + + ; + return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); + } +# 1732 "/usr/include/c++/5/bits/basic_string.h" 3 + template> + basic_string& + replace(const_iterator __i1, const_iterator __i2, + _InputIterator __k1, _InputIterator __k2) + { + + ; + ; + return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, + std::__false_type()); + } +# 1764 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, + _CharT* __k1, _CharT* __k2) + { + + ; + ; + return this->replace(__i1 - begin(), __i2 - __i1, + __k1, __k2 - __k1); + } + + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, + const _CharT* __k1, const _CharT* __k2) + { + + ; + ; + return this->replace(__i1 - begin(), __i2 - __i1, + __k1, __k2 - __k1); + } + + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, + iterator __k1, iterator __k2) + { + + ; + ; + return this->replace(__i1 - begin(), __i2 - __i1, + __k1.base(), __k2 - __k1); + } + + basic_string& + replace(__const_iterator __i1, __const_iterator __i2, + const_iterator __k1, const_iterator __k2) + { + + ; + ; + return this->replace(__i1 - begin(), __i2 - __i1, + __k1.base(), __k2 - __k1); + } +# 1823 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string& replace(const_iterator __i1, const_iterator __i2, + initializer_list<_CharT> __l) + { return this->replace(__i1, __i2, __l.begin(), __l.end()); } + + + private: + template + basic_string& + _M_replace_dispatch(const_iterator __i1, const_iterator __i2, + _Integer __n, _Integer __val, __true_type) + { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } + + template + basic_string& + _M_replace_dispatch(const_iterator __i1, const_iterator __i2, + _InputIterator __k1, _InputIterator __k2, + __false_type); + + basic_string& + _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, + _CharT __c); + + basic_string& + _M_replace(size_type __pos, size_type __len1, const _CharT* __s, + const size_type __len2); + + basic_string& + _M_append(const _CharT* __s, size_type __n); + + public: +# 1866 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + copy(_CharT* __s, size_type __n, size_type __pos = 0) const; +# 1876 "/usr/include/c++/5/bits/basic_string.h" 3 + void + swap(basic_string& __s) noexcept; +# 1886 "/usr/include/c++/5/bits/basic_string.h" 3 + const _CharT* + c_str() const noexcept + { return _M_data(); } + + + + + + + + const _CharT* + data() const noexcept + { return _M_data(); } + + + + + allocator_type + get_allocator() const noexcept + { return _M_get_allocator(); } +# 1919 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find(const _CharT* __s, size_type __pos, size_type __n) const; +# 1932 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find(const basic_string& __str, size_type __pos = 0) const + noexcept + { return this->find(__str.data(), __pos, __str.size()); } +# 1947 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find(const _CharT* __s, size_type __pos = 0) const + { + ; + return this->find(__s, __pos, traits_type::length(__s)); + } +# 1964 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find(_CharT __c, size_type __pos = 0) const noexcept; +# 1977 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + rfind(const basic_string& __str, size_type __pos = npos) const + noexcept + { return this->rfind(__str.data(), __pos, __str.size()); } +# 1994 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + rfind(const _CharT* __s, size_type __pos, size_type __n) const; +# 2007 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + rfind(const _CharT* __s, size_type __pos = npos) const + { + ; + return this->rfind(__s, __pos, traits_type::length(__s)); + } +# 2024 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + rfind(_CharT __c, size_type __pos = npos) const noexcept; +# 2038 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_of(const basic_string& __str, size_type __pos = 0) const + noexcept + { return this->find_first_of(__str.data(), __pos, __str.size()); } +# 2055 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; +# 2068 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_of(const _CharT* __s, size_type __pos = 0) const + { + ; + return this->find_first_of(__s, __pos, traits_type::length(__s)); + } +# 2087 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_of(_CharT __c, size_type __pos = 0) const noexcept + { return this->find(__c, __pos); } +# 2102 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_of(const basic_string& __str, size_type __pos = npos) const + noexcept + { return this->find_last_of(__str.data(), __pos, __str.size()); } +# 2119 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; +# 2132 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_of(const _CharT* __s, size_type __pos = npos) const + { + ; + return this->find_last_of(__s, __pos, traits_type::length(__s)); + } +# 2151 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_of(_CharT __c, size_type __pos = npos) const noexcept + { return this->rfind(__c, __pos); } +# 2165 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_not_of(const basic_string& __str, size_type __pos = 0) const + noexcept + { return this->find_first_not_of(__str.data(), __pos, __str.size()); } +# 2182 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_not_of(const _CharT* __s, size_type __pos, + size_type __n) const; +# 2196 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_not_of(const _CharT* __s, size_type __pos = 0) const + { + ; + return this->find_first_not_of(__s, __pos, traits_type::length(__s)); + } +# 2213 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_first_not_of(_CharT __c, size_type __pos = 0) const + noexcept; +# 2228 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_not_of(const basic_string& __str, size_type __pos = npos) const + noexcept + { return this->find_last_not_of(__str.data(), __pos, __str.size()); } +# 2245 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_not_of(const _CharT* __s, size_type __pos, + size_type __n) const; +# 2259 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_not_of(const _CharT* __s, size_type __pos = npos) const + { + ; + return this->find_last_not_of(__s, __pos, traits_type::length(__s)); + } +# 2276 "/usr/include/c++/5/bits/basic_string.h" 3 + size_type + find_last_not_of(_CharT __c, size_type __pos = npos) const + noexcept; +# 2292 "/usr/include/c++/5/bits/basic_string.h" 3 + basic_string + substr(size_type __pos = 0, size_type __n = npos) const + { return basic_string(*this, + _M_check(__pos, "basic_string::substr"), __n); } +# 2311 "/usr/include/c++/5/bits/basic_string.h" 3 + int + compare(const basic_string& __str) const + { + const size_type __size = this->size(); + const size_type __osize = __str.size(); + const size_type __len = std::min(__size, __osize); + + int __r = traits_type::compare(_M_data(), __str.data(), __len); + if (!__r) + __r = _S_compare(__size, __osize); + return __r; + } +# 2343 "/usr/include/c++/5/bits/basic_string.h" 3 + int + compare(size_type __pos, size_type __n, const basic_string& __str) const; +# 2369 "/usr/include/c++/5/bits/basic_string.h" 3 + int + compare(size_type __pos1, size_type __n1, const basic_string& __str, + size_type __pos2, size_type __n2) const; +# 2387 "/usr/include/c++/5/bits/basic_string.h" 3 + int + compare(const _CharT* __s) const; +# 2411 "/usr/include/c++/5/bits/basic_string.h" 3 + int + compare(size_type __pos, size_type __n1, const _CharT* __s) const; +# 2438 "/usr/include/c++/5/bits/basic_string.h" 3 + int + compare(size_type __pos, size_type __n1, const _CharT* __s, + size_type __n2) const; + }; +} +# 4781 "/usr/include/c++/5/bits/basic_string.h" 3 + template + basic_string<_CharT, _Traits, _Alloc> + operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { + basic_string<_CharT, _Traits, _Alloc> __str(__lhs); + __str.append(__rhs); + return __str; + } + + + + + + + + template + basic_string<_CharT,_Traits,_Alloc> + operator+(const _CharT* __lhs, + const basic_string<_CharT,_Traits,_Alloc>& __rhs); + + + + + + + + template + basic_string<_CharT,_Traits,_Alloc> + operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); + + + + + + + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { + basic_string<_CharT, _Traits, _Alloc> __str(__lhs); + __str.append(__rhs); + return __str; + } + + + + + + + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) + { + typedef basic_string<_CharT, _Traits, _Alloc> __string_type; + typedef typename __string_type::size_type __size_type; + __string_type __str(__lhs); + __str.append(__size_type(1), __rhs); + return __str; + } + + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return std::move(__lhs.append(__rhs)); } + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + basic_string<_CharT, _Traits, _Alloc>&& __rhs) + { return std::move(__rhs.insert(0, __lhs)); } + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, + basic_string<_CharT, _Traits, _Alloc>&& __rhs) + { + const auto __size = __lhs.size() + __rhs.size(); + const bool __cond = (__size > __lhs.capacity() + && __size <= __rhs.capacity()); + return __cond ? std::move(__rhs.insert(0, __lhs)) + : std::move(__lhs.append(__rhs)); + } + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(const _CharT* __lhs, + basic_string<_CharT, _Traits, _Alloc>&& __rhs) + { return std::move(__rhs.insert(0, __lhs)); } + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(_CharT __lhs, + basic_string<_CharT, _Traits, _Alloc>&& __rhs) + { return std::move(__rhs.insert(0, 1, __lhs)); } + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, + const _CharT* __rhs) + { return std::move(__lhs.append(__rhs)); } + + template + inline basic_string<_CharT, _Traits, _Alloc> + operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, + _CharT __rhs) + { return std::move(__lhs.append(1, __rhs)); } +# 4902 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline bool + operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __lhs.compare(__rhs) == 0; } + + template + inline + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type + operator==(const basic_string<_CharT>& __lhs, + const basic_string<_CharT>& __rhs) + { return (__lhs.size() == __rhs.size() + && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), + __lhs.size())); } + + + + + + + + template + inline bool + operator==(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __rhs.compare(__lhs) == 0; } + + + + + + + + template + inline bool + operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { return __lhs.compare(__rhs) == 0; } +# 4948 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline bool + operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return !(__lhs == __rhs); } + + + + + + + + template + inline bool + operator!=(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return !(__lhs == __rhs); } + + + + + + + + template + inline bool + operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { return !(__lhs == __rhs); } +# 4985 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline bool + operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __lhs.compare(__rhs) < 0; } + + + + + + + + template + inline bool + operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { return __lhs.compare(__rhs) < 0; } + + + + + + + + template + inline bool + operator<(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __rhs.compare(__lhs) > 0; } +# 5022 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline bool + operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __lhs.compare(__rhs) > 0; } + + + + + + + + template + inline bool + operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { return __lhs.compare(__rhs) > 0; } + + + + + + + + template + inline bool + operator>(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __rhs.compare(__lhs) < 0; } +# 5059 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline bool + operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __lhs.compare(__rhs) <= 0; } + + + + + + + + template + inline bool + operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { return __lhs.compare(__rhs) <= 0; } + + + + + + + + template + inline bool + operator<=(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __rhs.compare(__lhs) >= 0; } +# 5096 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline bool + operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __lhs.compare(__rhs) >= 0; } + + + + + + + + template + inline bool + operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, + const _CharT* __rhs) + { return __lhs.compare(__rhs) >= 0; } + + + + + + + + template + inline bool + operator>=(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { return __rhs.compare(__lhs) <= 0; } +# 5133 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline void + swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, + basic_string<_CharT, _Traits, _Alloc>& __rhs) + { __lhs.swap(__rhs); } +# 5152 "/usr/include/c++/5/bits/basic_string.h" 3 + template + basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>& __is, + basic_string<_CharT, _Traits, _Alloc>& __str); + + template<> + basic_istream& + operator>>(basic_istream& __is, basic_string& __str); +# 5170 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __os, + const basic_string<_CharT, _Traits, _Alloc>& __str) + { + + + return __ostream_insert(__os, __str.data(), __str.size()); + } +# 5193 "/usr/include/c++/5/bits/basic_string.h" 3 + template + basic_istream<_CharT, _Traits>& + getline(basic_istream<_CharT, _Traits>& __is, + basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); +# 5210 "/usr/include/c++/5/bits/basic_string.h" 3 + template + inline basic_istream<_CharT, _Traits>& + getline(basic_istream<_CharT, _Traits>& __is, + basic_string<_CharT, _Traits, _Alloc>& __str) + { return std::getline(__is, __str, __is.widen('\n')); } + + + + template + inline basic_istream<_CharT, _Traits>& + getline(basic_istream<_CharT, _Traits>&& __is, + basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) + { return std::getline(__is, __str, __delim); } + + + template + inline basic_istream<_CharT, _Traits>& + getline(basic_istream<_CharT, _Traits>&& __is, + basic_string<_CharT, _Traits, _Alloc>& __str) + { return std::getline(__is, __str); } + + + template<> + basic_istream& + getline(basic_istream& __in, basic_string& __str, + char __delim); + + + template<> + basic_istream& + getline(basic_istream& __in, basic_string& __str, + wchar_t __delim); + + + +} + + + +# 1 "/usr/include/c++/5/ext/string_conversions.h" 1 3 +# 32 "/usr/include/c++/5/ext/string_conversions.h" 3 + +# 33 "/usr/include/c++/5/ext/string_conversions.h" 3 +# 41 "/usr/include/c++/5/ext/string_conversions.h" 3 +# 1 "/usr/include/c++/5/cstdlib" 1 3 +# 39 "/usr/include/c++/5/cstdlib" 3 + +# 40 "/usr/include/c++/5/cstdlib" 3 +# 42 "/usr/include/c++/5/ext/string_conversions.h" 2 3 +# 1 "/usr/include/c++/5/cwchar" 1 3 +# 39 "/usr/include/c++/5/cwchar" 3 + +# 40 "/usr/include/c++/5/cwchar" 3 + + + + +# 1 "/usr/include/wchar.h" 1 3 4 +# 45 "/usr/include/c++/5/cwchar" 2 3 +# 43 "/usr/include/c++/5/ext/string_conversions.h" 2 3 +# 1 "/usr/include/c++/5/cstdio" 1 3 +# 39 "/usr/include/c++/5/cstdio" 3 + +# 40 "/usr/include/c++/5/cstdio" 3 + + +# 1 "/usr/include/stdio.h" 1 3 4 +# 29 "/usr/include/stdio.h" 3 4 +extern "C" { + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 34 "/usr/include/stdio.h" 2 3 4 +# 74 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/libio.h" 1 3 4 +# 31 "/usr/include/libio.h" 3 4 +# 1 "/usr/include/_G_config.h" 1 3 4 +# 15 "/usr/include/_G_config.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 16 "/usr/include/_G_config.h" 2 3 4 + + + + +# 1 "/usr/include/wchar.h" 1 3 4 +# 21 "/usr/include/_G_config.h" 2 3 4 +typedef struct +{ + __off_t __pos; + __mbstate_t __state; +} _G_fpos_t; +typedef struct +{ + __off64_t __pos; + __mbstate_t __state; +} _G_fpos64_t; +# 32 "/usr/include/libio.h" 2 3 4 +# 49 "/usr/include/libio.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4 +# 50 "/usr/include/libio.h" 2 3 4 +# 144 "/usr/include/libio.h" 3 4 +struct _IO_jump_t; struct _IO_FILE; + + + + + +typedef void _IO_lock_t; + + + + + +struct _IO_marker { + struct _IO_marker *_next; + struct _IO_FILE *_sbuf; + + + + int _pos; +# 173 "/usr/include/libio.h" 3 4 +}; + + +enum __codecvt_result +{ + __codecvt_ok, + __codecvt_partial, + __codecvt_error, + __codecvt_noconv +}; +# 241 "/usr/include/libio.h" 3 4 +struct _IO_FILE { + int _flags; + + + + + char* _IO_read_ptr; + char* _IO_read_end; + char* _IO_read_base; + char* _IO_write_base; + char* _IO_write_ptr; + char* _IO_write_end; + char* _IO_buf_base; + char* _IO_buf_end; + + char *_IO_save_base; + char *_IO_backup_base; + char *_IO_save_end; + + struct _IO_marker *_markers; + + struct _IO_FILE *_chain; + + int _fileno; + + + + int _flags2; + + __off_t _old_offset; + + + + unsigned short _cur_column; + signed char _vtable_offset; + char _shortbuf[1]; + + + + _IO_lock_t *_lock; +# 289 "/usr/include/libio.h" 3 4 + __off64_t _offset; + + + + + + + + void *__pad1; + void *__pad2; + void *__pad3; + void *__pad4; + + size_t __pad5; + int _mode; + + char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; + +}; + + + + + +struct _IO_FILE_plus; + +extern struct _IO_FILE_plus _IO_2_1_stdin_; +extern struct _IO_FILE_plus _IO_2_1_stdout_; +extern struct _IO_FILE_plus _IO_2_1_stderr_; +# 333 "/usr/include/libio.h" 3 4 +typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); + + + + + + + +typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, + size_t __n); + + + + + + + +typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); + + +typedef int __io_close_fn (void *__cookie); + + + + +typedef __io_read_fn cookie_read_function_t; +typedef __io_write_fn cookie_write_function_t; +typedef __io_seek_fn cookie_seek_function_t; +typedef __io_close_fn cookie_close_function_t; + + +typedef struct +{ + __io_read_fn *read; + __io_write_fn *write; + __io_seek_fn *seek; + __io_close_fn *close; +} _IO_cookie_io_functions_t; +typedef _IO_cookie_io_functions_t cookie_io_functions_t; + +struct _IO_cookie_file; + + +extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, + void *__cookie, _IO_cookie_io_functions_t __fns); + + + + +extern "C" { + + +extern int __underflow (_IO_FILE *); +extern int __uflow (_IO_FILE *); +extern int __overflow (_IO_FILE *, int); +# 429 "/usr/include/libio.h" 3 4 +extern int _IO_getc (_IO_FILE *__fp); +extern int _IO_putc (int __c, _IO_FILE *__fp); +extern int _IO_feof (_IO_FILE *__fp) throw (); +extern int _IO_ferror (_IO_FILE *__fp) throw (); + +extern int _IO_peekc_locked (_IO_FILE *__fp); + + + + + +extern void _IO_flockfile (_IO_FILE *) throw (); +extern void _IO_funlockfile (_IO_FILE *) throw (); +extern int _IO_ftrylockfile (_IO_FILE *) throw (); +# 459 "/usr/include/libio.h" 3 4 +extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, + __gnuc_va_list, int *__restrict); +extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, + __gnuc_va_list); +extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); +extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); + +extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); +extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); + +extern void _IO_free_backup_area (_IO_FILE *) throw (); +# 521 "/usr/include/libio.h" 3 4 +} +# 75 "/usr/include/stdio.h" 2 3 4 + + + + +typedef __gnuc_va_list va_list; +# 108 "/usr/include/stdio.h" 3 4 + + +typedef _G_fpos_t fpos_t; + + + + + +typedef _G_fpos64_t fpos64_t; +# 164 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 +# 165 "/usr/include/stdio.h" 2 3 4 + + + +extern struct _IO_FILE *stdin; +extern struct _IO_FILE *stdout; +extern struct _IO_FILE *stderr; + + + + + + + +extern int remove (const char *__filename) throw (); + +extern int rename (const char *__old, const char *__new) throw (); + + + + +extern int renameat (int __oldfd, const char *__old, int __newfd, + const char *__new) throw (); + + + + + + + + +extern FILE *tmpfile (void) ; +# 205 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile64 (void) ; + + + +extern char *tmpnam (char *__s) throw () ; + + + + + +extern char *tmpnam_r (char *__s) throw () ; +# 227 "/usr/include/stdio.h" 3 4 +extern char *tempnam (const char *__dir, const char *__pfx) + throw () __attribute__ ((__malloc__)) ; + + + + + + + + +extern int fclose (FILE *__stream); + + + + +extern int fflush (FILE *__stream); + +# 252 "/usr/include/stdio.h" 3 4 +extern int fflush_unlocked (FILE *__stream); +# 262 "/usr/include/stdio.h" 3 4 +extern int fcloseall (void); + + + + + + + + + +extern FILE *fopen (const char *__restrict __filename, + const char *__restrict __modes) ; + + + + +extern FILE *freopen (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) ; +# 295 "/usr/include/stdio.h" 3 4 + + +extern FILE *fopen64 (const char *__restrict __filename, + const char *__restrict __modes) ; +extern FILE *freopen64 (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) ; + + + + +extern FILE *fdopen (int __fd, const char *__modes) throw () ; + + + + + +extern FILE *fopencookie (void *__restrict __magic_cookie, + const char *__restrict __modes, + _IO_cookie_io_functions_t __io_funcs) throw () ; + + + + +extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) + throw () ; + + + + +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ; + + + + + + +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); + + + +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) throw (); + + + + + +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) throw (); + + +extern void setlinebuf (FILE *__stream) throw (); + + + + + + + + +extern int fprintf (FILE *__restrict __stream, + const char *__restrict __format, ...); + + + + +extern int printf (const char *__restrict __format, ...); + +extern int sprintf (char *__restrict __s, + const char *__restrict __format, ...) throw (); + + + + + +extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg); + + + + +extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); + +extern int vsprintf (char *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) throw (); + + + + + +extern int snprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, ...) + throw () __attribute__ ((__format__ (__printf__, 3, 4))); + +extern int vsnprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, __gnuc_va_list __arg) + throw () __attribute__ ((__format__ (__printf__, 3, 0))); + + + + + + +extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, + __gnuc_va_list __arg) + throw () __attribute__ ((__format__ (__printf__, 2, 0))) ; +extern int __asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; +extern int asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; + + + + +extern int vdprintf (int __fd, const char *__restrict __fmt, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 2, 0))); +extern int dprintf (int __fd, const char *__restrict __fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + + + + + + + + +extern int fscanf (FILE *__restrict __stream, + const char *__restrict __format, ...) ; + + + + +extern int scanf (const char *__restrict __format, ...) ; + +extern int sscanf (const char *__restrict __s, + const char *__restrict __format, ...) throw (); +# 463 "/usr/include/stdio.h" 3 4 + + + + + + + + +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 2, 0))) ; + + + + + +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 1, 0))) ; + + +extern int vsscanf (const char *__restrict __s, + const char *__restrict __format, __gnuc_va_list __arg) + throw () __attribute__ ((__format__ (__scanf__, 2, 0))); +# 522 "/usr/include/stdio.h" 3 4 + + + + + + + + + +extern int fgetc (FILE *__stream); +extern int getc (FILE *__stream); + + + + + +extern int getchar (void); + +# 550 "/usr/include/stdio.h" 3 4 +extern int getc_unlocked (FILE *__stream); +extern int getchar_unlocked (void); +# 561 "/usr/include/stdio.h" 3 4 +extern int fgetc_unlocked (FILE *__stream); + + + + + + + + + + + +extern int fputc (int __c, FILE *__stream); +extern int putc (int __c, FILE *__stream); + + + + + +extern int putchar (int __c); + +# 594 "/usr/include/stdio.h" 3 4 +extern int fputc_unlocked (int __c, FILE *__stream); + + + + + + + +extern int putc_unlocked (int __c, FILE *__stream); +extern int putchar_unlocked (int __c); + + + + + + +extern int getw (FILE *__stream); + + +extern int putw (int __w, FILE *__stream); + + + + + + + + +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + ; +# 638 "/usr/include/stdio.h" 3 4 +extern char *gets (char *__s) __attribute__ ((__deprecated__)); + + +# 649 "/usr/include/stdio.h" 3 4 +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) ; +# 665 "/usr/include/stdio.h" 3 4 +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) ; +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) ; + + + + + + + +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) ; + + + + + + + + +extern int fputs (const char *__restrict __s, FILE *__restrict __stream); + + + + + +extern int puts (const char *__s); + + + + + + +extern int ungetc (int __c, FILE *__stream); + + + + + + +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) ; + + + + +extern size_t fwrite (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s); + +# 726 "/usr/include/stdio.h" 3 4 +extern int fputs_unlocked (const char *__restrict __s, + FILE *__restrict __stream); +# 737 "/usr/include/stdio.h" 3 4 +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) ; +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream); + + + + + + + + +extern int fseek (FILE *__stream, long int __off, int __whence); + + + + +extern long int ftell (FILE *__stream) ; + + + + +extern void rewind (FILE *__stream); + +# 773 "/usr/include/stdio.h" 3 4 +extern int fseeko (FILE *__stream, __off_t __off, int __whence); + + + + +extern __off_t ftello (FILE *__stream) ; +# 792 "/usr/include/stdio.h" 3 4 + + + + + + +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); + + + + +extern int fsetpos (FILE *__stream, const fpos_t *__pos); +# 815 "/usr/include/stdio.h" 3 4 + + + +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); +extern __off64_t ftello64 (FILE *__stream) ; +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); + + + + +extern void clearerr (FILE *__stream) throw (); + +extern int feof (FILE *__stream) throw () ; + +extern int ferror (FILE *__stream) throw () ; + + + + +extern void clearerr_unlocked (FILE *__stream) throw (); +extern int feof_unlocked (FILE *__stream) throw () ; +extern int ferror_unlocked (FILE *__stream) throw () ; + + + + + + + + +extern void perror (const char *__s); + + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 +extern int sys_nerr; +extern const char *const sys_errlist[]; + + +extern int _sys_nerr; +extern const char *const _sys_errlist[]; +# 854 "/usr/include/stdio.h" 2 3 4 + + + + +extern int fileno (FILE *__stream) throw () ; + + + + +extern int fileno_unlocked (FILE *__stream) throw () ; +# 872 "/usr/include/stdio.h" 3 4 +extern FILE *popen (const char *__command, const char *__modes) ; + + + + + +extern int pclose (FILE *__stream); + + + + + +extern char *ctermid (char *__s) throw (); + + + + + +extern char *cuserid (char *__s); + + + + +struct obstack; + + +extern int obstack_printf (struct obstack *__restrict __obstack, + const char *__restrict __format, ...) + throw () __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *__restrict __obstack, + const char *__restrict __format, + __gnuc_va_list __args) + throw () __attribute__ ((__format__ (__printf__, 2, 0))); + + + + + + + +extern void flockfile (FILE *__stream) throw (); + + + +extern int ftrylockfile (FILE *__stream) throw () ; + + +extern void funlockfile (FILE *__stream) throw (); +# 942 "/usr/include/stdio.h" 3 4 +} +# 43 "/usr/include/c++/5/cstdio" 2 3 +# 96 "/usr/include/c++/5/cstdio" 3 +namespace std +{ + using ::FILE; + using ::fpos_t; + + using ::clearerr; + using ::fclose; + using ::feof; + using ::ferror; + using ::fflush; + using ::fgetc; + using ::fgetpos; + using ::fgets; + using ::fopen; + using ::fprintf; + using ::fputc; + using ::fputs; + using ::fread; + using ::freopen; + using ::fscanf; + using ::fseek; + using ::fsetpos; + using ::ftell; + using ::fwrite; + using ::getc; + using ::getchar; + + + using ::gets; + + using ::perror; + using ::printf; + using ::putc; + using ::putchar; + using ::puts; + using ::remove; + using ::rename; + using ::rewind; + using ::scanf; + using ::setbuf; + using ::setvbuf; + using ::sprintf; + using ::sscanf; + using ::tmpfile; + + using ::tmpnam; + + using ::ungetc; + using ::vfprintf; + using ::vprintf; + using ::vsprintf; +} +# 157 "/usr/include/c++/5/cstdio" 3 +namespace __gnu_cxx +{ +# 175 "/usr/include/c++/5/cstdio" 3 + using ::snprintf; + using ::vfscanf; + using ::vscanf; + using ::vsnprintf; + using ::vsscanf; + +} + +namespace std +{ + using ::__gnu_cxx::snprintf; + using ::__gnu_cxx::vfscanf; + using ::__gnu_cxx::vscanf; + using ::__gnu_cxx::vsnprintf; + using ::__gnu_cxx::vsscanf; +} +# 44 "/usr/include/c++/5/ext/string_conversions.h" 2 3 +# 1 "/usr/include/c++/5/cerrno" 1 3 +# 39 "/usr/include/c++/5/cerrno" 3 + +# 40 "/usr/include/c++/5/cerrno" 3 + +# 1 "/usr/include/errno.h" 1 3 4 +# 31 "/usr/include/errno.h" 3 4 +extern "C" { + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/errno.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4 +# 1 "/usr/include/linux/errno.h" 1 3 4 +# 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 1 3 4 +# 1 "/usr/include/asm-generic/errno.h" 1 3 4 + + + +# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 +# 5 "/usr/include/asm-generic/errno.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 2 3 4 +# 1 "/usr/include/linux/errno.h" 2 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/errno.h" 2 3 4 +# 50 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4 +extern int *__errno_location (void) throw () __attribute__ ((__const__)); +# 36 "/usr/include/errno.h" 2 3 4 +# 54 "/usr/include/errno.h" 3 4 +extern char *program_invocation_name, *program_invocation_short_name; + + + +} +# 68 "/usr/include/errno.h" 3 4 +typedef int error_t; +# 42 "/usr/include/c++/5/cerrno" 2 3 +# 45 "/usr/include/c++/5/ext/string_conversions.h" 2 3 + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + _Ret + __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), + const char* __name, const _CharT* __str, std::size_t* __idx, + _Base... __base) + { + _Ret __ret; + + _CharT* __endptr; + (*__errno_location ()) = 0; + const _TRet __tmp = __convf(__str, &__endptr, __base...); + + if (__endptr == __str) + std::__throw_invalid_argument(__name); + else if ((*__errno_location ()) == 34 + || (std::__are_same<_Ret, int>::__value + && (__tmp < __numeric_traits::__min + || __tmp > __numeric_traits::__max))) + std::__throw_out_of_range(__name); + else + __ret = __tmp; + + if (__idx) + *__idx = __endptr - __str; + + return __ret; + } + + + template + _String + __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, + __builtin_va_list), std::size_t __n, + const _CharT* __fmt, ...) + { + + + _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __n)); + + __builtin_va_list __args; + __builtin_va_start(__args, __fmt); + + const int __len = __convf(__s, __n, __fmt, __args); + + __builtin_va_end(__args); + + return _String(__s, __s + __len); + } + + +} +# 5250 "/usr/include/c++/5/bits/basic_string.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +namespace __cxx11 { + + + inline int + stoi(const string& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), + __idx, __base); } + + inline long + stol(const string& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), + __idx, __base); } + + inline unsigned long + stoul(const string& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), + __idx, __base); } + + inline long long + stoll(const string& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), + __idx, __base); } + + inline unsigned long long + stoull(const string& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), + __idx, __base); } + + + inline float + stof(const string& __str, size_t* __idx = 0) + { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } + + inline double + stod(const string& __str, size_t* __idx = 0) + { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } + + inline long double + stold(const string& __str, size_t* __idx = 0) + { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } + + + + + inline string + to_string(int __val) + { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), + "%d", __val); } + + inline string + to_string(unsigned __val) + { return __gnu_cxx::__to_xstring(&std::vsnprintf, + 4 * sizeof(unsigned), + "%u", __val); } + + inline string + to_string(long __val) + { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), + "%ld", __val); } + + inline string + to_string(unsigned long __val) + { return __gnu_cxx::__to_xstring(&std::vsnprintf, + 4 * sizeof(unsigned long), + "%lu", __val); } + + inline string + to_string(long long __val) + { return __gnu_cxx::__to_xstring(&std::vsnprintf, + 4 * sizeof(long long), + "%lld", __val); } + + inline string + to_string(unsigned long long __val) + { return __gnu_cxx::__to_xstring(&std::vsnprintf, + 4 * sizeof(unsigned long long), + "%llu", __val); } + + inline string + to_string(float __val) + { + const int __n = + __gnu_cxx::__numeric_traits::__max_exponent10 + 20; + return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, + "%f", __val); + } + + inline string + to_string(double __val) + { + const int __n = + __gnu_cxx::__numeric_traits::__max_exponent10 + 20; + return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, + "%f", __val); + } + + inline string + to_string(long double __val) + { + const int __n = + __gnu_cxx::__numeric_traits::__max_exponent10 + 20; + return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, + "%Lf", __val); + } + + + inline int + stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), + __idx, __base); } + + inline long + stol(const wstring& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), + __idx, __base); } + + inline unsigned long + stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), + __idx, __base); } + + inline long long + stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), + __idx, __base); } + + inline unsigned long long + stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) + { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), + __idx, __base); } + + + inline float + stof(const wstring& __str, size_t* __idx = 0) + { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } + + inline double + stod(const wstring& __str, size_t* __idx = 0) + { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } + + inline long double + stold(const wstring& __str, size_t* __idx = 0) + { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } + + + + inline wstring + to_wstring(int __val) + { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), + L"%d", __val); } + + inline wstring + to_wstring(unsigned __val) + { return __gnu_cxx::__to_xstring(&std::vswprintf, + 4 * sizeof(unsigned), + L"%u", __val); } + + inline wstring + to_wstring(long __val) + { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), + L"%ld", __val); } + + inline wstring + to_wstring(unsigned long __val) + { return __gnu_cxx::__to_xstring(&std::vswprintf, + 4 * sizeof(unsigned long), + L"%lu", __val); } + + inline wstring + to_wstring(long long __val) + { return __gnu_cxx::__to_xstring(&std::vswprintf, + 4 * sizeof(long long), + L"%lld", __val); } + + inline wstring + to_wstring(unsigned long long __val) + { return __gnu_cxx::__to_xstring(&std::vswprintf, + 4 * sizeof(unsigned long long), + L"%llu", __val); } + + inline wstring + to_wstring(float __val) + { + const int __n = + __gnu_cxx::__numeric_traits::__max_exponent10 + 20; + return __gnu_cxx::__to_xstring(&std::vswprintf, __n, + L"%f", __val); + } + + inline wstring + to_wstring(double __val) + { + const int __n = + __gnu_cxx::__numeric_traits::__max_exponent10 + 20; + return __gnu_cxx::__to_xstring(&std::vswprintf, __n, + L"%f", __val); + } + + inline wstring + to_wstring(long double __val) + { + const int __n = + __gnu_cxx::__numeric_traits::__max_exponent10 + 20; + return __gnu_cxx::__to_xstring(&std::vswprintf, __n, + L"%Lf", __val); + } + + + +} + +} + + + + + +# 1 "/usr/include/c++/5/bits/functional_hash.h" 1 3 +# 33 "/usr/include/c++/5/bits/functional_hash.h" 3 + +# 34 "/usr/include/c++/5/bits/functional_hash.h" 3 + +# 1 "/usr/include/c++/5/bits/hash_bytes.h" 1 3 +# 33 "/usr/include/c++/5/bits/hash_bytes.h" 3 + +# 34 "/usr/include/c++/5/bits/hash_bytes.h" 3 + + + +namespace std +{ + + + + + + + + size_t + _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); + + + + + + size_t + _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); + + +} +# 36 "/usr/include/c++/5/bits/functional_hash.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 49 "/usr/include/c++/5/bits/functional_hash.h" 3 + template + struct __hash_base + { + typedef _Result result_type; + typedef _Arg argument_type; + }; + + + template + struct hash; + + + template + struct hash<_Tp*> : public __hash_base + { + size_t + operator()(_Tp* __p) const noexcept + { return reinterpret_cast(__p); } + }; +# 80 "/usr/include/c++/5/bits/functional_hash.h" 3 + template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; + + + template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; + + + + struct _Hash_impl + { + static size_t + hash(const void* __ptr, size_t __clength, + size_t __seed = static_cast(0xc70f6907UL)) + { return _Hash_bytes(__ptr, __clength, __seed); } + + template + static size_t + hash(const _Tp& __val) + { return hash(&__val, sizeof(__val)); } + + template + static size_t + __hash_combine(const _Tp& __val, size_t __hash) + { return hash(&__val, sizeof(__val), __hash); } + }; + + struct _Fnv_hash_impl + { + static size_t + hash(const void* __ptr, size_t __clength, + size_t __seed = static_cast(2166136261UL)) + { return _Fnv_hash_bytes(__ptr, __clength, __seed); } + + template + static size_t + hash(const _Tp& __val) + { return hash(&__val, sizeof(__val)); } + + template + static size_t + __hash_combine(const _Tp& __val, size_t __hash) + { return hash(&__val, sizeof(__val), __hash); } + }; + + + template<> + struct hash : public __hash_base + { + size_t + operator()(float __val) const noexcept + { + + return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; + } + }; + + + template<> + struct hash : public __hash_base + { + size_t + operator()(double __val) const noexcept + { + + return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; + } + }; + + + template<> + struct hash + : public __hash_base + { + __attribute__ ((__pure__)) size_t + operator()(long double __val) const noexcept; + }; + + + + + + + + template + struct __is_fast_hash : public std::true_type + { }; + + template<> + struct __is_fast_hash> : public std::false_type + { }; + + +} +# 5472 "/usr/include/c++/5/bits/basic_string.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + template<> + struct hash + : public __hash_base + { + size_t + operator()(const string& __s) const noexcept + { return std::_Hash_impl::hash(__s.data(), __s.length()); } + }; + + template<> + struct __is_fast_hash> : std::false_type + { }; + + + + template<> + struct hash + : public __hash_base + { + size_t + operator()(const wstring& __s) const noexcept + { return std::_Hash_impl::hash(__s.data(), + __s.length() * sizeof(wchar_t)); } + }; + + template<> + struct __is_fast_hash> : std::false_type + { }; + + + + + + template<> + struct hash + : public __hash_base + { + size_t + operator()(const u16string& __s) const noexcept + { return std::_Hash_impl::hash(__s.data(), + __s.length() * sizeof(char16_t)); } + }; + + template<> + struct __is_fast_hash> : std::false_type + { }; + + + template<> + struct hash + : public __hash_base + { + size_t + operator()(const u32string& __s) const noexcept + { return std::_Hash_impl::hash(__s.data(), + __s.length() * sizeof(char32_t)); } + }; + + template<> + struct __is_fast_hash> : std::false_type + { }; +# 5582 "/usr/include/c++/5/bits/basic_string.h" 3 + +} +# 53 "/usr/include/c++/5/string" 2 3 +# 1 "/usr/include/c++/5/bits/basic_string.tcc" 1 3 +# 42 "/usr/include/c++/5/bits/basic_string.tcc" 3 + +# 43 "/usr/include/c++/5/bits/basic_string.tcc" 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + const typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>::npos; + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + swap(basic_string& __s) noexcept + { + if (this == &__s) + return; + + + + + std::__alloc_swap::_S_do_it(_M_get_allocator(), + __s._M_get_allocator()); + + if (_M_is_local()) + if (__s._M_is_local()) + { + if (length() && __s.length()) + { + _CharT __tmp_data[_S_local_capacity + 1]; + traits_type::copy(__tmp_data, __s._M_local_buf, + _S_local_capacity + 1); + traits_type::copy(__s._M_local_buf, _M_local_buf, + _S_local_capacity + 1); + traits_type::copy(_M_local_buf, __tmp_data, + _S_local_capacity + 1); + } + else if (__s.length()) + { + traits_type::copy(_M_local_buf, __s._M_local_buf, + _S_local_capacity + 1); + _M_length(__s.length()); + __s._M_set_length(0); + return; + } + else if (length()) + { + traits_type::copy(__s._M_local_buf, _M_local_buf, + _S_local_capacity + 1); + __s._M_length(length()); + _M_set_length(0); + return; + } + } + else + { + const size_type __tmp_capacity = __s._M_allocated_capacity; + traits_type::copy(__s._M_local_buf, _M_local_buf, + _S_local_capacity + 1); + _M_data(__s._M_data()); + __s._M_data(__s._M_local_buf); + _M_capacity(__tmp_capacity); + } + else + { + const size_type __tmp_capacity = _M_allocated_capacity; + if (__s._M_is_local()) + { + traits_type::copy(_M_local_buf, __s._M_local_buf, + _S_local_capacity + 1); + __s._M_data(_M_data()); + _M_data(_M_local_buf); + } + else + { + pointer __tmp_ptr = _M_data(); + _M_data(__s._M_data()); + __s._M_data(__tmp_ptr); + _M_capacity(__s._M_allocated_capacity); + } + __s._M_capacity(__tmp_capacity); + } + + const size_type __tmp_length = length(); + _M_length(__s.length()); + __s._M_length(__tmp_length); + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::pointer + basic_string<_CharT, _Traits, _Alloc>:: + _M_create(size_type& __capacity, size_type __old_capacity) + { + + + if (__capacity > max_size()) + std::__throw_length_error(("basic_string::_M_create")); + + + + + if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) + { + __capacity = 2 * __old_capacity; + + if (__capacity > max_size()) + __capacity = max_size(); + } + + + + return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); + } + + + + + + template + template + void + basic_string<_CharT, _Traits, _Alloc>:: + _M_construct(_InIterator __beg, _InIterator __end, + std::input_iterator_tag) + { + size_type __len = 0; + size_type __capacity = size_type(_S_local_capacity); + + while (__beg != __end && __len < __capacity) + { + _M_data()[__len++] = *__beg; + ++__beg; + } + + try + { + while (__beg != __end) + { + if (__len == __capacity) + { + + __capacity = __len + 1; + pointer __another = _M_create(__capacity, __len); + this->_S_copy(__another, _M_data(), __len); + _M_dispose(); + _M_data(__another); + _M_capacity(__capacity); + } + _M_data()[__len++] = *__beg; + ++__beg; + } + } + catch(...) + { + _M_dispose(); + throw; + } + + _M_set_length(__len); + } + + template + template + void + basic_string<_CharT, _Traits, _Alloc>:: + _M_construct(_InIterator __beg, _InIterator __end, + std::forward_iterator_tag) + { + + if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) + std::__throw_logic_error(("basic_string::" "_M_construct null not valid") + ); + + size_type __dnew = static_cast(std::distance(__beg, __end)); + + if (__dnew > size_type(_S_local_capacity)) + { + _M_data(_M_create(__dnew, size_type(0))); + _M_capacity(__dnew); + } + + + try + { this->_S_copy_chars(_M_data(), __beg, __end); } + catch(...) + { + _M_dispose(); + throw; + } + + _M_set_length(__dnew); + } + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + _M_construct(size_type __n, _CharT __c) + { + if (__n > size_type(_S_local_capacity)) + { + _M_data(_M_create(__n, size_type(0))); + _M_capacity(__n); + } + + if (__n) + this->_S_assign(_M_data(), __n, __c); + + _M_set_length(__n); + } + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + _M_assign(const basic_string& __str) + { + if (this != &__str) + { + const size_type __rsize = __str.length(); + const size_type __capacity = capacity(); + + if (__rsize > __capacity) + { + size_type __new_capacity = __rsize; + pointer __tmp = _M_create(__new_capacity, __capacity); + _M_dispose(); + _M_data(__tmp); + _M_capacity(__new_capacity); + } + + if (__rsize) + this->_S_copy(_M_data(), __str._M_data(), __rsize); + + _M_set_length(__rsize); + } + } + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + reserve(size_type __res) + { + + if (__res < length()) + __res = length(); + + const size_type __capacity = capacity(); + if (__res != __capacity) + { + if (__res > __capacity + || __res > size_type(_S_local_capacity)) + { + pointer __tmp = _M_create(__res, __capacity); + this->_S_copy(__tmp, _M_data(), length() + 1); + _M_dispose(); + _M_data(__tmp); + _M_capacity(__res); + } + else if (!_M_is_local()) + { + this->_S_copy(_M_local_data(), _M_data(), length() + 1); + _M_destroy(__capacity); + _M_data(_M_local_data()); + } + } + } + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, + size_type __len2) + { + const size_type __how_much = length() - __pos - __len1; + + size_type __new_capacity = length() + __len2 - __len1; + pointer __r = _M_create(__new_capacity, capacity()); + + if (__pos) + this->_S_copy(__r, _M_data(), __pos); + if (__s && __len2) + this->_S_copy(__r + __pos, __s, __len2); + if (__how_much) + this->_S_copy(__r + __pos + __len2, + _M_data() + __pos + __len1, __how_much); + + _M_dispose(); + _M_data(__r); + _M_capacity(__new_capacity); + } + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + _M_erase(size_type __pos, size_type __n) + { + const size_type __how_much = length() - __pos - __n; + + if (__how_much && __n) + this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); + + _M_set_length(length() - __n); + } + + template + void + basic_string<_CharT, _Traits, _Alloc>:: + resize(size_type __n, _CharT __c) + { + const size_type __size = this->size(); + if (__size < __n) + this->append(__n - __size, __c); + else if (__n < __size) + this->_M_erase(__n, __size - __n); + } + + template + basic_string<_CharT, _Traits, _Alloc>& + basic_string<_CharT, _Traits, _Alloc>:: + _M_append(const _CharT* __s, size_type __n) + { + const size_type __len = __n + this->size(); + + if (__len <= this->capacity()) + { + if (__n) + this->_S_copy(this->_M_data() + this->size(), __s, __n); + } + else + this->_M_mutate(this->size(), size_type(0), __s, __n); + + this->_M_set_length(__len); + return *this; + } + + template + template + basic_string<_CharT, _Traits, _Alloc>& + basic_string<_CharT, _Traits, _Alloc>:: + _M_replace_dispatch(const_iterator __i1, const_iterator __i2, + _InputIterator __k1, _InputIterator __k2, + std::__false_type) + { + const basic_string __s(__k1, __k2); + const size_type __n1 = __i2 - __i1; + return _M_replace(__i1 - begin(), __n1, __s._M_data(), + __s.size()); + } + + template + basic_string<_CharT, _Traits, _Alloc>& + basic_string<_CharT, _Traits, _Alloc>:: + _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, + _CharT __c) + { + _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); + + const size_type __old_size = this->size(); + const size_type __new_size = __old_size + __n2 - __n1; + + if (__new_size <= this->capacity()) + { + _CharT* __p = this->_M_data() + __pos1; + + const size_type __how_much = __old_size - __pos1 - __n1; + if (__how_much && __n1 != __n2) + this->_S_move(__p + __n2, __p + __n1, __how_much); + } + else + this->_M_mutate(__pos1, __n1, 0, __n2); + + if (__n2) + this->_S_assign(this->_M_data() + __pos1, __n2, __c); + + this->_M_set_length(__new_size); + return *this; + } + + template + basic_string<_CharT, _Traits, _Alloc>& + basic_string<_CharT, _Traits, _Alloc>:: + _M_replace(size_type __pos, size_type __len1, const _CharT* __s, + const size_type __len2) + { + _M_check_length(__len1, __len2, "basic_string::_M_replace"); + + const size_type __old_size = this->size(); + const size_type __new_size = __old_size + __len2 - __len1; + + if (__new_size <= this->capacity()) + { + _CharT* __p = this->_M_data() + __pos; + + const size_type __how_much = __old_size - __pos - __len1; + if (_M_disjunct(__s)) + { + if (__how_much && __len1 != __len2) + this->_S_move(__p + __len2, __p + __len1, __how_much); + if (__len2) + this->_S_copy(__p, __s, __len2); + } + else + { + + if (__len2 && __len2 <= __len1) + this->_S_move(__p, __s, __len2); + if (__how_much && __len1 != __len2) + this->_S_move(__p + __len2, __p + __len1, __how_much); + if (__len2 > __len1) + { + if (__s + __len2 <= __p + __len1) + this->_S_move(__p, __s, __len2); + else if (__s >= __p + __len1) + this->_S_copy(__p, __s + __len2 - __len1, __len2); + else + { + const size_type __nleft = (__p + __len1) - __s; + this->_S_move(__p, __s, __nleft); + this->_S_copy(__p + __nleft, __p + __len2, + __len2 - __nleft); + } + } + } + } + else + this->_M_mutate(__pos, __len1, __s, __len2); + + this->_M_set_length(__new_size); + return *this; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + copy(_CharT* __s, size_type __n, size_type __pos) const + { + _M_check(__pos, "basic_string::copy"); + __n = _M_limit(__pos, __n); + ; + if (__n) + _S_copy(__s, _M_data() + __pos, __n); + + return __n; + } +# 1149 "/usr/include/c++/5/bits/basic_string.tcc" 3 + template + basic_string<_CharT, _Traits, _Alloc> + operator+(const _CharT* __lhs, + const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { + ; + typedef basic_string<_CharT, _Traits, _Alloc> __string_type; + typedef typename __string_type::size_type __size_type; + const __size_type __len = _Traits::length(__lhs); + __string_type __str; + __str.reserve(__len + __rhs.size()); + __str.append(__lhs, __len); + __str.append(__rhs); + return __str; + } + + template + basic_string<_CharT, _Traits, _Alloc> + operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) + { + typedef basic_string<_CharT, _Traits, _Alloc> __string_type; + typedef typename __string_type::size_type __size_type; + __string_type __str; + const __size_type __len = __rhs.size(); + __str.reserve(__len + 1); + __str.append(__size_type(1), __lhs); + __str.append(__rhs); + return __str; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find(const _CharT* __s, size_type __pos, size_type __n) const + { + ; + const size_type __size = this->size(); + const _CharT* __data = _M_data(); + + if (__n == 0) + return __pos <= __size ? __pos : npos; + + if (__n <= __size) + { + for (; __pos <= __size - __n; ++__pos) + if (traits_type::eq(__data[__pos], __s[0]) + && traits_type::compare(__data + __pos + 1, + __s + 1, __n - 1) == 0) + return __pos; + } + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find(_CharT __c, size_type __pos) const noexcept + { + size_type __ret = npos; + const size_type __size = this->size(); + if (__pos < __size) + { + const _CharT* __data = _M_data(); + const size_type __n = __size - __pos; + const _CharT* __p = traits_type::find(__data + __pos, __n, __c); + if (__p) + __ret = __p - __data; + } + return __ret; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + rfind(const _CharT* __s, size_type __pos, size_type __n) const + { + ; + const size_type __size = this->size(); + if (__n <= __size) + { + __pos = std::min(size_type(__size - __n), __pos); + const _CharT* __data = _M_data(); + do + { + if (traits_type::compare(__data + __pos, __s, __n) == 0) + return __pos; + } + while (__pos-- > 0); + } + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + rfind(_CharT __c, size_type __pos) const noexcept + { + size_type __size = this->size(); + if (__size) + { + if (--__size > __pos) + __size = __pos; + for (++__size; __size-- > 0; ) + if (traits_type::eq(_M_data()[__size], __c)) + return __size; + } + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find_first_of(const _CharT* __s, size_type __pos, size_type __n) const + { + ; + for (; __n && __pos < this->size(); ++__pos) + { + const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); + if (__p) + return __pos; + } + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find_last_of(const _CharT* __s, size_type __pos, size_type __n) const + { + ; + size_type __size = this->size(); + if (__size && __n) + { + if (--__size > __pos) + __size = __pos; + do + { + if (traits_type::find(__s, __n, _M_data()[__size])) + return __size; + } + while (__size-- != 0); + } + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const + { + ; + for (; __pos < this->size(); ++__pos) + if (!traits_type::find(__s, __n, _M_data()[__pos])) + return __pos; + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find_first_not_of(_CharT __c, size_type __pos) const noexcept + { + for (; __pos < this->size(); ++__pos) + if (!traits_type::eq(_M_data()[__pos], __c)) + return __pos; + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const + { + ; + size_type __size = this->size(); + if (__size) + { + if (--__size > __pos) + __size = __pos; + do + { + if (!traits_type::find(__s, __n, _M_data()[__size])) + return __size; + } + while (__size--); + } + return npos; + } + + template + typename basic_string<_CharT, _Traits, _Alloc>::size_type + basic_string<_CharT, _Traits, _Alloc>:: + find_last_not_of(_CharT __c, size_type __pos) const noexcept + { + size_type __size = this->size(); + if (__size) + { + if (--__size > __pos) + __size = __pos; + do + { + if (!traits_type::eq(_M_data()[__size], __c)) + return __size; + } + while (__size--); + } + return npos; + } + + template + int + basic_string<_CharT, _Traits, _Alloc>:: + compare(size_type __pos, size_type __n, const basic_string& __str) const + { + _M_check(__pos, "basic_string::compare"); + __n = _M_limit(__pos, __n); + const size_type __osize = __str.size(); + const size_type __len = std::min(__n, __osize); + int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); + if (!__r) + __r = _S_compare(__n, __osize); + return __r; + } + + template + int + basic_string<_CharT, _Traits, _Alloc>:: + compare(size_type __pos1, size_type __n1, const basic_string& __str, + size_type __pos2, size_type __n2) const + { + _M_check(__pos1, "basic_string::compare"); + __str._M_check(__pos2, "basic_string::compare"); + __n1 = _M_limit(__pos1, __n1); + __n2 = __str._M_limit(__pos2, __n2); + const size_type __len = std::min(__n1, __n2); + int __r = traits_type::compare(_M_data() + __pos1, + __str.data() + __pos2, __len); + if (!__r) + __r = _S_compare(__n1, __n2); + return __r; + } + + template + int + basic_string<_CharT, _Traits, _Alloc>:: + compare(const _CharT* __s) const + { + ; + const size_type __size = this->size(); + const size_type __osize = traits_type::length(__s); + const size_type __len = std::min(__size, __osize); + int __r = traits_type::compare(_M_data(), __s, __len); + if (!__r) + __r = _S_compare(__size, __osize); + return __r; + } + + template + int + basic_string <_CharT, _Traits, _Alloc>:: + compare(size_type __pos, size_type __n1, const _CharT* __s) const + { + ; + _M_check(__pos, "basic_string::compare"); + __n1 = _M_limit(__pos, __n1); + const size_type __osize = traits_type::length(__s); + const size_type __len = std::min(__n1, __osize); + int __r = traits_type::compare(_M_data() + __pos, __s, __len); + if (!__r) + __r = _S_compare(__n1, __osize); + return __r; + } + + template + int + basic_string <_CharT, _Traits, _Alloc>:: + compare(size_type __pos, size_type __n1, const _CharT* __s, + size_type __n2) const + { + ; + _M_check(__pos, "basic_string::compare"); + __n1 = _M_limit(__pos, __n1); + const size_type __len = std::min(__n1, __n2); + int __r = traits_type::compare(_M_data() + __pos, __s, __len); + if (!__r) + __r = _S_compare(__n1, __n2); + return __r; + } + + + template + basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>& __in, + basic_string<_CharT, _Traits, _Alloc>& __str) + { + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef basic_string<_CharT, _Traits, _Alloc> __string_type; + typedef typename __istream_type::ios_base __ios_base; + typedef typename __istream_type::int_type __int_type; + typedef typename __string_type::size_type __size_type; + typedef ctype<_CharT> __ctype_type; + typedef typename __ctype_type::ctype_base __ctype_base; + + __size_type __extracted = 0; + typename __ios_base::iostate __err = __ios_base::goodbit; + typename __istream_type::sentry __cerb(__in, false); + if (__cerb) + { + try + { + + __str.erase(); + _CharT __buf[128]; + __size_type __len = 0; + const streamsize __w = __in.width(); + const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) + : __str.max_size(); + const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); + const __int_type __eof = _Traits::eof(); + __int_type __c = __in.rdbuf()->sgetc(); + + while (__extracted < __n + && !_Traits::eq_int_type(__c, __eof) + && !__ct.is(__ctype_base::space, + _Traits::to_char_type(__c))) + { + if (__len == sizeof(__buf) / sizeof(_CharT)) + { + __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); + __len = 0; + } + __buf[__len++] = _Traits::to_char_type(__c); + ++__extracted; + __c = __in.rdbuf()->snextc(); + } + __str.append(__buf, __len); + + if (_Traits::eq_int_type(__c, __eof)) + __err |= __ios_base::eofbit; + __in.width(0); + } + catch(__cxxabiv1::__forced_unwind&) + { + __in._M_setstate(__ios_base::badbit); + throw; + } + catch(...) + { + + + + __in._M_setstate(__ios_base::badbit); + } + } + + if (!__extracted) + __err |= __ios_base::failbit; + if (__err) + __in.setstate(__err); + return __in; + } + + template + basic_istream<_CharT, _Traits>& + getline(basic_istream<_CharT, _Traits>& __in, + basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) + { + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef basic_string<_CharT, _Traits, _Alloc> __string_type; + typedef typename __istream_type::ios_base __ios_base; + typedef typename __istream_type::int_type __int_type; + typedef typename __string_type::size_type __size_type; + + __size_type __extracted = 0; + const __size_type __n = __str.max_size(); + typename __ios_base::iostate __err = __ios_base::goodbit; + typename __istream_type::sentry __cerb(__in, true); + if (__cerb) + { + try + { + __str.erase(); + const __int_type __idelim = _Traits::to_int_type(__delim); + const __int_type __eof = _Traits::eof(); + __int_type __c = __in.rdbuf()->sgetc(); + + while (__extracted < __n + && !_Traits::eq_int_type(__c, __eof) + && !_Traits::eq_int_type(__c, __idelim)) + { + __str += _Traits::to_char_type(__c); + ++__extracted; + __c = __in.rdbuf()->snextc(); + } + + if (_Traits::eq_int_type(__c, __eof)) + __err |= __ios_base::eofbit; + else if (_Traits::eq_int_type(__c, __idelim)) + { + ++__extracted; + __in.rdbuf()->sbumpc(); + } + else + __err |= __ios_base::failbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + __in._M_setstate(__ios_base::badbit); + throw; + } + catch(...) + { + + + + __in._M_setstate(__ios_base::badbit); + } + } + if (!__extracted) + __err |= __ios_base::failbit; + if (__err) + __in.setstate(__err); + return __in; + } + + + + + extern template class basic_string; + extern template + basic_istream& + operator>>(basic_istream&, string&); + extern template + basic_ostream& + operator<<(basic_ostream&, const string&); + extern template + basic_istream& + getline(basic_istream&, string&, char); + extern template + basic_istream& + getline(basic_istream&, string&); + + + extern template class basic_string; + extern template + basic_istream& + operator>>(basic_istream&, wstring&); + extern template + basic_ostream& + operator<<(basic_ostream&, const wstring&); + extern template + basic_istream& + getline(basic_istream&, wstring&, wchar_t); + extern template + basic_istream& + getline(basic_istream&, wstring&); + + + + +} +# 54 "/usr/include/c++/5/string" 2 3 +# 41 "/usr/include/c++/5/random" 2 3 + +# 1 "/usr/include/c++/5/limits" 1 3 +# 40 "/usr/include/c++/5/limits" 3 + +# 41 "/usr/include/c++/5/limits" 3 +# 158 "/usr/include/c++/5/limits" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + enum float_round_style + { + round_indeterminate = -1, + round_toward_zero = 0, + round_to_nearest = 1, + round_toward_infinity = 2, + round_toward_neg_infinity = 3 + }; + + + + + + + + enum float_denorm_style + { + + denorm_indeterminate = -1, + + denorm_absent = 0, + + denorm_present = 1 + }; +# 202 "/usr/include/c++/5/limits" 3 + struct __numeric_limits_base + { + + + static constexpr bool is_specialized = false; + + + + + static constexpr int digits = 0; + + + static constexpr int digits10 = 0; + + + + + static constexpr int max_digits10 = 0; + + + + static constexpr bool is_signed = false; + + + static constexpr bool is_integer = false; + + + + + static constexpr bool is_exact = false; + + + + static constexpr int radix = 0; + + + + static constexpr int min_exponent = 0; + + + + static constexpr int min_exponent10 = 0; + + + + + static constexpr int max_exponent = 0; + + + + static constexpr int max_exponent10 = 0; + + + static constexpr bool has_infinity = false; + + + + static constexpr bool has_quiet_NaN = false; + + + + static constexpr bool has_signaling_NaN = false; + + + static constexpr float_denorm_style has_denorm = denorm_absent; + + + + static constexpr bool has_denorm_loss = false; + + + + static constexpr bool is_iec559 = false; + + + + + static constexpr bool is_bounded = false; +# 288 "/usr/include/c++/5/limits" 3 + static constexpr bool is_modulo = false; + + + static constexpr bool traps = false; + + + static constexpr bool tinyness_before = false; + + + + + static constexpr float_round_style round_style = + round_toward_zero; + }; +# 314 "/usr/include/c++/5/limits" 3 + template + struct numeric_limits : public __numeric_limits_base + { + + + static constexpr _Tp + min() noexcept { return _Tp(); } + + + static constexpr _Tp + max() noexcept { return _Tp(); } + + + + + static constexpr _Tp + lowest() noexcept { return _Tp(); } + + + + + static constexpr _Tp + epsilon() noexcept { return _Tp(); } + + + static constexpr _Tp + round_error() noexcept { return _Tp(); } + + + static constexpr _Tp + infinity() noexcept { return _Tp(); } + + + + static constexpr _Tp + quiet_NaN() noexcept { return _Tp(); } + + + + static constexpr _Tp + signaling_NaN() noexcept { return _Tp(); } + + + + + static constexpr _Tp + denorm_min() noexcept { return _Tp(); } + }; + + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr bool + min() noexcept { return false; } + + static constexpr bool + max() noexcept { return true; } + + + static constexpr bool + lowest() noexcept { return min(); } + + static constexpr int digits = 1; + static constexpr int digits10 = 0; + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr bool + epsilon() noexcept { return false; } + + static constexpr bool + round_error() noexcept { return false; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr bool + infinity() noexcept { return false; } + + static constexpr bool + quiet_NaN() noexcept { return false; } + + static constexpr bool + signaling_NaN() noexcept { return false; } + + static constexpr bool + denorm_min() noexcept { return false; } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + + + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char + min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } + + static constexpr char + max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } + + + static constexpr char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((char)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char + epsilon() noexcept { return 0; } + + static constexpr char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr + char infinity() noexcept { return char(); } + + static constexpr char + quiet_NaN() noexcept { return char(); } + + static constexpr char + signaling_NaN() noexcept { return char(); } + + static constexpr char + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr signed char + min() noexcept { return -0x7f - 1; } + + static constexpr signed char + max() noexcept { return 0x7f; } + + + static constexpr signed char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr signed char + epsilon() noexcept { return 0; } + + static constexpr signed char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr signed char + infinity() noexcept { return static_cast(0); } + + static constexpr signed char + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr signed char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr signed char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned char + min() noexcept { return 0; } + + static constexpr unsigned char + max() noexcept { return 0x7f * 2U + 1; } + + + static constexpr unsigned char + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned char + epsilon() noexcept { return 0; } + + static constexpr unsigned char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned char + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned char + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr wchar_t + min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } + + static constexpr wchar_t + max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } + + + static constexpr wchar_t + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((wchar_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr wchar_t + epsilon() noexcept { return 0; } + + static constexpr wchar_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr wchar_t + infinity() noexcept { return wchar_t(); } + + static constexpr wchar_t + quiet_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + signaling_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + denorm_min() noexcept { return wchar_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char16_t + min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } + + static constexpr char16_t + max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } + + static constexpr char16_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char16_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char16_t + epsilon() noexcept { return 0; } + + static constexpr char16_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char16_t + infinity() noexcept { return char16_t(); } + + static constexpr char16_t + quiet_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + signaling_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + denorm_min() noexcept { return char16_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char32_t + min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } + + static constexpr char32_t + max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } + + static constexpr char32_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char32_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char32_t + epsilon() noexcept { return 0; } + + static constexpr char32_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char32_t + infinity() noexcept { return char32_t(); } + + static constexpr char32_t + quiet_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + signaling_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + denorm_min() noexcept { return char32_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr short + min() noexcept { return -0x7fff - 1; } + + static constexpr short + max() noexcept { return 0x7fff; } + + + static constexpr short + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); + static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr short + epsilon() noexcept { return 0; } + + static constexpr short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr short + infinity() noexcept { return short(); } + + static constexpr short + quiet_NaN() noexcept { return short(); } + + static constexpr short + signaling_NaN() noexcept { return short(); } + + static constexpr short + denorm_min() noexcept { return short(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned short + min() noexcept { return 0; } + + static constexpr unsigned short + max() noexcept { return 0x7fff * 2U + 1; } + + + static constexpr unsigned short + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned short + epsilon() noexcept { return 0; } + + static constexpr unsigned short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned short + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned short + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr int + min() noexcept { return -0x7fffffff - 1; } + + static constexpr int + max() noexcept { return 0x7fffffff; } + + + static constexpr int + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); + static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr int + epsilon() noexcept { return 0; } + + static constexpr int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr int + infinity() noexcept { return static_cast(0); } + + static constexpr int + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr int + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr int + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned int + min() noexcept { return 0; } + + static constexpr unsigned int + max() noexcept { return 0x7fffffff * 2U + 1; } + + + static constexpr unsigned int + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned int + epsilon() noexcept { return 0; } + + static constexpr unsigned int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned int + infinity() noexcept { return static_cast(0); } + + static constexpr unsigned int + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long + min() noexcept { return -0x7fffffffffffffffL - 1; } + + static constexpr long + max() noexcept { return 0x7fffffffffffffffL; } + + + static constexpr long + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); + static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long + epsilon() noexcept { return 0; } + + static constexpr long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long + infinity() noexcept { return static_cast(0); } + + static constexpr long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long + min() noexcept { return 0; } + + static constexpr unsigned long + max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } + + + static constexpr unsigned long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long + epsilon() noexcept { return 0; } + + static constexpr unsigned long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long long + min() noexcept { return -0x7fffffffffffffffLL - 1; } + + static constexpr long long + max() noexcept { return 0x7fffffffffffffffLL; } + + + static constexpr long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(long long) * 8 - ((long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long long + epsilon() noexcept { return 0; } + + static constexpr long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long long + infinity() noexcept { return static_cast(0); } + + static constexpr long long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr long long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long long + min() noexcept { return 0; } + + static constexpr unsigned long long + max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } + + + static constexpr unsigned long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long long + epsilon() noexcept { return 0; } + + static constexpr unsigned long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 1592 "/usr/include/c++/5/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr float + min() noexcept { return 1.17549435082228750797e-38F; } + + static constexpr float + max() noexcept { return 3.40282346638528859812e+38F; } + + + static constexpr float + lowest() noexcept { return -3.40282346638528859812e+38F; } + + + static constexpr int digits = 24; + static constexpr int digits10 = 6; + + static constexpr int max_digits10 + = (2 + (24) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr float + epsilon() noexcept { return 1.19209289550781250000e-7F; } + + static constexpr float + round_error() noexcept { return 0.5F; } + + static constexpr int min_exponent = (-125); + static constexpr int min_exponent10 = (-37); + static constexpr int max_exponent = 128; + static constexpr int max_exponent10 = 38; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr float + infinity() noexcept { return __builtin_huge_valf(); } + + static constexpr float + quiet_NaN() noexcept { return __builtin_nanf(""); } + + static constexpr float + signaling_NaN() noexcept { return __builtin_nansf(""); } + + static constexpr float + denorm_min() noexcept { return 1.40129846432481707092e-45F; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr double + min() noexcept { return double(2.22507385850720138309e-308L); } + + static constexpr double + max() noexcept { return double(1.79769313486231570815e+308L); } + + + static constexpr double + lowest() noexcept { return -double(1.79769313486231570815e+308L); } + + + static constexpr int digits = 53; + static constexpr int digits10 = 15; + + static constexpr int max_digits10 + = (2 + (53) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr double + epsilon() noexcept { return double(2.22044604925031308085e-16L); } + + static constexpr double + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = (-1021); + static constexpr int min_exponent10 = (-307); + static constexpr int max_exponent = 1024; + static constexpr int max_exponent10 = 308; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr double + infinity() noexcept { return __builtin_huge_val(); } + + static constexpr double + quiet_NaN() noexcept { return __builtin_nan(""); } + + static constexpr double + signaling_NaN() noexcept { return __builtin_nans(""); } + + static constexpr double + denorm_min() noexcept { return double(4.94065645841246544177e-324L); } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long double + min() noexcept { return 3.36210314311209350626e-4932L; } + + static constexpr long double + max() noexcept { return 1.18973149535723176502e+4932L; } + + + static constexpr long double + lowest() noexcept { return -1.18973149535723176502e+4932L; } + + + static constexpr int digits = 64; + static constexpr int digits10 = 18; + + static constexpr int max_digits10 + = (2 + (64) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr long double + epsilon() noexcept { return 1.08420217248550443401e-19L; } + + static constexpr long double + round_error() noexcept { return 0.5L; } + + static constexpr int min_exponent = (-16381); + static constexpr int min_exponent10 = (-4931); + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr long double + infinity() noexcept { return __builtin_huge_vall(); } + + static constexpr long double + quiet_NaN() noexcept { return __builtin_nanl(""); } + + static constexpr long double + signaling_NaN() noexcept { return __builtin_nansl(""); } + + static constexpr long double + denorm_min() noexcept { return 3.64519953188247460253e-4951L; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = + false; + static constexpr float_round_style round_style = + round_to_nearest; + }; + + + + + + +} +# 43 "/usr/include/c++/5/random" 2 3 + + + + + + +# 1 "/usr/include/c++/5/bits/random.h" 1 3 +# 34 "/usr/include/c++/5/bits/random.h" 3 +# 1 "/usr/include/c++/5/vector" 1 3 +# 58 "/usr/include/c++/5/vector" 3 + +# 59 "/usr/include/c++/5/vector" 3 + + + + +# 1 "/usr/include/c++/5/bits/stl_uninitialized.h" 1 3 +# 59 "/usr/include/c++/5/bits/stl_uninitialized.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + struct __uninitialized_copy + { + template + static _ForwardIterator + __uninit_copy(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result) + { + _ForwardIterator __cur = __result; + try + { + for (; __first != __last; ++__first, ++__cur) + std::_Construct(std::__addressof(*__cur), *__first); + return __cur; + } + catch(...) + { + std::_Destroy(__result, __cur); + throw; + } + } + }; + + template<> + struct __uninitialized_copy + { + template + static _ForwardIterator + __uninit_copy(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result) + { return std::copy(__first, __last, __result); } + }; +# 105 "/usr/include/c++/5/bits/stl_uninitialized.h" 3 + template + inline _ForwardIterator + uninitialized_copy(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result) + { + typedef typename iterator_traits<_InputIterator>::value_type + _ValueType1; + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType2; + + + + + typedef typename iterator_traits<_InputIterator>::reference _RefType1; + typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; + const bool __assignable = is_assignable<_RefType2, _RefType1>::value; + + + return std::__uninitialized_copy<__is_trivial(_ValueType1) + && __is_trivial(_ValueType2) + && __assignable>:: + __uninit_copy(__first, __last, __result); + } + + + template + struct __uninitialized_fill + { + template + static void + __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __x) + { + _ForwardIterator __cur = __first; + try + { + for (; __cur != __last; ++__cur) + std::_Construct(std::__addressof(*__cur), __x); + } + catch(...) + { + std::_Destroy(__first, __cur); + throw; + } + } + }; + + template<> + struct __uninitialized_fill + { + template + static void + __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __x) + { std::fill(__first, __last, __x); } + }; +# 171 "/usr/include/c++/5/bits/stl_uninitialized.h" 3 + template + inline void + uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __x) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + const bool __assignable = is_copy_assignable<_ValueType>::value; + + + std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: + __uninit_fill(__first, __last, __x); + } + + + template + struct __uninitialized_fill_n + { + template + static _ForwardIterator + __uninit_fill_n(_ForwardIterator __first, _Size __n, + const _Tp& __x) + { + _ForwardIterator __cur = __first; + try + { + for (; __n > 0; --__n, ++__cur) + std::_Construct(std::__addressof(*__cur), __x); + return __cur; + } + catch(...) + { + std::_Destroy(__first, __cur); + throw; + } + } + }; + + template<> + struct __uninitialized_fill_n + { + template + static _ForwardIterator + __uninit_fill_n(_ForwardIterator __first, _Size __n, + const _Tp& __x) + { return std::fill_n(__first, __n, __x); } + }; +# 234 "/usr/include/c++/5/bits/stl_uninitialized.h" 3 + template + inline _ForwardIterator + uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + const bool __assignable = is_copy_assignable<_ValueType>::value; + + return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: + __uninit_fill_n(__first, __n, __x); + } + + + + + + + + template + _ForwardIterator + __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result, _Allocator& __alloc) + { + _ForwardIterator __cur = __result; + try + { + typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; + for (; __first != __last; ++__first, ++__cur) + __traits::construct(__alloc, std::__addressof(*__cur), *__first); + return __cur; + } + catch(...) + { + std::_Destroy(__result, __cur, __alloc); + throw; + } + } + + template + inline _ForwardIterator + __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result, allocator<_Tp>&) + { return std::uninitialized_copy(__first, __last, __result); } + + template + inline _ForwardIterator + __uninitialized_move_a(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result, _Allocator& __alloc) + { + return std::__uninitialized_copy_a(std::make_move_iterator(__first), + std::make_move_iterator(__last), + __result, __alloc); + } + + template + inline _ForwardIterator + __uninitialized_move_if_noexcept_a(_InputIterator __first, + _InputIterator __last, + _ForwardIterator __result, + _Allocator& __alloc) + { + return std::__uninitialized_copy_a + (std::__make_move_if_noexcept_iterator(__first), + std::__make_move_if_noexcept_iterator(__last), __result, __alloc); + } + + template + void + __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __x, _Allocator& __alloc) + { + _ForwardIterator __cur = __first; + try + { + typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; + for (; __cur != __last; ++__cur) + __traits::construct(__alloc, std::__addressof(*__cur), __x); + } + catch(...) + { + std::_Destroy(__first, __cur, __alloc); + throw; + } + } + + template + inline void + __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __x, allocator<_Tp2>&) + { std::uninitialized_fill(__first, __last, __x); } + + template + _ForwardIterator + __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, + const _Tp& __x, _Allocator& __alloc) + { + _ForwardIterator __cur = __first; + try + { + typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; + for (; __n > 0; --__n, ++__cur) + __traits::construct(__alloc, std::__addressof(*__cur), __x); + return __cur; + } + catch(...) + { + std::_Destroy(__first, __cur, __alloc); + throw; + } + } + + template + inline _ForwardIterator + __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, + const _Tp& __x, allocator<_Tp2>&) + { return std::uninitialized_fill_n(__first, __n, __x); } +# 370 "/usr/include/c++/5/bits/stl_uninitialized.h" 3 + template + inline _ForwardIterator + __uninitialized_copy_move(_InputIterator1 __first1, + _InputIterator1 __last1, + _InputIterator2 __first2, + _InputIterator2 __last2, + _ForwardIterator __result, + _Allocator& __alloc) + { + _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, + __result, + __alloc); + try + { + return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); + } + catch(...) + { + std::_Destroy(__result, __mid, __alloc); + throw; + } + } + + + + + + template + inline _ForwardIterator + __uninitialized_move_copy(_InputIterator1 __first1, + _InputIterator1 __last1, + _InputIterator2 __first2, + _InputIterator2 __last2, + _ForwardIterator __result, + _Allocator& __alloc) + { + _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, + __result, + __alloc); + try + { + return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); + } + catch(...) + { + std::_Destroy(__result, __mid, __alloc); + throw; + } + } + + + + + template + inline _ForwardIterator + __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, + const _Tp& __x, _InputIterator __first, + _InputIterator __last, _Allocator& __alloc) + { + std::__uninitialized_fill_a(__result, __mid, __x, __alloc); + try + { + return std::__uninitialized_move_a(__first, __last, __mid, __alloc); + } + catch(...) + { + std::_Destroy(__result, __mid, __alloc); + throw; + } + } + + + + + template + inline void + __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, + _ForwardIterator __first2, + _ForwardIterator __last2, const _Tp& __x, + _Allocator& __alloc) + { + _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, + __first2, + __alloc); + try + { + std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); + } + catch(...) + { + std::_Destroy(__first2, __mid2, __alloc); + throw; + } + } + + + + + + template + struct __uninitialized_default_1 + { + template + static void + __uninit_default(_ForwardIterator __first, _ForwardIterator __last) + { + _ForwardIterator __cur = __first; + try + { + for (; __cur != __last; ++__cur) + std::_Construct(std::__addressof(*__cur)); + } + catch(...) + { + std::_Destroy(__first, __cur); + throw; + } + } + }; + + template<> + struct __uninitialized_default_1 + { + template + static void + __uninit_default(_ForwardIterator __first, _ForwardIterator __last) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + std::fill(__first, __last, _ValueType()); + } + }; + + template + struct __uninitialized_default_n_1 + { + template + static _ForwardIterator + __uninit_default_n(_ForwardIterator __first, _Size __n) + { + _ForwardIterator __cur = __first; + try + { + for (; __n > 0; --__n, ++__cur) + std::_Construct(std::__addressof(*__cur)); + return __cur; + } + catch(...) + { + std::_Destroy(__first, __cur); + throw; + } + } + }; + + template<> + struct __uninitialized_default_n_1 + { + template + static _ForwardIterator + __uninit_default_n(_ForwardIterator __first, _Size __n) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + return std::fill_n(__first, __n, _ValueType()); + } + }; + + + + + template + inline void + __uninitialized_default(_ForwardIterator __first, + _ForwardIterator __last) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + const bool __assignable = is_copy_assignable<_ValueType>::value; + + std::__uninitialized_default_1<__is_trivial(_ValueType) + && __assignable>:: + __uninit_default(__first, __last); + } + + + + template + inline _ForwardIterator + __uninitialized_default_n(_ForwardIterator __first, _Size __n) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + const bool __assignable = is_copy_assignable<_ValueType>::value; + + return __uninitialized_default_n_1<__is_trivial(_ValueType) + && __assignable>:: + __uninit_default_n(__first, __n); + } + + + + + + template + void + __uninitialized_default_a(_ForwardIterator __first, + _ForwardIterator __last, + _Allocator& __alloc) + { + _ForwardIterator __cur = __first; + try + { + typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; + for (; __cur != __last; ++__cur) + __traits::construct(__alloc, std::__addressof(*__cur)); + } + catch(...) + { + std::_Destroy(__first, __cur, __alloc); + throw; + } + } + + template + inline void + __uninitialized_default_a(_ForwardIterator __first, + _ForwardIterator __last, + allocator<_Tp>&) + { std::__uninitialized_default(__first, __last); } + + + + + + template + _ForwardIterator + __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, + _Allocator& __alloc) + { + _ForwardIterator __cur = __first; + try + { + typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; + for (; __n > 0; --__n, ++__cur) + __traits::construct(__alloc, std::__addressof(*__cur)); + return __cur; + } + catch(...) + { + std::_Destroy(__first, __cur, __alloc); + throw; + } + } + + template + inline _ForwardIterator + __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, + allocator<_Tp>&) + { return std::__uninitialized_default_n(__first, __n); } + + + template + _ForwardIterator + __uninitialized_copy_n(_InputIterator __first, _Size __n, + _ForwardIterator __result, input_iterator_tag) + { + _ForwardIterator __cur = __result; + try + { + for (; __n > 0; --__n, ++__first, ++__cur) + std::_Construct(std::__addressof(*__cur), *__first); + return __cur; + } + catch(...) + { + std::_Destroy(__result, __cur); + throw; + } + } + + template + inline _ForwardIterator + __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, + _ForwardIterator __result, + random_access_iterator_tag) + { return std::uninitialized_copy(__first, __first + __n, __result); } +# 677 "/usr/include/c++/5/bits/stl_uninitialized.h" 3 + template + inline _ForwardIterator + uninitialized_copy_n(_InputIterator __first, _Size __n, + _ForwardIterator __result) + { return std::__uninitialized_copy_n(__first, __n, __result, + std::__iterator_category(__first)); } + + + +} +# 64 "/usr/include/c++/5/vector" 2 3 +# 1 "/usr/include/c++/5/bits/stl_vector.h" 1 3 +# 66 "/usr/include/c++/5/bits/stl_vector.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct _Vector_base + { + typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template + rebind<_Tp>::other _Tp_alloc_type; + typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer + pointer; + + struct _Vector_impl + : public _Tp_alloc_type + { + pointer _M_start; + pointer _M_finish; + pointer _M_end_of_storage; + + _Vector_impl() + : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() + { } + + _Vector_impl(_Tp_alloc_type const& __a) noexcept + : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() + { } + + + _Vector_impl(_Tp_alloc_type&& __a) noexcept + : _Tp_alloc_type(std::move(__a)), + _M_start(), _M_finish(), _M_end_of_storage() + { } + + + void _M_swap_data(_Vector_impl& __x) noexcept + { + std::swap(_M_start, __x._M_start); + std::swap(_M_finish, __x._M_finish); + std::swap(_M_end_of_storage, __x._M_end_of_storage); + } + }; + + public: + typedef _Alloc allocator_type; + + _Tp_alloc_type& + _M_get_Tp_allocator() noexcept + { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } + + const _Tp_alloc_type& + _M_get_Tp_allocator() const noexcept + { return *static_cast(&this->_M_impl); } + + allocator_type + get_allocator() const noexcept + { return allocator_type(_M_get_Tp_allocator()); } + + _Vector_base() + : _M_impl() { } + + _Vector_base(const allocator_type& __a) noexcept + : _M_impl(__a) { } + + _Vector_base(size_t __n) + : _M_impl() + { _M_create_storage(__n); } + + _Vector_base(size_t __n, const allocator_type& __a) + : _M_impl(__a) + { _M_create_storage(__n); } + + + _Vector_base(_Tp_alloc_type&& __a) noexcept + : _M_impl(std::move(__a)) { } + + _Vector_base(_Vector_base&& __x) noexcept + : _M_impl(std::move(__x._M_get_Tp_allocator())) + { this->_M_impl._M_swap_data(__x._M_impl); } + + _Vector_base(_Vector_base&& __x, const allocator_type& __a) + : _M_impl(__a) + { + if (__x.get_allocator() == __a) + this->_M_impl._M_swap_data(__x._M_impl); + else + { + size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; + _M_create_storage(__n); + } + } + + + ~_Vector_base() noexcept + { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); } + + public: + _Vector_impl _M_impl; + + pointer + _M_allocate(size_t __n) + { + typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; + return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); + } + + void + _M_deallocate(pointer __p, size_t __n) + { + typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; + if (__p) + _Tr::deallocate(_M_impl, __p, __n); + } + + private: + void + _M_create_storage(size_t __n) + { + this->_M_impl._M_start = this->_M_allocate(__n); + this->_M_impl._M_finish = this->_M_impl._M_start; + this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; + } + }; +# 213 "/usr/include/c++/5/bits/stl_vector.h" 3 + template > + class vector : protected _Vector_base<_Tp, _Alloc> + { + + typedef typename _Alloc::value_type _Alloc_value_type; + + + + typedef _Vector_base<_Tp, _Alloc> _Base; + typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; + typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; + + public: + typedef _Tp value_type; + typedef typename _Base::pointer pointer; + typedef typename _Alloc_traits::const_pointer const_pointer; + typedef typename _Alloc_traits::reference reference; + typedef typename _Alloc_traits::const_reference const_reference; + typedef __gnu_cxx::__normal_iterator iterator; + typedef __gnu_cxx::__normal_iterator + const_iterator; + typedef std::reverse_iterator const_reverse_iterator; + typedef std::reverse_iterator reverse_iterator; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Alloc allocator_type; + + protected: + using _Base::_M_allocate; + using _Base::_M_deallocate; + using _Base::_M_impl; + using _Base::_M_get_Tp_allocator; + + public: + + + + + + + vector() + + noexcept(is_nothrow_default_constructible<_Alloc>::value) + + : _Base() { } + + + + + + explicit + vector(const allocator_type& __a) noexcept + : _Base(__a) { } +# 276 "/usr/include/c++/5/bits/stl_vector.h" 3 + explicit + vector(size_type __n, const allocator_type& __a = allocator_type()) + : _Base(__n, __a) + { _M_default_initialize(__n); } +# 289 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector(size_type __n, const value_type& __value, + const allocator_type& __a = allocator_type()) + : _Base(__n, __a) + { _M_fill_initialize(__n, __value); } +# 318 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector(const vector& __x) + : _Base(__x.size(), + _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) + { this->_M_impl._M_finish = + std::__uninitialized_copy_a(__x.begin(), __x.end(), + this->_M_impl._M_start, + _M_get_Tp_allocator()); + } +# 335 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector(vector&& __x) noexcept + : _Base(std::move(__x)) { } + + + vector(const vector& __x, const allocator_type& __a) + : _Base(__x.size(), __a) + { this->_M_impl._M_finish = + std::__uninitialized_copy_a(__x.begin(), __x.end(), + this->_M_impl._M_start, + _M_get_Tp_allocator()); + } + + + vector(vector&& __rv, const allocator_type& __m) + noexcept(_Alloc_traits::_S_always_equal()) + : _Base(std::move(__rv), __m) + { + if (__rv.get_allocator() != __m) + { + this->_M_impl._M_finish = + std::__uninitialized_move_a(__rv.begin(), __rv.end(), + this->_M_impl._M_start, + _M_get_Tp_allocator()); + __rv.clear(); + } + } +# 373 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector(initializer_list __l, + const allocator_type& __a = allocator_type()) + : _Base(__a) + { + _M_range_initialize(__l.begin(), __l.end(), + random_access_iterator_tag()); + } +# 399 "/usr/include/c++/5/bits/stl_vector.h" 3 + template> + vector(_InputIterator __first, _InputIterator __last, + const allocator_type& __a = allocator_type()) + : _Base(__a) + { _M_initialize_dispatch(__first, __last, __false_type()); } +# 423 "/usr/include/c++/5/bits/stl_vector.h" 3 + ~vector() noexcept + { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); } +# 435 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector& + operator=(const vector& __x); +# 447 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector& + operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) + { + constexpr bool __move_storage = + _Alloc_traits::_S_propagate_on_move_assign() + || _Alloc_traits::_S_always_equal(); + _M_move_assign(std::move(__x), + integral_constant()); + return *this; + } +# 469 "/usr/include/c++/5/bits/stl_vector.h" 3 + vector& + operator=(initializer_list __l) + { + this->assign(__l.begin(), __l.end()); + return *this; + } +# 487 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + assign(size_type __n, const value_type& __val) + { _M_fill_assign(__n, __val); } +# 504 "/usr/include/c++/5/bits/stl_vector.h" 3 + template> + void + assign(_InputIterator __first, _InputIterator __last) + { _M_assign_dispatch(__first, __last, __false_type()); } +# 532 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + assign(initializer_list __l) + { this->assign(__l.begin(), __l.end()); } + + + + using _Base::get_allocator; + + + + + + + + iterator + begin() noexcept + { return iterator(this->_M_impl._M_start); } + + + + + + + const_iterator + begin() const noexcept + { return const_iterator(this->_M_impl._M_start); } + + + + + + + iterator + end() noexcept + { return iterator(this->_M_impl._M_finish); } + + + + + + + const_iterator + end() const noexcept + { return const_iterator(this->_M_impl._M_finish); } + + + + + + + reverse_iterator + rbegin() noexcept + { return reverse_iterator(end()); } + + + + + + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(end()); } + + + + + + + reverse_iterator + rend() noexcept + { return reverse_iterator(begin()); } + + + + + + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(begin()); } + + + + + + + + const_iterator + cbegin() const noexcept + { return const_iterator(this->_M_impl._M_start); } + + + + + + + const_iterator + cend() const noexcept + { return const_iterator(this->_M_impl._M_finish); } + + + + + + + const_reverse_iterator + crbegin() const noexcept + { return const_reverse_iterator(end()); } + + + + + + + const_reverse_iterator + crend() const noexcept + { return const_reverse_iterator(begin()); } + + + + + size_type + size() const noexcept + { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } + + + size_type + max_size() const noexcept + { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } +# 672 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + resize(size_type __new_size) + { + if (__new_size > size()) + _M_default_append(__new_size - size()); + else if (__new_size < size()) + _M_erase_at_end(this->_M_impl._M_start + __new_size); + } +# 692 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + resize(size_type __new_size, const value_type& __x) + { + if (__new_size > size()) + insert(end(), __new_size - size(), __x); + else if (__new_size < size()) + _M_erase_at_end(this->_M_impl._M_start + __new_size); + } +# 724 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + shrink_to_fit() + { _M_shrink_to_fit(); } + + + + + + + size_type + capacity() const noexcept + { return size_type(this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); } + + + + + + bool + empty() const noexcept + { return begin() == end(); } +# 763 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + reserve(size_type __n); +# 778 "/usr/include/c++/5/bits/stl_vector.h" 3 + reference + operator[](size_type __n) noexcept + { return *(this->_M_impl._M_start + __n); } +# 793 "/usr/include/c++/5/bits/stl_vector.h" 3 + const_reference + operator[](size_type __n) const noexcept + { return *(this->_M_impl._M_start + __n); } + + protected: + + void + _M_range_check(size_type __n) const + { + if (__n >= this->size()) + __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") + + , + __n, this->size()); + } + + public: +# 821 "/usr/include/c++/5/bits/stl_vector.h" 3 + reference + at(size_type __n) + { + _M_range_check(__n); + return (*this)[__n]; + } +# 839 "/usr/include/c++/5/bits/stl_vector.h" 3 + const_reference + at(size_type __n) const + { + _M_range_check(__n); + return (*this)[__n]; + } + + + + + + reference + front() noexcept + { return *begin(); } + + + + + + const_reference + front() const noexcept + { return *begin(); } + + + + + + reference + back() noexcept + { return *(end() - 1); } + + + + + + const_reference + back() const noexcept + { return *(end() - 1); } +# 886 "/usr/include/c++/5/bits/stl_vector.h" 3 + _Tp* + + + + data() noexcept + { return _M_data_ptr(this->_M_impl._M_start); } + + + const _Tp* + + + + data() const noexcept + { return _M_data_ptr(this->_M_impl._M_start); } +# 912 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + push_back(const value_type& __x) + { + if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) + { + _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, + __x); + ++this->_M_impl._M_finish; + } + else + + _M_emplace_back_aux(__x); + + + + } + + + void + push_back(value_type&& __x) + { emplace_back(std::move(__x)); } + + template + void + emplace_back(_Args&&... __args); +# 948 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + pop_back() noexcept + { + --this->_M_impl._M_finish; + _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); + } +# 968 "/usr/include/c++/5/bits/stl_vector.h" 3 + template + iterator + emplace(const_iterator __position, _Args&&... __args); +# 983 "/usr/include/c++/5/bits/stl_vector.h" 3 + iterator + insert(const_iterator __position, const value_type& __x); +# 1013 "/usr/include/c++/5/bits/stl_vector.h" 3 + iterator + insert(const_iterator __position, value_type&& __x) + { return emplace(__position, std::move(__x)); } +# 1030 "/usr/include/c++/5/bits/stl_vector.h" 3 + iterator + insert(const_iterator __position, initializer_list __l) + { return this->insert(__position, __l.begin(), __l.end()); } +# 1050 "/usr/include/c++/5/bits/stl_vector.h" 3 + iterator + insert(const_iterator __position, size_type __n, const value_type& __x) + { + difference_type __offset = __position - cbegin(); + _M_fill_insert(begin() + __offset, __n, __x); + return begin() + __offset; + } +# 1092 "/usr/include/c++/5/bits/stl_vector.h" 3 + template> + iterator + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last) + { + difference_type __offset = __position - cbegin(); + _M_insert_dispatch(begin() + __offset, + __first, __last, __false_type()); + return begin() + __offset; + } +# 1144 "/usr/include/c++/5/bits/stl_vector.h" 3 + iterator + + erase(const_iterator __position) + { return _M_erase(begin() + (__position - cbegin())); } +# 1171 "/usr/include/c++/5/bits/stl_vector.h" 3 + iterator + + erase(const_iterator __first, const_iterator __last) + { + const auto __beg = begin(); + const auto __cbeg = cbegin(); + return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); + } +# 1193 "/usr/include/c++/5/bits/stl_vector.h" 3 + void + swap(vector& __x) + + noexcept(_Alloc_traits::_S_nothrow_swap()) + + { + this->_M_impl._M_swap_data(__x._M_impl); + _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), + __x._M_get_Tp_allocator()); + } + + + + + + + + void + clear() noexcept + { _M_erase_at_end(this->_M_impl._M_start); } + + protected: + + + + + template + pointer + _M_allocate_and_copy(size_type __n, + _ForwardIterator __first, _ForwardIterator __last) + { + pointer __result = this->_M_allocate(__n); + try + { + std::__uninitialized_copy_a(__first, __last, __result, + _M_get_Tp_allocator()); + return __result; + } + catch(...) + { + _M_deallocate(__result, __n); + throw; + } + } +# 1245 "/usr/include/c++/5/bits/stl_vector.h" 3 + template + void + _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) + { + this->_M_impl._M_start = _M_allocate(static_cast(__n)); + this->_M_impl._M_end_of_storage = + this->_M_impl._M_start + static_cast(__n); + _M_fill_initialize(static_cast(__n), __value); + } + + + template + void + _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, + __false_type) + { + typedef typename std::iterator_traits<_InputIterator>:: + iterator_category _IterCategory; + _M_range_initialize(__first, __last, _IterCategory()); + } + + + template + void + _M_range_initialize(_InputIterator __first, + _InputIterator __last, std::input_iterator_tag) + { + for (; __first != __last; ++__first) + + emplace_back(*__first); + + + + } + + + template + void + _M_range_initialize(_ForwardIterator __first, + _ForwardIterator __last, std::forward_iterator_tag) + { + const size_type __n = std::distance(__first, __last); + this->_M_impl._M_start = this->_M_allocate(__n); + this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; + this->_M_impl._M_finish = + std::__uninitialized_copy_a(__first, __last, + this->_M_impl._M_start, + _M_get_Tp_allocator()); + } + + + + void + _M_fill_initialize(size_type __n, const value_type& __value) + { + this->_M_impl._M_finish = + std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, + _M_get_Tp_allocator()); + } + + + + void + _M_default_initialize(size_type __n) + { + this->_M_impl._M_finish = + std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, + _M_get_Tp_allocator()); + } +# 1323 "/usr/include/c++/5/bits/stl_vector.h" 3 + template + void + _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) + { _M_fill_assign(__n, __val); } + + + template + void + _M_assign_dispatch(_InputIterator __first, _InputIterator __last, + __false_type) + { + typedef typename std::iterator_traits<_InputIterator>:: + iterator_category _IterCategory; + _M_assign_aux(__first, __last, _IterCategory()); + } + + + template + void + _M_assign_aux(_InputIterator __first, _InputIterator __last, + std::input_iterator_tag); + + + template + void + _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, + std::forward_iterator_tag); + + + + void + _M_fill_assign(size_type __n, const value_type& __val); +# 1363 "/usr/include/c++/5/bits/stl_vector.h" 3 + template + void + _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, + __true_type) + { _M_fill_insert(__pos, __n, __val); } + + + template + void + _M_insert_dispatch(iterator __pos, _InputIterator __first, + _InputIterator __last, __false_type) + { + typedef typename std::iterator_traits<_InputIterator>:: + iterator_category _IterCategory; + _M_range_insert(__pos, __first, __last, _IterCategory()); + } + + + template + void + _M_range_insert(iterator __pos, _InputIterator __first, + _InputIterator __last, std::input_iterator_tag); + + + template + void + _M_range_insert(iterator __pos, _ForwardIterator __first, + _ForwardIterator __last, std::forward_iterator_tag); + + + + void + _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); + + + + void + _M_default_append(size_type __n); + + bool + _M_shrink_to_fit(); + + + + + + + + template + void + _M_insert_aux(iterator __position, _Args&&... __args); + + template + void + _M_emplace_back_aux(_Args&&... __args); + + + + size_type + _M_check_len(size_type __n, const char* __s) const + { + if (max_size() - size() < __n) + __throw_length_error((__s)); + + const size_type __len = size() + std::max(size(), __n); + return (__len < size() || __len > max_size()) ? max_size() : __len; + } + + + + + + void + _M_erase_at_end(pointer __pos) noexcept + { + std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator()); + this->_M_impl._M_finish = __pos; + } + + iterator + _M_erase(iterator __position); + + iterator + _M_erase(iterator __first, iterator __last); + + + private: + + + + void + _M_move_assign(vector&& __x, std::true_type) noexcept + { + vector __tmp(get_allocator()); + this->_M_impl._M_swap_data(__tmp._M_impl); + this->_M_impl._M_swap_data(__x._M_impl); + std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); + } + + + + void + _M_move_assign(vector&& __x, std::false_type) + { + if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) + _M_move_assign(std::move(__x), std::true_type()); + else + { + + + this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), + std::__make_move_if_noexcept_iterator(__x.end())); + __x.clear(); + } + } + + + + template + _Up* + _M_data_ptr(_Up* __ptr) const + { return __ptr; } + + template + typename std::pointer_traits<_Ptr>::element_type* + _M_data_ptr(_Ptr __ptr) const + { return empty() ? nullptr : std::__addressof(*__ptr); } + + + + + + + }; +# 1509 "/usr/include/c++/5/bits/stl_vector.h" 3 + template + inline bool + operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) + { return (__x.size() == __y.size() + && std::equal(__x.begin(), __x.end(), __y.begin())); } +# 1526 "/usr/include/c++/5/bits/stl_vector.h" 3 + template + inline bool + operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) + { return std::lexicographical_compare(__x.begin(), __x.end(), + __y.begin(), __y.end()); } + + + template + inline bool + operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) + { return !(__x == __y); } + + + template + inline bool + operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) + { return __y < __x; } + + + template + inline bool + operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) + { return !(__y < __x); } + + + template + inline bool + operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) + { return !(__x < __y); } + + + template + inline void + swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) + { __x.swap(__y); } + + +} +# 65 "/usr/include/c++/5/vector" 2 3 +# 1 "/usr/include/c++/5/bits/stl_bvector.h" 1 3 +# 63 "/usr/include/c++/5/bits/stl_bvector.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + typedef unsigned long _Bit_type; + enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; + + struct _Bit_reference + { + _Bit_type * _M_p; + _Bit_type _M_mask; + + _Bit_reference(_Bit_type * __x, _Bit_type __y) + : _M_p(__x), _M_mask(__y) { } + + _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } + + operator bool() const noexcept + { return !!(*_M_p & _M_mask); } + + _Bit_reference& + operator=(bool __x) noexcept + { + if (__x) + *_M_p |= _M_mask; + else + *_M_p &= ~_M_mask; + return *this; + } + + _Bit_reference& + operator=(const _Bit_reference& __x) noexcept + { return *this = bool(__x); } + + bool + operator==(const _Bit_reference& __x) const + { return bool(*this) == bool(__x); } + + bool + operator<(const _Bit_reference& __x) const + { return !bool(*this) && bool(__x); } + + void + flip() noexcept + { *_M_p ^= _M_mask; } + }; + + + inline void + swap(_Bit_reference __x, _Bit_reference __y) noexcept + { + bool __tmp = __x; + __x = __y; + __y = __tmp; + } + + inline void + swap(_Bit_reference __x, bool& __y) noexcept + { + bool __tmp = __x; + __x = __y; + __y = __tmp; + } + + inline void + swap(bool& __x, _Bit_reference __y) noexcept + { + bool __tmp = __x; + __x = __y; + __y = __tmp; + } + + + struct _Bit_iterator_base + : public std::iterator + { + _Bit_type * _M_p; + unsigned int _M_offset; + + _Bit_iterator_base(_Bit_type * __x, unsigned int __y) + : _M_p(__x), _M_offset(__y) { } + + void + _M_bump_up() + { + if (_M_offset++ == int(_S_word_bit) - 1) + { + _M_offset = 0; + ++_M_p; + } + } + + void + _M_bump_down() + { + if (_M_offset-- == 0) + { + _M_offset = int(_S_word_bit) - 1; + --_M_p; + } + } + + void + _M_incr(ptrdiff_t __i) + { + difference_type __n = __i + _M_offset; + _M_p += __n / int(_S_word_bit); + __n = __n % int(_S_word_bit); + if (__n < 0) + { + __n += int(_S_word_bit); + --_M_p; + } + _M_offset = static_cast(__n); + } + + bool + operator==(const _Bit_iterator_base& __i) const + { return _M_p == __i._M_p && _M_offset == __i._M_offset; } + + bool + operator<(const _Bit_iterator_base& __i) const + { + return _M_p < __i._M_p + || (_M_p == __i._M_p && _M_offset < __i._M_offset); + } + + bool + operator!=(const _Bit_iterator_base& __i) const + { return !(*this == __i); } + + bool + operator>(const _Bit_iterator_base& __i) const + { return __i < *this; } + + bool + operator<=(const _Bit_iterator_base& __i) const + { return !(__i < *this); } + + bool + operator>=(const _Bit_iterator_base& __i) const + { return !(*this < __i); } + }; + + inline ptrdiff_t + operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) + { + return (int(_S_word_bit) * (__x._M_p - __y._M_p) + + __x._M_offset - __y._M_offset); + } + + struct _Bit_iterator : public _Bit_iterator_base + { + typedef _Bit_reference reference; + typedef _Bit_reference* pointer; + typedef _Bit_iterator iterator; + + _Bit_iterator() : _Bit_iterator_base(0, 0) { } + + _Bit_iterator(_Bit_type * __x, unsigned int __y) + : _Bit_iterator_base(__x, __y) { } + + iterator + _M_const_cast() const + { return *this; } + + reference + operator*() const + { return reference(_M_p, 1UL << _M_offset); } + + iterator& + operator++() + { + _M_bump_up(); + return *this; + } + + iterator + operator++(int) + { + iterator __tmp = *this; + _M_bump_up(); + return __tmp; + } + + iterator& + operator--() + { + _M_bump_down(); + return *this; + } + + iterator + operator--(int) + { + iterator __tmp = *this; + _M_bump_down(); + return __tmp; + } + + iterator& + operator+=(difference_type __i) + { + _M_incr(__i); + return *this; + } + + iterator& + operator-=(difference_type __i) + { + *this += -__i; + return *this; + } + + iterator + operator+(difference_type __i) const + { + iterator __tmp = *this; + return __tmp += __i; + } + + iterator + operator-(difference_type __i) const + { + iterator __tmp = *this; + return __tmp -= __i; + } + + reference + operator[](difference_type __i) const + { return *(*this + __i); } + }; + + inline _Bit_iterator + operator+(ptrdiff_t __n, const _Bit_iterator& __x) + { return __x + __n; } + + struct _Bit_const_iterator : public _Bit_iterator_base + { + typedef bool reference; + typedef bool const_reference; + typedef const bool* pointer; + typedef _Bit_const_iterator const_iterator; + + _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } + + _Bit_const_iterator(_Bit_type * __x, unsigned int __y) + : _Bit_iterator_base(__x, __y) { } + + _Bit_const_iterator(const _Bit_iterator& __x) + : _Bit_iterator_base(__x._M_p, __x._M_offset) { } + + _Bit_iterator + _M_const_cast() const + { return _Bit_iterator(_M_p, _M_offset); } + + const_reference + operator*() const + { return _Bit_reference(_M_p, 1UL << _M_offset); } + + const_iterator& + operator++() + { + _M_bump_up(); + return *this; + } + + const_iterator + operator++(int) + { + const_iterator __tmp = *this; + _M_bump_up(); + return __tmp; + } + + const_iterator& + operator--() + { + _M_bump_down(); + return *this; + } + + const_iterator + operator--(int) + { + const_iterator __tmp = *this; + _M_bump_down(); + return __tmp; + } + + const_iterator& + operator+=(difference_type __i) + { + _M_incr(__i); + return *this; + } + + const_iterator& + operator-=(difference_type __i) + { + *this += -__i; + return *this; + } + + const_iterator + operator+(difference_type __i) const + { + const_iterator __tmp = *this; + return __tmp += __i; + } + + const_iterator + operator-(difference_type __i) const + { + const_iterator __tmp = *this; + return __tmp -= __i; + } + + const_reference + operator[](difference_type __i) const + { return *(*this + __i); } + }; + + inline _Bit_const_iterator + operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) + { return __x + __n; } + + inline void + __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x) + { + for (; __first != __last; ++__first) + *__first = __x; + } + + inline void + fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) + { + if (__first._M_p != __last._M_p) + { + std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0); + __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x); + __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x); + } + else + __fill_bvector(__first, __last, __x); + } + + template + struct _Bvector_base + { + typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template + rebind<_Bit_type>::other _Bit_alloc_type; + typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> + _Bit_alloc_traits; + typedef typename _Bit_alloc_traits::pointer _Bit_pointer; + + struct _Bvector_impl + : public _Bit_alloc_type + { + _Bit_iterator _M_start; + _Bit_iterator _M_finish; + _Bit_pointer _M_end_of_storage; + + _Bvector_impl() + : _Bit_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() + { } + + _Bvector_impl(const _Bit_alloc_type& __a) + : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() + { } + + + _Bvector_impl(_Bit_alloc_type&& __a) + : _Bit_alloc_type(std::move(__a)), _M_start(), _M_finish(), + _M_end_of_storage() + { } + + + _Bit_type* + _M_end_addr() const noexcept + { + if (_M_end_of_storage) + return std::__addressof(_M_end_of_storage[-1]) + 1; + return 0; + } + }; + + public: + typedef _Alloc allocator_type; + + _Bit_alloc_type& + _M_get_Bit_allocator() noexcept + { return *static_cast<_Bit_alloc_type*>(&this->_M_impl); } + + const _Bit_alloc_type& + _M_get_Bit_allocator() const noexcept + { return *static_cast(&this->_M_impl); } + + allocator_type + get_allocator() const noexcept + { return allocator_type(_M_get_Bit_allocator()); } + + _Bvector_base() + : _M_impl() { } + + _Bvector_base(const allocator_type& __a) + : _M_impl(__a) { } + + + _Bvector_base(_Bvector_base&& __x) noexcept + : _M_impl(std::move(__x._M_get_Bit_allocator())) + { + this->_M_impl._M_start = __x._M_impl._M_start; + this->_M_impl._M_finish = __x._M_impl._M_finish; + this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage; + __x._M_impl._M_start = _Bit_iterator(); + __x._M_impl._M_finish = _Bit_iterator(); + __x._M_impl._M_end_of_storage = nullptr; + } + + + ~_Bvector_base() + { this->_M_deallocate(); } + + protected: + _Bvector_impl _M_impl; + + _Bit_pointer + _M_allocate(size_t __n) + { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } + + void + _M_deallocate() + { + if (_M_impl._M_start._M_p) + { + const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; + _Bit_alloc_traits::deallocate(_M_impl, + _M_impl._M_end_of_storage - __n, + __n); + } + } + + static size_t + _S_nword(size_t __n) + { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } + }; + + +} + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 540 "/usr/include/c++/5/bits/stl_bvector.h" 3 +template + class vector : protected _Bvector_base<_Alloc> + { + typedef _Bvector_base<_Alloc> _Base; + typedef typename _Base::_Bit_pointer _Bit_pointer; + typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; + + + template friend struct hash; + + + public: + typedef bool value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Bit_reference reference; + typedef bool const_reference; + typedef _Bit_reference* pointer; + typedef const bool* const_pointer; + typedef _Bit_iterator iterator; + typedef _Bit_const_iterator const_iterator; + typedef std::reverse_iterator const_reverse_iterator; + typedef std::reverse_iterator reverse_iterator; + typedef _Alloc allocator_type; + + allocator_type get_allocator() const + { return _Base::get_allocator(); } + + protected: + using _Base::_M_allocate; + using _Base::_M_deallocate; + using _Base::_S_nword; + using _Base::_M_get_Bit_allocator; + + public: + vector() + + noexcept(is_nothrow_default_constructible::value) + + : _Base() { } + + explicit + vector(const allocator_type& __a) + : _Base(__a) { } + + + explicit + vector(size_type __n, const allocator_type& __a = allocator_type()) + : vector(__n, false, __a) + { } + + vector(size_type __n, const bool& __value, + const allocator_type& __a = allocator_type()) + : _Base(__a) + { + _M_initialize(__n); + std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_addr(), + __value ? ~0 : 0); + } +# 611 "/usr/include/c++/5/bits/stl_bvector.h" 3 + vector(const vector& __x) + : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) + { + _M_initialize(__x.size()); + _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); + } + + + vector(vector&& __x) noexcept + : _Base(std::move(__x)) { } + + vector(vector&& __x, const allocator_type& __a) + noexcept(_Bit_alloc_traits::_S_always_equal()) + : _Base(__a) + { + if (__x.get_allocator() == __a) + { + this->_M_impl._M_start = __x._M_impl._M_start; + this->_M_impl._M_finish = __x._M_impl._M_finish; + this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage; + __x._M_impl._M_start = _Bit_iterator(); + __x._M_impl._M_finish = _Bit_iterator(); + __x._M_impl._M_end_of_storage = nullptr; + } + else + { + _M_initialize(__x.size()); + _M_copy_aligned(__x.begin(), __x.end(), begin()); + __x.clear(); + } + } + + vector(const vector& __x, const allocator_type& __a) + : _Base(__a) + { + _M_initialize(__x.size()); + _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); + } + + vector(initializer_list __l, + const allocator_type& __a = allocator_type()) + : _Base(__a) + { + _M_initialize_range(__l.begin(), __l.end(), + random_access_iterator_tag()); + } + + + + template> + vector(_InputIterator __first, _InputIterator __last, + const allocator_type& __a = allocator_type()) + : _Base(__a) + { _M_initialize_dispatch(__first, __last, __false_type()); } +# 677 "/usr/include/c++/5/bits/stl_bvector.h" 3 + ~vector() noexcept { } + + vector& + operator=(const vector& __x) + { + if (&__x == this) + return *this; + + if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) + { + if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) + { + this->_M_deallocate(); + std::__alloc_on_copy(_M_get_Bit_allocator(), + __x._M_get_Bit_allocator()); + _M_initialize(__x.size()); + } + else + std::__alloc_on_copy(_M_get_Bit_allocator(), + __x._M_get_Bit_allocator()); + } + + if (__x.size() > capacity()) + { + this->_M_deallocate(); + _M_initialize(__x.size()); + } + this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), + begin()); + return *this; + } + + + vector& + operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) + { + if (_Bit_alloc_traits::_S_propagate_on_move_assign() + || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) + { + this->_M_deallocate(); + this->_M_impl._M_start = __x._M_impl._M_start; + this->_M_impl._M_finish = __x._M_impl._M_finish; + this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage; + __x._M_impl._M_start = _Bit_iterator(); + __x._M_impl._M_finish = _Bit_iterator(); + __x._M_impl._M_end_of_storage = nullptr; + std::__alloc_on_move(_M_get_Bit_allocator(), + __x._M_get_Bit_allocator()); + } + else + { + if (__x.size() > capacity()) + { + this->_M_deallocate(); + _M_initialize(__x.size()); + } + this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), + begin()); + __x.clear(); + } + return *this; + } + + vector& + operator=(initializer_list __l) + { + this->assign (__l.begin(), __l.end()); + return *this; + } + + + + + + + void + assign(size_type __n, const bool& __x) + { _M_fill_assign(__n, __x); } + + + template> + void + assign(_InputIterator __first, _InputIterator __last) + { _M_assign_dispatch(__first, __last, __false_type()); } +# 773 "/usr/include/c++/5/bits/stl_bvector.h" 3 + void + assign(initializer_list __l) + { this->assign(__l.begin(), __l.end()); } + + + iterator + begin() noexcept + { return this->_M_impl._M_start; } + + const_iterator + begin() const noexcept + { return this->_M_impl._M_start; } + + iterator + end() noexcept + { return this->_M_impl._M_finish; } + + const_iterator + end() const noexcept + { return this->_M_impl._M_finish; } + + reverse_iterator + rbegin() noexcept + { return reverse_iterator(end()); } + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(end()); } + + reverse_iterator + rend() noexcept + { return reverse_iterator(begin()); } + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(begin()); } + + + const_iterator + cbegin() const noexcept + { return this->_M_impl._M_start; } + + const_iterator + cend() const noexcept + { return this->_M_impl._M_finish; } + + const_reverse_iterator + crbegin() const noexcept + { return const_reverse_iterator(end()); } + + const_reverse_iterator + crend() const noexcept + { return const_reverse_iterator(begin()); } + + + size_type + size() const noexcept + { return size_type(end() - begin()); } + + size_type + max_size() const noexcept + { + const size_type __isize = + __gnu_cxx::__numeric_traits::__max + - int(_S_word_bit) + 1; + const size_type __asize + = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); + return (__asize <= __isize / int(_S_word_bit) + ? __asize * int(_S_word_bit) : __isize); + } + + size_type + capacity() const noexcept + { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) + - begin()); } + + bool + empty() const noexcept + { return begin() == end(); } + + reference + operator[](size_type __n) + { + return *iterator(this->_M_impl._M_start._M_p + + __n / int(_S_word_bit), __n % int(_S_word_bit)); + } + + const_reference + operator[](size_type __n) const + { + return *const_iterator(this->_M_impl._M_start._M_p + + __n / int(_S_word_bit), __n % int(_S_word_bit)); + } + + protected: + void + _M_range_check(size_type __n) const + { + if (__n >= this->size()) + __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") + + , + __n, this->size()); + } + + public: + reference + at(size_type __n) + { _M_range_check(__n); return (*this)[__n]; } + + const_reference + at(size_type __n) const + { _M_range_check(__n); return (*this)[__n]; } + + void + reserve(size_type __n) + { + if (__n > max_size()) + __throw_length_error(("vector::reserve")); + if (capacity() < __n) + _M_reallocate(__n); + } + + reference + front() + { return *begin(); } + + const_reference + front() const + { return *begin(); } + + reference + back() + { return *(end() - 1); } + + const_reference + back() const + { return *(end() - 1); } + + + + + + + void + data() noexcept { } + + void + push_back(bool __x) + { + if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) + *this->_M_impl._M_finish++ = __x; + else + _M_insert_aux(end(), __x); + } + + void + swap(vector& __x) + + noexcept(_Bit_alloc_traits::_S_nothrow_swap()) + + { + std::swap(this->_M_impl._M_start, __x._M_impl._M_start); + std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); + std::swap(this->_M_impl._M_end_of_storage, + __x._M_impl._M_end_of_storage); + _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), + __x._M_get_Bit_allocator()); + } + + + static void + swap(reference __x, reference __y) noexcept + { + bool __tmp = __x; + __x = __y; + __y = __tmp; + } + + iterator + + insert(const_iterator __position, const bool& __x = bool()) + + + + { + const difference_type __n = __position - begin(); + if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() + && __position == end()) + *this->_M_impl._M_finish++ = __x; + else + _M_insert_aux(__position._M_const_cast(), __x); + return begin() + __n; + } + + + template> + iterator + insert(const_iterator __position, + _InputIterator __first, _InputIterator __last) + { + difference_type __offset = __position - cbegin(); + _M_insert_dispatch(__position._M_const_cast(), + __first, __last, __false_type()); + return begin() + __offset; + } +# 992 "/usr/include/c++/5/bits/stl_bvector.h" 3 + iterator + insert(const_iterator __position, size_type __n, const bool& __x) + { + difference_type __offset = __position - cbegin(); + _M_fill_insert(__position._M_const_cast(), __n, __x); + return begin() + __offset; + } + + + + + + + + iterator + insert(const_iterator __p, initializer_list __l) + { return this->insert(__p, __l.begin(), __l.end()); } + + + void + pop_back() + { --this->_M_impl._M_finish; } + + iterator + + erase(const_iterator __position) + + + + { return _M_erase(__position._M_const_cast()); } + + iterator + + erase(const_iterator __first, const_iterator __last) + + + + { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } + + void + resize(size_type __new_size, bool __x = bool()) + { + if (__new_size < size()) + _M_erase_at_end(begin() + difference_type(__new_size)); + else + insert(end(), __new_size - size(), __x); + } + + + void + shrink_to_fit() + { _M_shrink_to_fit(); } + + + void + flip() noexcept + { + _Bit_type * const __end = this->_M_impl._M_end_addr(); + for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) + *__p = ~*__p; + } + + void + clear() noexcept + { _M_erase_at_end(begin()); } + + + template + void + emplace_back(_Args&&... __args) + { push_back(bool(__args...)); } + + template + iterator + emplace(const_iterator __pos, _Args&&... __args) + { return insert(__pos, bool(__args...)); } + + + protected: + + iterator + _M_copy_aligned(const_iterator __first, const_iterator __last, + iterator __result) + { + _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); + return std::copy(const_iterator(__last._M_p, 0), __last, + iterator(__q, 0)); + } + + void + _M_initialize(size_type __n) + { + _Bit_pointer __q = this->_M_allocate(__n); + this->_M_impl._M_end_of_storage = __q + _S_nword(__n); + this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); + this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); + } + + void + _M_reallocate(size_type __n); + + + bool + _M_shrink_to_fit(); + + + + + + + template + void + _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) + { + _M_initialize(static_cast(__n)); + std::fill(this->_M_impl._M_start._M_p, + this->_M_impl._M_end_addr(), __x ? ~0 : 0); + } + + template + void + _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, + __false_type) + { _M_initialize_range(__first, __last, + std::__iterator_category(__first)); } + + template + void + _M_initialize_range(_InputIterator __first, _InputIterator __last, + std::input_iterator_tag) + { + for (; __first != __last; ++__first) + push_back(*__first); + } + + template + void + _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, + std::forward_iterator_tag) + { + const size_type __n = std::distance(__first, __last); + _M_initialize(__n); + std::copy(__first, __last, this->_M_impl._M_start); + } + + + + template + void + _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) + { _M_fill_assign(__n, __val); } + + template + void + _M_assign_dispatch(_InputIterator __first, _InputIterator __last, + __false_type) + { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } + + void + _M_fill_assign(size_t __n, bool __x) + { + if (__n > size()) + { + std::fill(this->_M_impl._M_start._M_p, + this->_M_impl._M_end_addr(), __x ? ~0 : 0); + insert(end(), __n - size(), __x); + } + else + { + _M_erase_at_end(begin() + __n); + std::fill(this->_M_impl._M_start._M_p, + this->_M_impl._M_end_addr(), __x ? ~0 : 0); + } + } + + template + void + _M_assign_aux(_InputIterator __first, _InputIterator __last, + std::input_iterator_tag) + { + iterator __cur = begin(); + for (; __first != __last && __cur != end(); ++__cur, ++__first) + *__cur = *__first; + if (__first == __last) + _M_erase_at_end(__cur); + else + insert(end(), __first, __last); + } + + template + void + _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, + std::forward_iterator_tag) + { + const size_type __len = std::distance(__first, __last); + if (__len < size()) + _M_erase_at_end(std::copy(__first, __last, begin())); + else + { + _ForwardIterator __mid = __first; + std::advance(__mid, size()); + std::copy(__first, __mid, begin()); + insert(end(), __mid, __last); + } + } + + + + + + template + void + _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, + __true_type) + { _M_fill_insert(__pos, __n, __x); } + + template + void + _M_insert_dispatch(iterator __pos, + _InputIterator __first, _InputIterator __last, + __false_type) + { _M_insert_range(__pos, __first, __last, + std::__iterator_category(__first)); } + + void + _M_fill_insert(iterator __position, size_type __n, bool __x); + + template + void + _M_insert_range(iterator __pos, _InputIterator __first, + _InputIterator __last, std::input_iterator_tag) + { + for (; __first != __last; ++__first) + { + __pos = insert(__pos, *__first); + ++__pos; + } + } + + template + void + _M_insert_range(iterator __position, _ForwardIterator __first, + _ForwardIterator __last, std::forward_iterator_tag); + + void + _M_insert_aux(iterator __position, bool __x); + + size_type + _M_check_len(size_type __n, const char* __s) const + { + if (max_size() - size() < __n) + __throw_length_error((__s)); + + const size_type __len = size() + std::max(size(), __n); + return (__len < size() || __len > max_size()) ? max_size() : __len; + } + + void + _M_erase_at_end(iterator __pos) + { this->_M_impl._M_finish = __pos; } + + iterator + _M_erase(iterator __pos); + + iterator + _M_erase(iterator __first, iterator __last); + }; + + +} + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + struct hash> + : public __hash_base> + { + size_t + operator()(const std::vector&) const noexcept; + }; + + +} +# 66 "/usr/include/c++/5/vector" 2 3 + + + +# 1 "/usr/include/c++/5/bits/vector.tcc" 1 3 +# 59 "/usr/include/c++/5/bits/vector.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + void + vector<_Tp, _Alloc>:: + reserve(size_type __n) + { + if (__n > this->max_size()) + __throw_length_error(("vector::reserve")); + if (this->capacity() < __n) + { + const size_type __old_size = size(); + pointer __tmp = _M_allocate_and_copy(__n, + std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), + std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __tmp; + this->_M_impl._M_finish = __tmp + __old_size; + this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; + } + } + + + template + template + void + vector<_Tp, _Alloc>:: + emplace_back(_Args&&... __args) + { + if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) + { + _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, + std::forward<_Args>(__args)...); + ++this->_M_impl._M_finish; + } + else + _M_emplace_back_aux(std::forward<_Args>(__args)...); + } + + + template + typename vector<_Tp, _Alloc>::iterator + vector<_Tp, _Alloc>:: + + insert(const_iterator __position, const value_type& __x) + + + + { + const size_type __n = __position - begin(); + if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage + && __position == end()) + { + _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, __x); + ++this->_M_impl._M_finish; + } + else + { + + const auto __pos = begin() + (__position - cbegin()); + if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) + { + _Tp __x_copy = __x; + _M_insert_aux(__pos, std::move(__x_copy)); + } + else + _M_insert_aux(__pos, __x); + + + + } + return iterator(this->_M_impl._M_start + __n); + } + + template + typename vector<_Tp, _Alloc>::iterator + vector<_Tp, _Alloc>:: + _M_erase(iterator __position) + { + if (__position + 1 != end()) + std::move(__position + 1, end(), __position); + --this->_M_impl._M_finish; + _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); + return __position; + } + + template + typename vector<_Tp, _Alloc>::iterator + vector<_Tp, _Alloc>:: + _M_erase(iterator __first, iterator __last) + { + if (__first != __last) + { + if (__last != end()) + std::move(__last, end(), __first); + _M_erase_at_end(__first.base() + (end() - __last)); + } + return __first; + } + + template + vector<_Tp, _Alloc>& + vector<_Tp, _Alloc>:: + operator=(const vector<_Tp, _Alloc>& __x) + { + if (&__x != this) + { + + if (_Alloc_traits::_S_propagate_on_copy_assign()) + { + if (!_Alloc_traits::_S_always_equal() + && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) + { + + this->clear(); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = nullptr; + this->_M_impl._M_finish = nullptr; + this->_M_impl._M_end_of_storage = nullptr; + } + std::__alloc_on_copy(_M_get_Tp_allocator(), + __x._M_get_Tp_allocator()); + } + + const size_type __xlen = __x.size(); + if (__xlen > capacity()) + { + pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), + __x.end()); + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __tmp; + this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; + } + else if (size() >= __xlen) + { + std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), + end(), _M_get_Tp_allocator()); + } + else + { + std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), + this->_M_impl._M_start); + std::__uninitialized_copy_a(__x._M_impl._M_start + size(), + __x._M_impl._M_finish, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + } + this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; + } + return *this; + } + + template + void + vector<_Tp, _Alloc>:: + _M_fill_assign(size_t __n, const value_type& __val) + { + if (__n > capacity()) + { + vector __tmp(__n, __val, _M_get_Tp_allocator()); + __tmp._M_impl._M_swap_data(this->_M_impl); + } + else if (__n > size()) + { + std::fill(begin(), end(), __val); + this->_M_impl._M_finish = + std::__uninitialized_fill_n_a(this->_M_impl._M_finish, + __n - size(), __val, + _M_get_Tp_allocator()); + } + else + _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); + } + + template + template + void + vector<_Tp, _Alloc>:: + _M_assign_aux(_InputIterator __first, _InputIterator __last, + std::input_iterator_tag) + { + pointer __cur(this->_M_impl._M_start); + for (; __first != __last && __cur != this->_M_impl._M_finish; + ++__cur, ++__first) + *__cur = *__first; + if (__first == __last) + _M_erase_at_end(__cur); + else + insert(end(), __first, __last); + } + + template + template + void + vector<_Tp, _Alloc>:: + _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, + std::forward_iterator_tag) + { + const size_type __len = std::distance(__first, __last); + + if (__len > capacity()) + { + pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __tmp; + this->_M_impl._M_finish = this->_M_impl._M_start + __len; + this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; + } + else if (size() >= __len) + _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); + else + { + _ForwardIterator __mid = __first; + std::advance(__mid, size()); + std::copy(__first, __mid, this->_M_impl._M_start); + this->_M_impl._M_finish = + std::__uninitialized_copy_a(__mid, __last, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + } + } + + + template + template + typename vector<_Tp, _Alloc>::iterator + vector<_Tp, _Alloc>:: + emplace(const_iterator __position, _Args&&... __args) + { + const size_type __n = __position - begin(); + if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage + && __position == end()) + { + _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, + std::forward<_Args>(__args)...); + ++this->_M_impl._M_finish; + } + else + _M_insert_aux(begin() + (__position - cbegin()), + std::forward<_Args>(__args)...); + return iterator(this->_M_impl._M_start + __n); + } + + template + template + void + vector<_Tp, _Alloc>:: + _M_insert_aux(iterator __position, _Args&&... __args) + + + + + + + { + if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) + { + _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, + std::move(*(this->_M_impl._M_finish - 1)) + ); + ++this->_M_impl._M_finish; + + + + std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) + + ; + + + + *__position = _Tp(std::forward<_Args>(__args)...); + + } + else + { + const size_type __len = + _M_check_len(size_type(1), "vector::_M_insert_aux"); + const size_type __elems_before = __position - begin(); + pointer __new_start(this->_M_allocate(__len)); + pointer __new_finish(__new_start); + try + { + + + + + _Alloc_traits::construct(this->_M_impl, + __new_start + __elems_before, + + std::forward<_Args>(__args)...); + + + + __new_finish = pointer(); + + __new_finish + = std::__uninitialized_move_if_noexcept_a + (this->_M_impl._M_start, __position.base(), + __new_start, _M_get_Tp_allocator()); + + ++__new_finish; + + __new_finish + = std::__uninitialized_move_if_noexcept_a + (__position.base(), this->_M_impl._M_finish, + __new_finish, _M_get_Tp_allocator()); + } + catch(...) + { + if (!__new_finish) + _Alloc_traits::destroy(this->_M_impl, + __new_start + __elems_before); + else + std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); + _M_deallocate(__new_start, __len); + throw; + } + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __new_start; + this->_M_impl._M_finish = __new_finish; + this->_M_impl._M_end_of_storage = __new_start + __len; + } + } + + + template + template + void + vector<_Tp, _Alloc>:: + _M_emplace_back_aux(_Args&&... __args) + { + const size_type __len = + _M_check_len(size_type(1), "vector::_M_emplace_back_aux"); + pointer __new_start(this->_M_allocate(__len)); + pointer __new_finish(__new_start); + try + { + _Alloc_traits::construct(this->_M_impl, __new_start + size(), + std::forward<_Args>(__args)...); + __new_finish = pointer(); + + __new_finish + = std::__uninitialized_move_if_noexcept_a + (this->_M_impl._M_start, this->_M_impl._M_finish, + __new_start, _M_get_Tp_allocator()); + + ++__new_finish; + } + catch(...) + { + if (!__new_finish) + _Alloc_traits::destroy(this->_M_impl, __new_start + size()); + else + std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); + _M_deallocate(__new_start, __len); + throw; + } + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __new_start; + this->_M_impl._M_finish = __new_finish; + this->_M_impl._M_end_of_storage = __new_start + __len; + } + + + template + void + vector<_Tp, _Alloc>:: + _M_fill_insert(iterator __position, size_type __n, const value_type& __x) + { + if (__n != 0) + { + if (size_type(this->_M_impl._M_end_of_storage + - this->_M_impl._M_finish) >= __n) + { + value_type __x_copy = __x; + const size_type __elems_after = end() - __position; + pointer __old_finish(this->_M_impl._M_finish); + if (__elems_after > __n) + { + std::__uninitialized_move_a(this->_M_impl._M_finish - __n, + this->_M_impl._M_finish, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + this->_M_impl._M_finish += __n; + std::move_backward(__position.base(), __old_finish - __n, __old_finish) + ; + std::fill(__position.base(), __position.base() + __n, + __x_copy); + } + else + { + this->_M_impl._M_finish = + std::__uninitialized_fill_n_a(this->_M_impl._M_finish, + __n - __elems_after, + __x_copy, + _M_get_Tp_allocator()); + std::__uninitialized_move_a(__position.base(), __old_finish, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + this->_M_impl._M_finish += __elems_after; + std::fill(__position.base(), __old_finish, __x_copy); + } + } + else + { + const size_type __len = + _M_check_len(__n, "vector::_M_fill_insert"); + const size_type __elems_before = __position - begin(); + pointer __new_start(this->_M_allocate(__len)); + pointer __new_finish(__new_start); + try + { + + std::__uninitialized_fill_n_a(__new_start + __elems_before, + __n, __x, + _M_get_Tp_allocator()); + __new_finish = pointer(); + + __new_finish + = std::__uninitialized_move_if_noexcept_a + (this->_M_impl._M_start, __position.base(), + __new_start, _M_get_Tp_allocator()); + + __new_finish += __n; + + __new_finish + = std::__uninitialized_move_if_noexcept_a + (__position.base(), this->_M_impl._M_finish, + __new_finish, _M_get_Tp_allocator()); + } + catch(...) + { + if (!__new_finish) + std::_Destroy(__new_start + __elems_before, + __new_start + __elems_before + __n, + _M_get_Tp_allocator()); + else + std::_Destroy(__new_start, __new_finish, + _M_get_Tp_allocator()); + _M_deallocate(__new_start, __len); + throw; + } + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __new_start; + this->_M_impl._M_finish = __new_finish; + this->_M_impl._M_end_of_storage = __new_start + __len; + } + } + } + + + template + void + vector<_Tp, _Alloc>:: + _M_default_append(size_type __n) + { + if (__n != 0) + { + if (size_type(this->_M_impl._M_end_of_storage + - this->_M_impl._M_finish) >= __n) + { + this->_M_impl._M_finish = + std::__uninitialized_default_n_a(this->_M_impl._M_finish, + __n, _M_get_Tp_allocator()); + } + else + { + const size_type __len = + _M_check_len(__n, "vector::_M_default_append"); + const size_type __old_size = this->size(); + pointer __new_start(this->_M_allocate(__len)); + pointer __new_finish(__new_start); + try + { + __new_finish + = std::__uninitialized_move_if_noexcept_a + (this->_M_impl._M_start, this->_M_impl._M_finish, + __new_start, _M_get_Tp_allocator()); + __new_finish = + std::__uninitialized_default_n_a(__new_finish, __n, + _M_get_Tp_allocator()); + } + catch(...) + { + std::_Destroy(__new_start, __new_finish, + _M_get_Tp_allocator()); + _M_deallocate(__new_start, __len); + throw; + } + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __new_start; + this->_M_impl._M_finish = __new_finish; + this->_M_impl._M_end_of_storage = __new_start + __len; + } + } + } + + template + bool + vector<_Tp, _Alloc>:: + _M_shrink_to_fit() + { + if (capacity() == size()) + return false; + return std::__shrink_to_fit_aux::_S_do_it(*this); + } + + + template + template + void + vector<_Tp, _Alloc>:: + _M_range_insert(iterator __pos, _InputIterator __first, + _InputIterator __last, std::input_iterator_tag) + { + for (; __first != __last; ++__first) + { + __pos = insert(__pos, *__first); + ++__pos; + } + } + + template + template + void + vector<_Tp, _Alloc>:: + _M_range_insert(iterator __position, _ForwardIterator __first, + _ForwardIterator __last, std::forward_iterator_tag) + { + if (__first != __last) + { + const size_type __n = std::distance(__first, __last); + if (size_type(this->_M_impl._M_end_of_storage + - this->_M_impl._M_finish) >= __n) + { + const size_type __elems_after = end() - __position; + pointer __old_finish(this->_M_impl._M_finish); + if (__elems_after > __n) + { + std::__uninitialized_move_a(this->_M_impl._M_finish - __n, + this->_M_impl._M_finish, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + this->_M_impl._M_finish += __n; + std::move_backward(__position.base(), __old_finish - __n, __old_finish) + ; + std::copy(__first, __last, __position); + } + else + { + _ForwardIterator __mid = __first; + std::advance(__mid, __elems_after); + std::__uninitialized_copy_a(__mid, __last, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + this->_M_impl._M_finish += __n - __elems_after; + std::__uninitialized_move_a(__position.base(), + __old_finish, + this->_M_impl._M_finish, + _M_get_Tp_allocator()); + this->_M_impl._M_finish += __elems_after; + std::copy(__first, __mid, __position); + } + } + else + { + const size_type __len = + _M_check_len(__n, "vector::_M_range_insert"); + pointer __new_start(this->_M_allocate(__len)); + pointer __new_finish(__new_start); + try + { + __new_finish + = std::__uninitialized_move_if_noexcept_a + (this->_M_impl._M_start, __position.base(), + __new_start, _M_get_Tp_allocator()); + __new_finish + = std::__uninitialized_copy_a(__first, __last, + __new_finish, + _M_get_Tp_allocator()); + __new_finish + = std::__uninitialized_move_if_noexcept_a + (__position.base(), this->_M_impl._M_finish, + __new_finish, _M_get_Tp_allocator()); + } + catch(...) + { + std::_Destroy(__new_start, __new_finish, + _M_get_Tp_allocator()); + _M_deallocate(__new_start, __len); + throw; + } + std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, + _M_get_Tp_allocator()); + _M_deallocate(this->_M_impl._M_start, + this->_M_impl._M_end_of_storage + - this->_M_impl._M_start); + this->_M_impl._M_start = __new_start; + this->_M_impl._M_finish = __new_finish; + this->_M_impl._M_end_of_storage = __new_start + __len; + } + } + } + + + + template + void + vector:: + _M_reallocate(size_type __n) + { + _Bit_pointer __q = this->_M_allocate(__n); + iterator __start(std::__addressof(*__q), 0); + this->_M_impl._M_finish = _M_copy_aligned(begin(), end(), __start); + this->_M_deallocate(); + this->_M_impl._M_start = __start; + this->_M_impl._M_end_of_storage = __q + _S_nword(__n); + } + + template + void + vector:: + _M_fill_insert(iterator __position, size_type __n, bool __x) + { + if (__n == 0) + return; + if (capacity() - size() >= __n) + { + std::copy_backward(__position, end(), + this->_M_impl._M_finish + difference_type(__n)); + std::fill(__position, __position + difference_type(__n), __x); + this->_M_impl._M_finish += difference_type(__n); + } + else + { + const size_type __len = + _M_check_len(__n, "vector::_M_fill_insert"); + _Bit_pointer __q = this->_M_allocate(__len); + iterator __start(std::__addressof(*__q), 0); + iterator __i = _M_copy_aligned(begin(), __position, __start); + std::fill(__i, __i + difference_type(__n), __x); + this->_M_impl._M_finish = std::copy(__position, end(), + __i + difference_type(__n)); + this->_M_deallocate(); + this->_M_impl._M_end_of_storage = __q + _S_nword(__len); + this->_M_impl._M_start = __start; + } + } + + template + template + void + vector:: + _M_insert_range(iterator __position, _ForwardIterator __first, + _ForwardIterator __last, std::forward_iterator_tag) + { + if (__first != __last) + { + size_type __n = std::distance(__first, __last); + if (capacity() - size() >= __n) + { + std::copy_backward(__position, end(), + this->_M_impl._M_finish + + difference_type(__n)); + std::copy(__first, __last, __position); + this->_M_impl._M_finish += difference_type(__n); + } + else + { + const size_type __len = + _M_check_len(__n, "vector::_M_insert_range"); + _Bit_pointer __q = this->_M_allocate(__len); + iterator __start(std::__addressof(*__q), 0); + iterator __i = _M_copy_aligned(begin(), __position, __start); + __i = std::copy(__first, __last, __i); + this->_M_impl._M_finish = std::copy(__position, end(), __i); + this->_M_deallocate(); + this->_M_impl._M_end_of_storage = __q + _S_nword(__len); + this->_M_impl._M_start = __start; + } + } + } + + template + void + vector:: + _M_insert_aux(iterator __position, bool __x) + { + if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) + { + std::copy_backward(__position, this->_M_impl._M_finish, + this->_M_impl._M_finish + 1); + *__position = __x; + ++this->_M_impl._M_finish; + } + else + { + const size_type __len = + _M_check_len(size_type(1), "vector::_M_insert_aux"); + _Bit_pointer __q = this->_M_allocate(__len); + iterator __start(std::__addressof(*__q), 0); + iterator __i = _M_copy_aligned(begin(), __position, __start); + *__i++ = __x; + this->_M_impl._M_finish = std::copy(__position, end(), __i); + this->_M_deallocate(); + this->_M_impl._M_end_of_storage = __q + _S_nword(__len); + this->_M_impl._M_start = __start; + } + } + + template + typename vector::iterator + vector:: + _M_erase(iterator __position) + { + if (__position + 1 != end()) + std::copy(__position + 1, end(), __position); + --this->_M_impl._M_finish; + return __position; + } + + template + typename vector::iterator + vector:: + _M_erase(iterator __first, iterator __last) + { + if (__first != __last) + _M_erase_at_end(std::copy(__last, end(), __first)); + return __first; + } + + + template + bool + vector:: + _M_shrink_to_fit() + { + if (capacity() - size() < int(_S_word_bit)) + return false; + try + { + _M_reallocate(size()); + return true; + } + catch(...) + { return false; } + } + + + +} + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + size_t + hash>:: + operator()(const std::vector& __b) const noexcept + { + size_t __hash = 0; + using std::_S_word_bit; + using std::_Bit_type; + + const size_t __words = __b.size() / _S_word_bit; + if (__words) + { + const size_t __clength = __words * sizeof(_Bit_type); + __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); + } + + const size_t __extrabits = __b.size() % _S_word_bit; + if (__extrabits) + { + _Bit_type __hiword = *__b._M_impl._M_finish._M_p; + __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); + + const size_t __clength + = (__extrabits + 8 - 1) / 8; + if (__words) + __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); + else + __hash = std::_Hash_impl::hash(&__hiword, __clength); + } + + return __hash; + } + + +} +# 70 "/usr/include/c++/5/vector" 2 3 +# 35 "/usr/include/c++/5/bits/random.h" 2 3 +# 1 "/usr/include/c++/5/bits/uniform_int_dist.h" 1 3 +# 37 "/usr/include/c++/5/bits/uniform_int_dist.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace __detail + { + + template + inline bool + _Power_of_2(_Tp __x) + { + return ((__x - 1) & __x) == 0; + }; + } +# 60 "/usr/include/c++/5/bits/uniform_int_dist.h" 3 + template + class uniform_int_distribution + { + static_assert(std::is_integral<_IntType>::value, + "template argument not an integral type"); + + public: + + typedef _IntType result_type; + + struct param_type + { + typedef uniform_int_distribution<_IntType> distribution_type; + + explicit + param_type(_IntType __a = 0, + _IntType __b = std::numeric_limits<_IntType>::max()) + : _M_a(__a), _M_b(__b) + { + ; + } + + result_type + a() const + { return _M_a; } + + result_type + b() const + { return _M_b; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } + + private: + _IntType _M_a; + _IntType _M_b; + }; + + public: + + + + explicit + uniform_int_distribution(_IntType __a = 0, + _IntType __b = std::numeric_limits<_IntType>::max()) + : _M_param(__a, __b) + { } + + explicit + uniform_int_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + + + void + reset() { } + + result_type + a() const + { return _M_param.a(); } + + result_type + b() const + { return _M_param.b(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return this->a(); } + + + + + result_type + max() const + { return this->b(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const uniform_int_distribution& __d1, + const uniform_int_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + template + template + typename uniform_int_distribution<_IntType>::result_type + uniform_int_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + typedef typename _UniformRandomNumberGenerator::result_type + _Gresult_type; + typedef typename std::make_unsigned::type __utype; + typedef typename std::common_type<_Gresult_type, __utype>::type + __uctype; + + const __uctype __urngmin = __urng.min(); + const __uctype __urngmax = __urng.max(); + const __uctype __urngrange = __urngmax - __urngmin; + const __uctype __urange + = __uctype(__param.b()) - __uctype(__param.a()); + + __uctype __ret; + + if (__urngrange > __urange) + { + + const __uctype __uerange = __urange + 1; + const __uctype __scaling = __urngrange / __uerange; + const __uctype __past = __uerange * __scaling; + do + __ret = __uctype(__urng()) - __urngmin; + while (__ret >= __past); + __ret /= __scaling; + } + else if (__urngrange < __urange) + { +# 263 "/usr/include/c++/5/bits/uniform_int_dist.h" 3 + __uctype __tmp; + do + { + const __uctype __uerngrange = __urngrange + 1; + __tmp = (__uerngrange * operator() + (__urng, param_type(0, __urange / __uerngrange))); + __ret = __tmp + (__uctype(__urng()) - __urngmin); + } + while (__ret > __urange || __ret < __tmp); + } + else + __ret = __uctype(__urng()) - __urngmin; + + return __ret + __param.a(); + } + + + template + template + void + uniform_int_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + typedef typename _UniformRandomNumberGenerator::result_type + _Gresult_type; + typedef typename std::make_unsigned::type __utype; + typedef typename std::common_type<_Gresult_type, __utype>::type + __uctype; + + const __uctype __urngmin = __urng.min(); + const __uctype __urngmax = __urng.max(); + const __uctype __urngrange = __urngmax - __urngmin; + const __uctype __urange + = __uctype(__param.b()) - __uctype(__param.a()); + + __uctype __ret; + + if (__urngrange > __urange) + { + if (__detail::_Power_of_2(__urngrange + 1) + && __detail::_Power_of_2(__urange + 1)) + { + while (__f != __t) + { + __ret = __uctype(__urng()) - __urngmin; + *__f++ = (__ret & __urange) + __param.a(); + } + } + else + { + + const __uctype __uerange = __urange + 1; + const __uctype __scaling = __urngrange / __uerange; + const __uctype __past = __uerange * __scaling; + while (__f != __t) + { + do + __ret = __uctype(__urng()) - __urngmin; + while (__ret >= __past); + *__f++ = __ret / __scaling + __param.a(); + } + } + } + else if (__urngrange < __urange) + { +# 347 "/usr/include/c++/5/bits/uniform_int_dist.h" 3 + __uctype __tmp; + while (__f != __t) + { + do + { + const __uctype __uerngrange = __urngrange + 1; + __tmp = (__uerngrange * operator() + (__urng, param_type(0, __urange / __uerngrange))); + __ret = __tmp + (__uctype(__urng()) - __urngmin); + } + while (__ret > __urange || __ret < __tmp); + *__f++ = __ret; + } + } + else + while (__f != __t) + *__f++ = __uctype(__urng()) - __urngmin + __param.a(); + } + + +} +# 36 "/usr/include/c++/5/bits/random.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/include/c++/5/bits/random.h" 3 + template + _RealType + generate_canonical(_UniformRandomNumberGenerator& __g); + + + + + + + namespace __detail + { + + + template + (std::numeric_limits<_UIntType>::digits)> + struct _Shift + { static const _UIntType __value = 0; }; + + template + struct _Shift<_UIntType, __w, true> + { static const _UIntType __value = _UIntType(1) << __w; }; + + template + struct _Select_uint_least_t + { + static_assert(__which < 0, + "sorry, would be too much trouble for a slow result"); + }; + + template + struct _Select_uint_least_t<__s, 4> + { typedef unsigned int type; }; + + template + struct _Select_uint_least_t<__s, 3> + { typedef unsigned long type; }; + + template + struct _Select_uint_least_t<__s, 2> + { typedef unsigned long long type; }; + + + template + struct _Select_uint_least_t<__s, 1> + { typedef unsigned __int128 type; }; + + + + template= __m - 1), + bool __schrage_ok = __m % __a < __m / __a> + struct _Mod + { + typedef typename _Select_uint_least_t::type _Tp2; + static _Tp + __calc(_Tp __x) + { return static_cast<_Tp>((_Tp2(__a) * __x + __c) % __m); } + }; + + + template + struct _Mod<_Tp, __m, __a, __c, false, true> + { + static _Tp + __calc(_Tp __x); + }; + + + + + template + struct _Mod<_Tp, __m, __a, __c, true, __s> + { + static _Tp + __calc(_Tp __x) + { + _Tp __res = __a * __x + __c; + if (__m) + __res %= __m; + return __res; + } + }; + + template + inline _Tp + __mod(_Tp __x) + { return _Mod<_Tp, __m, __a, __c>::__calc(__x); } + + + + + + template + struct _Adaptor + { + static_assert(std::is_floating_point<_DInputType>::value, + "template argument not a floating point type"); + + public: + _Adaptor(_Engine& __g) + : _M_g(__g) { } + + _DInputType + min() const + { return _DInputType(0); } + + _DInputType + max() const + { return _DInputType(1); } + + + + + + + _DInputType + operator()() + { + return std::generate_canonical<_DInputType, + std::numeric_limits<_DInputType>::digits, + _Engine>(_M_g); + } + + private: + _Engine& _M_g; + }; + + + } + + +# 235 "/usr/include/c++/5/bits/random.h" 3 + template + class linear_congruential_engine + { + static_assert(std::is_unsigned<_UIntType>::value, "template argument " + "substituting _UIntType not an unsigned integral type"); + static_assert(__m == 0u || (__a < __m && __c < __m), + "template argument substituting __m out of bounds"); + + public: + + typedef _UIntType result_type; + + + static constexpr result_type multiplier = __a; + + static constexpr result_type increment = __c; + + static constexpr result_type modulus = __m; + static constexpr result_type default_seed = 1u; +# 262 "/usr/include/c++/5/bits/random.h" 3 + explicit + linear_congruential_engine(result_type __s = default_seed) + { seed(__s); } + + + + + + + + template::value> + ::type> + explicit + linear_congruential_engine(_Sseq& __q) + { seed(__q); } + + + + + + + + void + seed(result_type __s = default_seed); +# 295 "/usr/include/c++/5/bits/random.h" 3 + template + typename std::enable_if::value>::type + seed(_Sseq& __q); + + + + + + + + static constexpr result_type + min() + { return __c == 0u ? 1u : 0u; } + + + + + static constexpr result_type + max() + { return __m - 1u; } + + + + + void + discard(unsigned long long __z) + { + for (; __z != 0ULL; --__z) + (*this)(); + } + + + + + result_type + operator()() + { + _M_x = __detail::__mod<_UIntType, __m, __a, __c>(_M_x); + return _M_x; + } +# 347 "/usr/include/c++/5/bits/random.h" 3 + friend bool + operator==(const linear_congruential_engine& __lhs, + const linear_congruential_engine& __rhs) + { return __lhs._M_x == __rhs._M_x; } +# 360 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::linear_congruential_engine<_UIntType1, + __a1, __c1, __m1>& __lcr); +# 380 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::linear_congruential_engine<_UIntType1, __a1, + __c1, __m1>& __lcr); + + private: + _UIntType _M_x; + }; +# 402 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::linear_congruential_engine<_UIntType, __a, + __c, __m>& __lhs, + const std::linear_congruential_engine<_UIntType, __a, + __c, __m>& __rhs) + { return !(__lhs == __rhs); } +# 439 "/usr/include/c++/5/bits/random.h" 3 + template + class mersenne_twister_engine + { + static_assert(std::is_unsigned<_UIntType>::value, "template argument " + "substituting _UIntType not an unsigned integral type"); + static_assert(1u <= __m && __m <= __n, + "template argument substituting __m out of bounds"); + static_assert(__r <= __w, "template argument substituting " + "__r out of bound"); + static_assert(__u <= __w, "template argument substituting " + "__u out of bound"); + static_assert(__s <= __w, "template argument substituting " + "__s out of bound"); + static_assert(__t <= __w, "template argument substituting " + "__t out of bound"); + static_assert(__l <= __w, "template argument substituting " + "__l out of bound"); + static_assert(__w <= std::numeric_limits<_UIntType>::digits, + "template argument substituting __w out of bound"); + static_assert(__a <= (__detail::_Shift<_UIntType, __w>::__value - 1), + "template argument substituting __a out of bound"); + static_assert(__b <= (__detail::_Shift<_UIntType, __w>::__value - 1), + "template argument substituting __b out of bound"); + static_assert(__c <= (__detail::_Shift<_UIntType, __w>::__value - 1), + "template argument substituting __c out of bound"); + static_assert(__d <= (__detail::_Shift<_UIntType, __w>::__value - 1), + "template argument substituting __d out of bound"); + static_assert(__f <= (__detail::_Shift<_UIntType, __w>::__value - 1), + "template argument substituting __f out of bound"); + + public: + + typedef _UIntType result_type; + + + static constexpr size_t word_size = __w; + static constexpr size_t state_size = __n; + static constexpr size_t shift_size = __m; + static constexpr size_t mask_bits = __r; + static constexpr result_type xor_mask = __a; + static constexpr size_t tempering_u = __u; + static constexpr result_type tempering_d = __d; + static constexpr size_t tempering_s = __s; + static constexpr result_type tempering_b = __b; + static constexpr size_t tempering_t = __t; + static constexpr result_type tempering_c = __c; + static constexpr size_t tempering_l = __l; + static constexpr result_type initialization_multiplier = __f; + static constexpr result_type default_seed = 5489u; + + + explicit + mersenne_twister_engine(result_type __sd = default_seed) + { seed(__sd); } + + + + + + + + template::value> + ::type> + explicit + mersenne_twister_engine(_Sseq& __q) + { seed(__q); } + + void + seed(result_type __sd = default_seed); + + template + typename std::enable_if::value>::type + seed(_Sseq& __q); + + + + + static constexpr result_type + min() + { return 0; }; + + + + + static constexpr result_type + max() + { return __detail::_Shift<_UIntType, __w>::__value - 1; } + + + + + void + discard(unsigned long long __z); + + result_type + operator()(); +# 553 "/usr/include/c++/5/bits/random.h" 3 + friend bool + operator==(const mersenne_twister_engine& __lhs, + const mersenne_twister_engine& __rhs) + { return (std::equal(__lhs._M_x, __lhs._M_x + state_size, __rhs._M_x) + && __lhs._M_p == __rhs._M_p); } +# 571 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::mersenne_twister_engine<_UIntType1, __w1, __n1, + __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, + __l1, __f1>& __x); +# 597 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::mersenne_twister_engine<_UIntType1, __w1, __n1, __m1, + __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, + __l1, __f1>& __x); + + private: + void _M_gen_rand(); + + _UIntType _M_x[state_size]; + size_t _M_p; + }; +# 630 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::mersenne_twister_engine<_UIntType, __w, __n, __m, + __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __lhs, + const std::mersenne_twister_engine<_UIntType, __w, __n, __m, + __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __rhs) + { return !(__lhs == __rhs); } +# 658 "/usr/include/c++/5/bits/random.h" 3 + template + class subtract_with_carry_engine + { + static_assert(std::is_unsigned<_UIntType>::value, "template argument " + "substituting _UIntType not an unsigned integral type"); + static_assert(0u < __s && __s < __r, + "template argument substituting __s out of bounds"); + static_assert(0u < __w && __w <= std::numeric_limits<_UIntType>::digits, + "template argument substituting __w out of bounds"); + + public: + + typedef _UIntType result_type; + + + static constexpr size_t word_size = __w; + static constexpr size_t short_lag = __s; + static constexpr size_t long_lag = __r; + static constexpr result_type default_seed = 19780503u; + + + + + + explicit + subtract_with_carry_engine(result_type __sd = default_seed) + { seed(__sd); } + + + + + + + + template::value> + ::type> + explicit + subtract_with_carry_engine(_Sseq& __q) + { seed(__q); } +# 711 "/usr/include/c++/5/bits/random.h" 3 + void + seed(result_type __sd = default_seed); + + + + + + template + typename std::enable_if::value>::type + seed(_Sseq& __q); + + + + + + static constexpr result_type + min() + { return 0; } + + + + + + static constexpr result_type + max() + { return __detail::_Shift<_UIntType, __w>::__value - 1; } + + + + + void + discard(unsigned long long __z) + { + for (; __z != 0ULL; --__z) + (*this)(); + } + + + + + result_type + operator()(); +# 766 "/usr/include/c++/5/bits/random.h" 3 + friend bool + operator==(const subtract_with_carry_engine& __lhs, + const subtract_with_carry_engine& __rhs) + { return (std::equal(__lhs._M_x, __lhs._M_x + long_lag, __rhs._M_x) + && __lhs._M_carry == __rhs._M_carry + && __lhs._M_p == __rhs._M_p); } +# 785 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::subtract_with_carry_engine<_UIntType1, __w1, + __s1, __r1>& __x); +# 804 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::subtract_with_carry_engine<_UIntType1, __w1, + __s1, __r1>& __x); + + private: + + _UIntType _M_x[long_lag]; + _UIntType _M_carry; + size_t _M_p; + }; +# 830 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::subtract_with_carry_engine<_UIntType, __w, + __s, __r>& __lhs, + const std::subtract_with_carry_engine<_UIntType, __w, + __s, __r>& __rhs) + { return !(__lhs == __rhs); } +# 845 "/usr/include/c++/5/bits/random.h" 3 + template + class discard_block_engine + { + static_assert(1 <= __r && __r <= __p, + "template argument substituting __r out of bounds"); + + public: + + typedef typename _RandomNumberEngine::result_type result_type; + + + static constexpr size_t block_size = __p; + static constexpr size_t used_block = __r; + + + + + + + discard_block_engine() + : _M_b(), _M_n(0) { } + + + + + + + + explicit + discard_block_engine(const _RandomNumberEngine& __rng) + : _M_b(__rng), _M_n(0) { } + + + + + + + + explicit + discard_block_engine(_RandomNumberEngine&& __rng) + : _M_b(std::move(__rng)), _M_n(0) { } + + + + + + + + explicit + discard_block_engine(result_type __s) + : _M_b(__s), _M_n(0) { } + + + + + + + template::value + && !std::is_same<_Sseq, _RandomNumberEngine>::value> + ::type> + explicit + discard_block_engine(_Sseq& __q) + : _M_b(__q), _M_n(0) + { } + + + + + + void + seed() + { + _M_b.seed(); + _M_n = 0; + } + + + + + + void + seed(result_type __s) + { + _M_b.seed(__s); + _M_n = 0; + } + + + + + + + template + void + seed(_Sseq& __q) + { + _M_b.seed(__q); + _M_n = 0; + } + + + + + + const _RandomNumberEngine& + base() const noexcept + { return _M_b; } + + + + + static constexpr result_type + min() + { return _RandomNumberEngine::min(); } + + + + + static constexpr result_type + max() + { return _RandomNumberEngine::max(); } + + + + + void + discard(unsigned long long __z) + { + for (; __z != 0ULL; --__z) + (*this)(); + } + + + + + result_type + operator()(); +# 995 "/usr/include/c++/5/bits/random.h" 3 + friend bool + operator==(const discard_block_engine& __lhs, + const discard_block_engine& __rhs) + { return __lhs._M_b == __rhs._M_b && __lhs._M_n == __rhs._M_n; } +# 1011 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::discard_block_engine<_RandomNumberEngine1, + __p1, __r1>& __x); +# 1029 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::discard_block_engine<_RandomNumberEngine1, + __p1, __r1>& __x); + + private: + _RandomNumberEngine _M_b; + size_t _M_n; + }; +# 1052 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::discard_block_engine<_RandomNumberEngine, __p, + __r>& __lhs, + const std::discard_block_engine<_RandomNumberEngine, __p, + __r>& __rhs) + { return !(__lhs == __rhs); } + + + + + + + template + class independent_bits_engine + { + static_assert(std::is_unsigned<_UIntType>::value, "template argument " + "substituting _UIntType not an unsigned integral type"); + static_assert(0u < __w && __w <= std::numeric_limits<_UIntType>::digits, + "template argument substituting __w out of bounds"); + + public: + + typedef _UIntType result_type; + + + + + + + independent_bits_engine() + : _M_b() { } + + + + + + + + explicit + independent_bits_engine(const _RandomNumberEngine& __rng) + : _M_b(__rng) { } + + + + + + + + explicit + independent_bits_engine(_RandomNumberEngine&& __rng) + : _M_b(std::move(__rng)) { } + + + + + + + + explicit + independent_bits_engine(result_type __s) + : _M_b(__s) { } + + + + + + + template::value + && !std::is_same<_Sseq, _RandomNumberEngine>::value> + ::type> + explicit + independent_bits_engine(_Sseq& __q) + : _M_b(__q) + { } + + + + + + void + seed() + { _M_b.seed(); } + + + + + + void + seed(result_type __s) + { _M_b.seed(__s); } + + + + + + + template + void + seed(_Sseq& __q) + { _M_b.seed(__q); } + + + + + + const _RandomNumberEngine& + base() const noexcept + { return _M_b; } + + + + + static constexpr result_type + min() + { return 0U; } + + + + + static constexpr result_type + max() + { return __detail::_Shift<_UIntType, __w>::__value - 1; } + + + + + void + discard(unsigned long long __z) + { + for (; __z != 0ULL; --__z) + (*this)(); + } + + + + + result_type + operator()(); +# 1205 "/usr/include/c++/5/bits/random.h" 3 + friend bool + operator==(const independent_bits_engine& __lhs, + const independent_bits_engine& __rhs) + { return __lhs._M_b == __rhs._M_b; } +# 1222 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::independent_bits_engine<_RandomNumberEngine, + __w, _UIntType>& __x) + { + __is >> __x._M_b; + return __is; + } + + private: + _RandomNumberEngine _M_b; + }; +# 1248 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::independent_bits_engine<_RandomNumberEngine, __w, + _UIntType>& __lhs, + const std::independent_bits_engine<_RandomNumberEngine, __w, + _UIntType>& __rhs) + { return !(__lhs == __rhs); } +# 1266 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::independent_bits_engine<_RandomNumberEngine, + __w, _UIntType>& __x) + { + __os << __x.base(); + return __os; + } + + + + + + + + template + class shuffle_order_engine + { + static_assert(1u <= __k, "template argument substituting " + "__k out of bound"); + + public: + + typedef typename _RandomNumberEngine::result_type result_type; + + static constexpr size_t table_size = __k; + + + + + + + shuffle_order_engine() + : _M_b() + { _M_initialize(); } + + + + + + + + explicit + shuffle_order_engine(const _RandomNumberEngine& __rng) + : _M_b(__rng) + { _M_initialize(); } + + + + + + + + explicit + shuffle_order_engine(_RandomNumberEngine&& __rng) + : _M_b(std::move(__rng)) + { _M_initialize(); } + + + + + + + + explicit + shuffle_order_engine(result_type __s) + : _M_b(__s) + { _M_initialize(); } + + + + + + + template::value + && !std::is_same<_Sseq, _RandomNumberEngine>::value> + ::type> + explicit + shuffle_order_engine(_Sseq& __q) + : _M_b(__q) + { _M_initialize(); } + + + + + + void + seed() + { + _M_b.seed(); + _M_initialize(); + } + + + + + + void + seed(result_type __s) + { + _M_b.seed(__s); + _M_initialize(); + } + + + + + + + template + void + seed(_Sseq& __q) + { + _M_b.seed(__q); + _M_initialize(); + } + + + + + const _RandomNumberEngine& + base() const noexcept + { return _M_b; } + + + + + static constexpr result_type + min() + { return _RandomNumberEngine::min(); } + + + + + static constexpr result_type + max() + { return _RandomNumberEngine::max(); } + + + + + void + discard(unsigned long long __z) + { + for (; __z != 0ULL; --__z) + (*this)(); + } + + + + + result_type + operator()(); +# 1434 "/usr/include/c++/5/bits/random.h" 3 + friend bool + operator==(const shuffle_order_engine& __lhs, + const shuffle_order_engine& __rhs) + { return (__lhs._M_b == __rhs._M_b + && std::equal(__lhs._M_v, __lhs._M_v + __k, __rhs._M_v) + && __lhs._M_y == __rhs._M_y); } +# 1452 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::shuffle_order_engine<_RandomNumberEngine1, + __k1>& __x); +# 1470 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::shuffle_order_engine<_RandomNumberEngine1, __k1>& __x); + + private: + void _M_initialize() + { + for (size_t __i = 0; __i < __k; ++__i) + _M_v[__i] = _M_b(); + _M_y = _M_b(); + } + + _RandomNumberEngine _M_b; + result_type _M_v[__k]; + result_type _M_y; + }; +# 1500 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::shuffle_order_engine<_RandomNumberEngine, + __k>& __lhs, + const std::shuffle_order_engine<_RandomNumberEngine, + __k>& __rhs) + { return !(__lhs == __rhs); } + + + + + + typedef linear_congruential_engine + minstd_rand0; + + + + + typedef linear_congruential_engine + minstd_rand; +# 1529 "/usr/include/c++/5/bits/random.h" 3 + typedef mersenne_twister_engine< + uint_fast32_t, + 32, 624, 397, 31, + 0x9908b0dfUL, 11, + 0xffffffffUL, 7, + 0x9d2c5680UL, 15, + 0xefc60000UL, 18, 1812433253UL> mt19937; + + + + + typedef mersenne_twister_engine< + uint_fast64_t, + 64, 312, 156, 31, + 0xb5026f5aa96619e9ULL, 29, + 0x5555555555555555ULL, 17, + 0x71d67fffeda60000ULL, 37, + 0xfff7eee000000000ULL, 43, + 6364136223846793005ULL> mt19937_64; + + typedef subtract_with_carry_engine + ranlux24_base; + + typedef subtract_with_carry_engine + ranlux48_base; + + typedef discard_block_engine ranlux24; + + typedef discard_block_engine ranlux48; + + typedef shuffle_order_engine knuth_b; + + typedef minstd_rand0 default_random_engine; + + + + + + class random_device + { + public: + + typedef unsigned int result_type; + + + + + + explicit + random_device(const std::string& __token = "default") + { + _M_init(__token); + } + + ~random_device() + { _M_fini(); } +# 1596 "/usr/include/c++/5/bits/random.h" 3 + static constexpr result_type + min() + { return std::numeric_limits::min(); } + + static constexpr result_type + max() + { return std::numeric_limits::max(); } + + double + entropy() const noexcept + { return 0.0; } + + result_type + operator()() + { + + return this->_M_getval(); + + + + } + + + random_device(const random_device&) = delete; + void operator=(const random_device&) = delete; + + private: + + void _M_init(const std::string& __token); + void _M_init_pretr1(const std::string& __token); + void _M_fini(); + + result_type _M_getval(); + result_type _M_getval_pretr1(); + + union + { + void* _M_file; + mt19937 _M_mt; + }; + }; +# 1658 "/usr/include/c++/5/bits/random.h" 3 + template + inline bool + operator!=(const std::uniform_int_distribution<_IntType>& __d1, + const std::uniform_int_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 1674 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>&, + const std::uniform_int_distribution<_IntType>&); +# 1688 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>&, + std::uniform_int_distribution<_IntType>&); +# 1701 "/usr/include/c++/5/bits/random.h" 3 + template + class uniform_real_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef uniform_real_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __a = _RealType(0), + _RealType __b = _RealType(1)) + : _M_a(__a), _M_b(__b) + { + ; + } + + result_type + a() const + { return _M_a; } + + result_type + b() const + { return _M_b; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } + + private: + _RealType _M_a; + _RealType _M_b; + }; + + public: + + + + + + + explicit + uniform_real_distribution(_RealType __a = _RealType(0), + _RealType __b = _RealType(1)) + : _M_param(__a, __b) + { } + + explicit + uniform_real_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + + + void + reset() { } + + result_type + a() const + { return _M_param.a(); } + + result_type + b() const + { return _M_param.b(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return this->a(); } + + + + + result_type + max() const + { return this->b(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + return (__aurng() * (__p.b() - __p.a())) + __p.a(); + } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const uniform_real_distribution& __d1, + const uniform_real_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::uniform_real_distribution<_IntType>& __d1, + const std::uniform_real_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 1883 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>&, + const std::uniform_real_distribution<_RealType>&); +# 1897 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>&, + std::uniform_real_distribution<_RealType>&); +# 1919 "/usr/include/c++/5/bits/random.h" 3 + template + class normal_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef normal_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __mean = _RealType(0), + _RealType __stddev = _RealType(1)) + : _M_mean(__mean), _M_stddev(__stddev) + { + ; + } + + _RealType + mean() const + { return _M_mean; } + + _RealType + stddev() const + { return _M_stddev; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return (__p1._M_mean == __p2._M_mean + && __p1._M_stddev == __p2._M_stddev); } + + private: + _RealType _M_mean; + _RealType _M_stddev; + }; + + public: + + + + + explicit + normal_distribution(result_type __mean = result_type(0), + result_type __stddev = result_type(1)) + : _M_param(__mean, __stddev), _M_saved_available(false) + { } + + explicit + normal_distribution(const param_type& __p) + : _M_param(__p), _M_saved_available(false) + { } + + + + + void + reset() + { _M_saved_available = false; } + + + + + _RealType + mean() const + { return _M_param.mean(); } + + + + + _RealType + stddev() const + { return _M_param.stddev(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return std::numeric_limits::lowest(); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + template + friend bool + operator==(const std::normal_distribution<_RealType1>& __d1, + const std::normal_distribution<_RealType1>& __d2); +# 2080 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::normal_distribution<_RealType1>& __x); +# 2095 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::normal_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + result_type _M_saved; + bool _M_saved_available; + }; + + + + + template + inline bool + operator!=(const std::normal_distribution<_RealType>& __d1, + const std::normal_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 2132 "/usr/include/c++/5/bits/random.h" 3 + template + class lognormal_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef lognormal_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __m = _RealType(0), + _RealType __s = _RealType(1)) + : _M_m(__m), _M_s(__s) + { } + + _RealType + m() const + { return _M_m; } + + _RealType + s() const + { return _M_s; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_m == __p2._M_m && __p1._M_s == __p2._M_s; } + + private: + _RealType _M_m; + _RealType _M_s; + }; + + explicit + lognormal_distribution(_RealType __m = _RealType(0), + _RealType __s = _RealType(1)) + : _M_param(__m, __s), _M_nd() + { } + + explicit + lognormal_distribution(const param_type& __p) + : _M_param(__p), _M_nd() + { } + + + + + void + reset() + { _M_nd.reset(); } + + + + + _RealType + m() const + { return _M_param.m(); } + + _RealType + s() const + { return _M_param.s(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { return std::exp(__p.s() * _M_nd(__urng) + __p.m()); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const lognormal_distribution& __d1, + const lognormal_distribution& __d2) + { return (__d1._M_param == __d2._M_param + && __d1._M_nd == __d2._M_nd); } +# 2284 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::lognormal_distribution<_RealType1>& __x); +# 2299 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::lognormal_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + + std::normal_distribution _M_nd; + }; + + + + + template + inline bool + operator!=(const std::lognormal_distribution<_RealType>& __d1, + const std::lognormal_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 2336 "/usr/include/c++/5/bits/random.h" 3 + template + class gamma_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef gamma_distribution<_RealType> distribution_type; + friend class gamma_distribution<_RealType>; + + explicit + param_type(_RealType __alpha_val = _RealType(1), + _RealType __beta_val = _RealType(1)) + : _M_alpha(__alpha_val), _M_beta(__beta_val) + { + ; + _M_initialize(); + } + + _RealType + alpha() const + { return _M_alpha; } + + _RealType + beta() const + { return _M_beta; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return (__p1._M_alpha == __p2._M_alpha + && __p1._M_beta == __p2._M_beta); } + + private: + void + _M_initialize(); + + _RealType _M_alpha; + _RealType _M_beta; + + _RealType _M_malpha, _M_a2; + }; + + public: + + + + + explicit + gamma_distribution(_RealType __alpha_val = _RealType(1), + _RealType __beta_val = _RealType(1)) + : _M_param(__alpha_val, __beta_val), _M_nd() + { } + + explicit + gamma_distribution(const param_type& __p) + : _M_param(__p), _M_nd() + { } + + + + + void + reset() + { _M_nd.reset(); } + + + + + _RealType + alpha() const + { return _M_param.alpha(); } + + + + + _RealType + beta() const + { return _M_param.beta(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const gamma_distribution& __d1, + const gamma_distribution& __d2) + { return (__d1._M_param == __d2._M_param + && __d1._M_nd == __d2._M_nd); } +# 2505 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::gamma_distribution<_RealType1>& __x); +# 2519 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::gamma_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + + std::normal_distribution _M_nd; + }; + + + + + template + inline bool + operator!=(const std::gamma_distribution<_RealType>& __d1, + const std::gamma_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 2553 "/usr/include/c++/5/bits/random.h" 3 + template + class chi_squared_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef chi_squared_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __n = _RealType(1)) + : _M_n(__n) + { } + + _RealType + n() const + { return _M_n; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_n == __p2._M_n; } + + private: + _RealType _M_n; + }; + + explicit + chi_squared_distribution(_RealType __n = _RealType(1)) + : _M_param(__n), _M_gd(__n / 2) + { } + + explicit + chi_squared_distribution(const param_type& __p) + : _M_param(__p), _M_gd(__p.n() / 2) + { } + + + + + void + reset() + { _M_gd.reset(); } + + + + + _RealType + n() const + { return _M_param.n(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return 2 * _M_gd(__urng); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + typedef typename std::gamma_distribution::param_type + param_type; + return 2 * _M_gd(__urng, param_type(__p.n() / 2)); + } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { typename std::gamma_distribution::param_type + __p2(__p.n() / 2); + this->__generate_impl(__f, __t, __urng, __p2); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { typename std::gamma_distribution::param_type + __p2(__p.n() / 2); + this->__generate_impl(__f, __t, __urng, __p2); } + + + + + + + friend bool + operator==(const chi_squared_distribution& __d1, + const chi_squared_distribution& __d2) + { return __d1._M_param == __d2._M_param && __d1._M_gd == __d2._M_gd; } +# 2707 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::chi_squared_distribution<_RealType1>& __x); +# 2722 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::chi_squared_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng); + + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const typename + std::gamma_distribution::param_type& __p); + + param_type _M_param; + + std::gamma_distribution _M_gd; + }; + + + + + template + inline bool + operator!=(const std::chi_squared_distribution<_RealType>& __d1, + const std::chi_squared_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 2763 "/usr/include/c++/5/bits/random.h" 3 + template + class cauchy_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef cauchy_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __a = _RealType(0), + _RealType __b = _RealType(1)) + : _M_a(__a), _M_b(__b) + { } + + _RealType + a() const + { return _M_a; } + + _RealType + b() const + { return _M_b; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } + + private: + _RealType _M_a; + _RealType _M_b; + }; + + explicit + cauchy_distribution(_RealType __a = _RealType(0), + _RealType __b = _RealType(1)) + : _M_param(__a, __b) + { } + + explicit + cauchy_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + void + reset() + { } + + + + + _RealType + a() const + { return _M_param.a(); } + + _RealType + b() const + { return _M_param.b(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return std::numeric_limits::lowest(); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const cauchy_distribution& __d1, + const cauchy_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::cauchy_distribution<_RealType>& __d1, + const std::cauchy_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 2933 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::cauchy_distribution<_RealType>& __x); +# 2948 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::cauchy_distribution<_RealType>& __x); +# 2964 "/usr/include/c++/5/bits/random.h" 3 + template + class fisher_f_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef fisher_f_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __m = _RealType(1), + _RealType __n = _RealType(1)) + : _M_m(__m), _M_n(__n) + { } + + _RealType + m() const + { return _M_m; } + + _RealType + n() const + { return _M_n; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_m == __p2._M_m && __p1._M_n == __p2._M_n; } + + private: + _RealType _M_m; + _RealType _M_n; + }; + + explicit + fisher_f_distribution(_RealType __m = _RealType(1), + _RealType __n = _RealType(1)) + : _M_param(__m, __n), _M_gd_x(__m / 2), _M_gd_y(__n / 2) + { } + + explicit + fisher_f_distribution(const param_type& __p) + : _M_param(__p), _M_gd_x(__p.m() / 2), _M_gd_y(__p.n() / 2) + { } + + + + + void + reset() + { + _M_gd_x.reset(); + _M_gd_y.reset(); + } + + + + + _RealType + m() const + { return _M_param.m(); } + + _RealType + n() const + { return _M_param.n(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return (_M_gd_x(__urng) * n()) / (_M_gd_y(__urng) * m()); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + typedef typename std::gamma_distribution::param_type + param_type; + return ((_M_gd_x(__urng, param_type(__p.m() / 2)) * n()) + / (_M_gd_y(__urng, param_type(__p.n() / 2)) * m())); + } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const fisher_f_distribution& __d1, + const fisher_f_distribution& __d2) + { return (__d1._M_param == __d2._M_param + && __d1._M_gd_x == __d2._M_gd_x + && __d1._M_gd_y == __d2._M_gd_y); } +# 3131 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::fisher_f_distribution<_RealType1>& __x); +# 3146 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::fisher_f_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng); + + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + + std::gamma_distribution _M_gd_x, _M_gd_y; + }; + + + + + template + inline bool + operator!=(const std::fisher_f_distribution<_RealType>& __d1, + const std::fisher_f_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 3188 "/usr/include/c++/5/bits/random.h" 3 + template + class student_t_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef student_t_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __n = _RealType(1)) + : _M_n(__n) + { } + + _RealType + n() const + { return _M_n; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_n == __p2._M_n; } + + private: + _RealType _M_n; + }; + + explicit + student_t_distribution(_RealType __n = _RealType(1)) + : _M_param(__n), _M_nd(), _M_gd(__n / 2, 2) + { } + + explicit + student_t_distribution(const param_type& __p) + : _M_param(__p), _M_nd(), _M_gd(__p.n() / 2, 2) + { } + + + + + void + reset() + { + _M_nd.reset(); + _M_gd.reset(); + } + + + + + _RealType + n() const + { return _M_param.n(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return std::numeric_limits::lowest(); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return _M_nd(__urng) * std::sqrt(n() / _M_gd(__urng)); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + typedef typename std::gamma_distribution::param_type + param_type; + + const result_type __g = _M_gd(__urng, param_type(__p.n() / 2, 2)); + return _M_nd(__urng) * std::sqrt(__p.n() / __g); + } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const student_t_distribution& __d1, + const student_t_distribution& __d2) + { return (__d1._M_param == __d2._M_param + && __d1._M_nd == __d2._M_nd && __d1._M_gd == __d2._M_gd); } +# 3344 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::student_t_distribution<_RealType1>& __x); +# 3359 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::student_t_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng); + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + + std::normal_distribution _M_nd; + std::gamma_distribution _M_gd; + }; + + + + + template + inline bool + operator!=(const std::student_t_distribution<_RealType>& __d1, + const std::student_t_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 3407 "/usr/include/c++/5/bits/random.h" 3 + class bernoulli_distribution + { + public: + + typedef bool result_type; + + struct param_type + { + typedef bernoulli_distribution distribution_type; + + explicit + param_type(double __p = 0.5) + : _M_p(__p) + { + ; + } + + double + p() const + { return _M_p; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_p == __p2._M_p; } + + private: + double _M_p; + }; + + public: + + + + + + + explicit + bernoulli_distribution(double __p = 0.5) + : _M_param(__p) + { } + + explicit + bernoulli_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + + + void + reset() { } + + + + + double + p() const + { return _M_param.p(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return std::numeric_limits::min(); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + if ((__aurng() - __aurng.min()) + < __p.p() * (__aurng.max() - __aurng.min())) + return true; + return false; + } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const bernoulli_distribution& __d1, + const bernoulli_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + inline bool + operator!=(const std::bernoulli_distribution& __d1, + const std::bernoulli_distribution& __d2) + { return !(__d1 == __d2); } +# 3578 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::bernoulli_distribution& __x); +# 3592 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::bernoulli_distribution& __x) + { + double __p; + __is >> __p; + __x.param(bernoulli_distribution::param_type(__p)); + return __is; + } +# 3611 "/usr/include/c++/5/bits/random.h" 3 + template + class binomial_distribution + { + static_assert(std::is_integral<_IntType>::value, + "template argument not an integral type"); + + public: + + typedef _IntType result_type; + + struct param_type + { + typedef binomial_distribution<_IntType> distribution_type; + friend class binomial_distribution<_IntType>; + + explicit + param_type(_IntType __t = _IntType(1), double __p = 0.5) + : _M_t(__t), _M_p(__p) + { + + + ; + _M_initialize(); + } + + _IntType + t() const + { return _M_t; } + + double + p() const + { return _M_p; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_t == __p2._M_t && __p1._M_p == __p2._M_p; } + + private: + void + _M_initialize(); + + _IntType _M_t; + double _M_p; + + double _M_q; + + double _M_d1, _M_d2, _M_s1, _M_s2, _M_c, + _M_a1, _M_a123, _M_s, _M_lf, _M_lp1p; + + bool _M_easy; + }; + + + explicit + binomial_distribution(_IntType __t = _IntType(1), + double __p = 0.5) + : _M_param(__t, __p), _M_nd() + { } + + explicit + binomial_distribution(const param_type& __p) + : _M_param(__p), _M_nd() + { } + + + + + void + reset() + { _M_nd.reset(); } + + + + + _IntType + t() const + { return _M_param.t(); } + + + + + double + p() const + { return _M_param.p(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return 0; } + + + + + result_type + max() const + { return _M_param.t(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const binomial_distribution& __d1, + const binomial_distribution& __d2) + + { return __d1._M_param == __d2._M_param && __d1._M_nd == __d2._M_nd; } +# 3784 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::binomial_distribution<_IntType1>& __x); +# 3800 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::binomial_distribution<_IntType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + result_type + _M_waiting(_UniformRandomNumberGenerator& __urng, + _IntType __t, double __q); + + param_type _M_param; + + + std::normal_distribution _M_nd; + }; + + + + + template + inline bool + operator!=(const std::binomial_distribution<_IntType>& __d1, + const std::binomial_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 3842 "/usr/include/c++/5/bits/random.h" 3 + template + class geometric_distribution + { + static_assert(std::is_integral<_IntType>::value, + "template argument not an integral type"); + + public: + + typedef _IntType result_type; + + struct param_type + { + typedef geometric_distribution<_IntType> distribution_type; + friend class geometric_distribution<_IntType>; + + explicit + param_type(double __p = 0.5) + : _M_p(__p) + { + ; + _M_initialize(); + } + + double + p() const + { return _M_p; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_p == __p2._M_p; } + + private: + void + _M_initialize() + { _M_log_1_p = std::log(1.0 - _M_p); } + + double _M_p; + + double _M_log_1_p; + }; + + + explicit + geometric_distribution(double __p = 0.5) + : _M_param(__p) + { } + + explicit + geometric_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + + + void + reset() { } + + + + + double + p() const + { return _M_param.p(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return 0; } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const geometric_distribution& __d1, + const geometric_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::geometric_distribution<_IntType>& __d1, + const std::geometric_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 4013 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::geometric_distribution<_IntType>& __x); +# 4028 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::geometric_distribution<_IntType>& __x); +# 4042 "/usr/include/c++/5/bits/random.h" 3 + template + class negative_binomial_distribution + { + static_assert(std::is_integral<_IntType>::value, + "template argument not an integral type"); + + public: + + typedef _IntType result_type; + + struct param_type + { + typedef negative_binomial_distribution<_IntType> distribution_type; + + explicit + param_type(_IntType __k = 1, double __p = 0.5) + : _M_k(__k), _M_p(__p) + { + ; + } + + _IntType + k() const + { return _M_k; } + + double + p() const + { return _M_p; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_k == __p2._M_k && __p1._M_p == __p2._M_p; } + + private: + _IntType _M_k; + double _M_p; + }; + + explicit + negative_binomial_distribution(_IntType __k = 1, double __p = 0.5) + : _M_param(__k, __p), _M_gd(__k, (1.0 - __p) / __p) + { } + + explicit + negative_binomial_distribution(const param_type& __p) + : _M_param(__p), _M_gd(__p.k(), (1.0 - __p.p()) / __p.p()) + { } + + + + + void + reset() + { _M_gd.reset(); } + + + + + _IntType + k() const + { return _M_param.k(); } + + + + + double + p() const + { return _M_param.p(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng); + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate_impl(__f, __t, __urng); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const negative_binomial_distribution& __d1, + const negative_binomial_distribution& __d2) + { return __d1._M_param == __d2._M_param && __d1._M_gd == __d2._M_gd; } +# 4201 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::negative_binomial_distribution<_IntType1>& __x); +# 4216 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::negative_binomial_distribution<_IntType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng); + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + + std::gamma_distribution _M_gd; + }; + + + + + template + inline bool + operator!=(const std::negative_binomial_distribution<_IntType>& __d1, + const std::negative_binomial_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 4264 "/usr/include/c++/5/bits/random.h" 3 + template + class poisson_distribution + { + static_assert(std::is_integral<_IntType>::value, + "template argument not an integral type"); + + public: + + typedef _IntType result_type; + + struct param_type + { + typedef poisson_distribution<_IntType> distribution_type; + friend class poisson_distribution<_IntType>; + + explicit + param_type(double __mean = 1.0) + : _M_mean(__mean) + { + ; + _M_initialize(); + } + + double + mean() const + { return _M_mean; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_mean == __p2._M_mean; } + + private: + + void + _M_initialize(); + + double _M_mean; + + double _M_lm_thr; + + double _M_lfm, _M_sm, _M_d, _M_scx, _M_1cx, _M_c2b, _M_cb; + + }; + + + explicit + poisson_distribution(double __mean = 1.0) + : _M_param(__mean), _M_nd() + { } + + explicit + poisson_distribution(const param_type& __p) + : _M_param(__p), _M_nd() + { } + + + + + void + reset() + { _M_nd.reset(); } + + + + + double + mean() const + { return _M_param.mean(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return 0; } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + + friend bool + operator==(const poisson_distribution& __d1, + const poisson_distribution& __d2) + + { return __d1._M_param == __d2._M_param && __d1._M_nd == __d2._M_nd; } +# 4421 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::poisson_distribution<_IntType1>& __x); +# 4436 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::poisson_distribution<_IntType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + + + std::normal_distribution _M_nd; + }; + + + + + template + inline bool + operator!=(const std::poisson_distribution<_IntType>& __d1, + const std::poisson_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 4480 "/usr/include/c++/5/bits/random.h" 3 + template + class exponential_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef exponential_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __lambda = _RealType(1)) + : _M_lambda(__lambda) + { + ; + } + + _RealType + lambda() const + { return _M_lambda; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_lambda == __p2._M_lambda; } + + private: + _RealType _M_lambda; + }; + + public: + + + + + explicit + exponential_distribution(const result_type& __lambda = result_type(1)) + : _M_param(__lambda) + { } + + explicit + exponential_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + + + void + reset() { } + + + + + _RealType + lambda() const + { return _M_param.lambda(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + return -std::log(result_type(1) - __aurng()) / __p.lambda(); + } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const exponential_distribution& __d1, + const exponential_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::exponential_distribution<_RealType>& __d1, + const std::exponential_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 4652 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::exponential_distribution<_RealType>& __x); +# 4667 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::exponential_distribution<_RealType>& __x); +# 4682 "/usr/include/c++/5/bits/random.h" 3 + template + class weibull_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef weibull_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __a = _RealType(1), + _RealType __b = _RealType(1)) + : _M_a(__a), _M_b(__b) + { } + + _RealType + a() const + { return _M_a; } + + _RealType + b() const + { return _M_b; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } + + private: + _RealType _M_a; + _RealType _M_b; + }; + + explicit + weibull_distribution(_RealType __a = _RealType(1), + _RealType __b = _RealType(1)) + : _M_param(__a, __b) + { } + + explicit + weibull_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + void + reset() + { } + + + + + _RealType + a() const + { return _M_param.a(); } + + + + + _RealType + b() const + { return _M_param.b(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const weibull_distribution& __d1, + const weibull_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::weibull_distribution<_RealType>& __d1, + const std::weibull_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 4855 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::weibull_distribution<_RealType>& __x); +# 4870 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::weibull_distribution<_RealType>& __x); +# 4885 "/usr/include/c++/5/bits/random.h" 3 + template + class extreme_value_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef extreme_value_distribution<_RealType> distribution_type; + + explicit + param_type(_RealType __a = _RealType(0), + _RealType __b = _RealType(1)) + : _M_a(__a), _M_b(__b) + { } + + _RealType + a() const + { return _M_a; } + + _RealType + b() const + { return _M_b; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } + + private: + _RealType _M_a; + _RealType _M_b; + }; + + explicit + extreme_value_distribution(_RealType __a = _RealType(0), + _RealType __b = _RealType(1)) + : _M_param(__a, __b) + { } + + explicit + extreme_value_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + void + reset() + { } + + + + + _RealType + a() const + { return _M_param.a(); } + + + + + _RealType + b() const + { return _M_param.b(); } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return std::numeric_limits::lowest(); } + + + + + result_type + max() const + { return std::numeric_limits::max(); } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const extreme_value_distribution& __d1, + const extreme_value_distribution& __d2) + { return __d1._M_param == __d2._M_param; } + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::extreme_value_distribution<_RealType>& __d1, + const std::extreme_value_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 5058 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::extreme_value_distribution<_RealType>& __x); +# 5073 "/usr/include/c++/5/bits/random.h" 3 + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::extreme_value_distribution<_RealType>& __x); +# 5085 "/usr/include/c++/5/bits/random.h" 3 + template + class discrete_distribution + { + static_assert(std::is_integral<_IntType>::value, + "template argument not an integral type"); + + public: + + typedef _IntType result_type; + + struct param_type + { + typedef discrete_distribution<_IntType> distribution_type; + friend class discrete_distribution<_IntType>; + + param_type() + : _M_prob(), _M_cp() + { } + + template + param_type(_InputIterator __wbegin, + _InputIterator __wend) + : _M_prob(__wbegin, __wend), _M_cp() + { _M_initialize(); } + + param_type(initializer_list __wil) + : _M_prob(__wil.begin(), __wil.end()), _M_cp() + { _M_initialize(); } + + template + param_type(size_t __nw, double __xmin, double __xmax, + _Func __fw); + + + param_type(const param_type&) = default; + param_type& operator=(const param_type&) = default; + + std::vector + probabilities() const + { return _M_prob.empty() ? std::vector(1, 1.0) : _M_prob; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_prob == __p2._M_prob; } + + private: + void + _M_initialize(); + + std::vector _M_prob; + std::vector _M_cp; + }; + + discrete_distribution() + : _M_param() + { } + + template + discrete_distribution(_InputIterator __wbegin, + _InputIterator __wend) + : _M_param(__wbegin, __wend) + { } + + discrete_distribution(initializer_list __wl) + : _M_param(__wl) + { } + + template + discrete_distribution(size_t __nw, double __xmin, double __xmax, + _Func __fw) + : _M_param(__nw, __xmin, __xmax, __fw) + { } + + explicit + discrete_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + void + reset() + { } + + + + + std::vector + probabilities() const + { + return _M_param._M_prob.empty() + ? std::vector(1, 1.0) : _M_param._M_prob; + } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { return result_type(0); } + + + + + result_type + max() const + { + return _M_param._M_prob.empty() + ? result_type(0) : result_type(_M_param._M_prob.size() - 1); + } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const discrete_distribution& __d1, + const discrete_distribution& __d2) + { return __d1._M_param == __d2._M_param; } +# 5266 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::discrete_distribution<_IntType1>& __x); +# 5282 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::discrete_distribution<_IntType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::discrete_distribution<_IntType>& __d1, + const std::discrete_distribution<_IntType>& __d2) + { return !(__d1 == __d2); } +# 5315 "/usr/include/c++/5/bits/random.h" 3 + template + class piecewise_constant_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef piecewise_constant_distribution<_RealType> distribution_type; + friend class piecewise_constant_distribution<_RealType>; + + param_type() + : _M_int(), _M_den(), _M_cp() + { } + + template + param_type(_InputIteratorB __bfirst, + _InputIteratorB __bend, + _InputIteratorW __wbegin); + + template + param_type(initializer_list<_RealType> __bi, _Func __fw); + + template + param_type(size_t __nw, _RealType __xmin, _RealType __xmax, + _Func __fw); + + + param_type(const param_type&) = default; + param_type& operator=(const param_type&) = default; + + std::vector<_RealType> + intervals() const + { + if (_M_int.empty()) + { + std::vector<_RealType> __tmp(2); + __tmp[1] = _RealType(1); + return __tmp; + } + else + return _M_int; + } + + std::vector + densities() const + { return _M_den.empty() ? std::vector(1, 1.0) : _M_den; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return __p1._M_int == __p2._M_int && __p1._M_den == __p2._M_den; } + + private: + void + _M_initialize(); + + std::vector<_RealType> _M_int; + std::vector _M_den; + std::vector _M_cp; + }; + + explicit + piecewise_constant_distribution() + : _M_param() + { } + + template + piecewise_constant_distribution(_InputIteratorB __bfirst, + _InputIteratorB __bend, + _InputIteratorW __wbegin) + : _M_param(__bfirst, __bend, __wbegin) + { } + + template + piecewise_constant_distribution(initializer_list<_RealType> __bl, + _Func __fw) + : _M_param(__bl, __fw) + { } + + template + piecewise_constant_distribution(size_t __nw, + _RealType __xmin, _RealType __xmax, + _Func __fw) + : _M_param(__nw, __xmin, __xmax, __fw) + { } + + explicit + piecewise_constant_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + void + reset() + { } + + + + + std::vector<_RealType> + intervals() const + { + if (_M_param._M_int.empty()) + { + std::vector<_RealType> __tmp(2); + __tmp[1] = _RealType(1); + return __tmp; + } + else + return _M_param._M_int; + } + + + + + std::vector + densities() const + { + return _M_param._M_den.empty() + ? std::vector(1, 1.0) : _M_param._M_den; + } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { + return _M_param._M_int.empty() + ? result_type(0) : _M_param._M_int.front(); + } + + + + + result_type + max() const + { + return _M_param._M_int.empty() + ? result_type(1) : _M_param._M_int.back(); + } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const piecewise_constant_distribution& __d1, + const piecewise_constant_distribution& __d2) + { return __d1._M_param == __d2._M_param; } +# 5533 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::piecewise_constant_distribution<_RealType1>& __x); +# 5549 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::piecewise_constant_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::piecewise_constant_distribution<_RealType>& __d1, + const std::piecewise_constant_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 5582 "/usr/include/c++/5/bits/random.h" 3 + template + class piecewise_linear_distribution + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + public: + + typedef _RealType result_type; + + struct param_type + { + typedef piecewise_linear_distribution<_RealType> distribution_type; + friend class piecewise_linear_distribution<_RealType>; + + param_type() + : _M_int(), _M_den(), _M_cp(), _M_m() + { } + + template + param_type(_InputIteratorB __bfirst, + _InputIteratorB __bend, + _InputIteratorW __wbegin); + + template + param_type(initializer_list<_RealType> __bl, _Func __fw); + + template + param_type(size_t __nw, _RealType __xmin, _RealType __xmax, + _Func __fw); + + + param_type(const param_type&) = default; + param_type& operator=(const param_type&) = default; + + std::vector<_RealType> + intervals() const + { + if (_M_int.empty()) + { + std::vector<_RealType> __tmp(2); + __tmp[1] = _RealType(1); + return __tmp; + } + else + return _M_int; + } + + std::vector + densities() const + { return _M_den.empty() ? std::vector(2, 1.0) : _M_den; } + + friend bool + operator==(const param_type& __p1, const param_type& __p2) + { return (__p1._M_int == __p2._M_int + && __p1._M_den == __p2._M_den); } + + private: + void + _M_initialize(); + + std::vector<_RealType> _M_int; + std::vector _M_den; + std::vector _M_cp; + std::vector _M_m; + }; + + explicit + piecewise_linear_distribution() + : _M_param() + { } + + template + piecewise_linear_distribution(_InputIteratorB __bfirst, + _InputIteratorB __bend, + _InputIteratorW __wbegin) + : _M_param(__bfirst, __bend, __wbegin) + { } + + template + piecewise_linear_distribution(initializer_list<_RealType> __bl, + _Func __fw) + : _M_param(__bl, __fw) + { } + + template + piecewise_linear_distribution(size_t __nw, + _RealType __xmin, _RealType __xmax, + _Func __fw) + : _M_param(__nw, __xmin, __xmax, __fw) + { } + + explicit + piecewise_linear_distribution(const param_type& __p) + : _M_param(__p) + { } + + + + + void + reset() + { } + + + + + std::vector<_RealType> + intervals() const + { + if (_M_param._M_int.empty()) + { + std::vector<_RealType> __tmp(2); + __tmp[1] = _RealType(1); + return __tmp; + } + else + return _M_param._M_int; + } + + + + + + std::vector + densities() const + { + return _M_param._M_den.empty() + ? std::vector(2, 1.0) : _M_param._M_den; + } + + + + + param_type + param() const + { return _M_param; } + + + + + + void + param(const param_type& __param) + { _M_param = __param; } + + + + + result_type + min() const + { + return _M_param._M_int.empty() + ? result_type(0) : _M_param._M_int.front(); + } + + + + + result_type + max() const + { + return _M_param._M_int.empty() + ? result_type(1) : _M_param._M_int.back(); + } + + + + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng) + { return this->operator()(__urng, _M_param); } + + template + result_type + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p); + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { this->__generate(__f, __t, __urng, _M_param); } + + template + void + __generate(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + template + void + __generate(result_type* __f, result_type* __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { this->__generate_impl(__f, __t, __urng, __p); } + + + + + + friend bool + operator==(const piecewise_linear_distribution& __d1, + const piecewise_linear_distribution& __d2) + { return __d1._M_param == __d2._M_param; } +# 5803 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const std::piecewise_linear_distribution<_RealType1>& __x); +# 5819 "/usr/include/c++/5/bits/random.h" 3 + template + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + std::piecewise_linear_distribution<_RealType1>& __x); + + private: + template + void + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p); + + param_type _M_param; + }; + + + + + + template + inline bool + operator!=(const std::piecewise_linear_distribution<_RealType>& __d1, + const std::piecewise_linear_distribution<_RealType>& __d2) + { return !(__d1 == __d2); } +# 5860 "/usr/include/c++/5/bits/random.h" 3 + class seed_seq + { + + public: + + typedef uint_least32_t result_type; + + + seed_seq() + : _M_v() + { } + + template + seed_seq(std::initializer_list<_IntType> il); + + template + seed_seq(_InputIterator __begin, _InputIterator __end); + + + template + void + generate(_RandomAccessIterator __begin, _RandomAccessIterator __end); + + + size_t size() const + { return _M_v.size(); } + + template + void + param(OutputIterator __dest) const + { std::copy(_M_v.begin(), _M_v.end(), __dest); } + + private: + + std::vector _M_v; + }; + + + + + + +} +# 50 "/usr/include/c++/5/random" 2 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/opt_random.h" 1 3 +# 33 "/usr/include/x86_64-linux-gnu/c++/5/bits/opt_random.h" 3 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 1 3 4 +# 27 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/ia32intrin.h" 1 3 4 +# 29 "/usr/lib/gcc/x86_64-linux-gnu/5/include/ia32intrin.h" 3 4 +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bsfd (int __X) +{ + return __builtin_ctz (__X); +} + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bsrd (int __X) +{ + return __builtin_ia32_bsrsi (__X); +} + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bswapd (int __X) +{ + return __builtin_bswap32 (__X); +} + + +#pragma GCC push_options +#pragma GCC target("sse4.2") + + + + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__crc32b (unsigned int __C, unsigned char __V) +{ + return __builtin_ia32_crc32qi (__C, __V); +} + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__crc32w (unsigned int __C, unsigned short __V) +{ + return __builtin_ia32_crc32hi (__C, __V); +} + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__crc32d (unsigned int __C, unsigned int __V) +{ + return __builtin_ia32_crc32si (__C, __V); +} + + + +#pragma GCC pop_options + + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__popcntd (unsigned int __X) +{ + return __builtin_popcount (__X); +} + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rdpmc (int __S) +{ + return __builtin_ia32_rdpmc (__S); +} + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rdtsc (void) +{ + return __builtin_ia32_rdtsc (); +} + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rdtscp (unsigned int *__A) +{ + return __builtin_ia32_rdtscp (__A); +} + + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rolb (unsigned char __X, int __C) +{ + return __builtin_ia32_rolqi (__X, __C); +} + + +extern __inline unsigned short +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rolw (unsigned short __X, int __C) +{ + return __builtin_ia32_rolhi (__X, __C); +} + + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rold (unsigned int __X, int __C) +{ + return (__X << __C) | (__X >> (32 - __C)); +} + + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rorb (unsigned char __X, int __C) +{ + return __builtin_ia32_rorqi (__X, __C); +} + + +extern __inline unsigned short +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rorw (unsigned short __X, int __C) +{ + return __builtin_ia32_rorhi (__X, __C); +} + + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rord (unsigned int __X, int __C) +{ + return (__X >> __C) | (__X << (32 - __C)); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__pause (void) +{ + __builtin_ia32_pause (); +} + + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bsfq (long long __X) +{ + return __builtin_ctzll (__X); +} + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bsrq (long long __X) +{ + return __builtin_ia32_bsrdi (__X); +} + + +extern __inline long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bswapq (long long __X) +{ + return __builtin_bswap64 (__X); +} + + +#pragma GCC push_options +#pragma GCC target("sse4.2") + + + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__crc32q (unsigned long long __C, unsigned long long __V) +{ + return __builtin_ia32_crc32di (__C, __V); +} + + + +#pragma GCC pop_options + + + +extern __inline long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__popcntq (unsigned long long __X) +{ + return __builtin_popcountll (__X); +} + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rolq (unsigned long long __X, int __C) +{ + return (__X << __C) | (__X >> (64 - __C)); +} + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__rorq (unsigned long long __X, int __C) +{ + return (__X >> __C) | (__X << (64 - __C)); +} + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__readeflags (void) +{ + return __builtin_ia32_readeflags_u64 (); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__writeeflags (unsigned long long X) +{ + __builtin_ia32_writeeflags_u64 (X); +} +# 28 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mmintrin.h" 1 3 4 +# 38 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mmintrin.h" 3 4 +typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__)); + + +typedef int __v2si __attribute__ ((__vector_size__ (8))); +typedef short __v4hi __attribute__ ((__vector_size__ (8))); +typedef char __v8qi __attribute__ ((__vector_size__ (8))); +typedef long long __v1di __attribute__ ((__vector_size__ (8))); +typedef float __v2sf __attribute__ ((__vector_size__ (8))); + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_empty (void) +{ + __builtin_ia32_emms (); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_empty (void) +{ + _mm_empty (); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi32_si64 (int __i) +{ + return (__m64) __builtin_ia32_vec_init_v2si (__i, 0); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_from_int (int __i) +{ + return _mm_cvtsi32_si64 (__i); +} + + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_from_int64 (long long __i) +{ + return (__m64) __i; +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64_m64 (long long __i) +{ + return (__m64) __i; +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64x_si64 (long long __i) +{ + return (__m64) __i; +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_pi64x (long long __i) +{ + return (__m64) __i; +} + + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64_si32 (__m64 __i) +{ + return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_to_int (__m64 __i) +{ + return _mm_cvtsi64_si32 (__i); +} + + + + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_to_int64 (__m64 __i) +{ + return (long long)__i; +} + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtm64_si64 (__m64 __i) +{ + return (long long)__i; +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64_si64x (__m64 __i) +{ + return (long long)__i; +} + + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packs_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_packsswb (__m64 __m1, __m64 __m2) +{ + return _mm_packs_pi16 (__m1, __m2); +} + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packs_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_packssdw (__m64 __m1, __m64 __m2) +{ + return _mm_packs_pi32 (__m1, __m2); +} + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packs_pu16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_packuswb (__m64 __m1, __m64 __m2) +{ + return _mm_packs_pu16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_punpckhbw (__m64 __m1, __m64 __m2) +{ + return _mm_unpackhi_pi8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_punpckhwd (__m64 __m1, __m64 __m2) +{ + return _mm_unpackhi_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_punpckhdq (__m64 __m1, __m64 __m2) +{ + return _mm_unpackhi_pi32 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_punpcklbw (__m64 __m1, __m64 __m2) +{ + return _mm_unpacklo_pi8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_punpcklwd ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_punpcklwd (__m64 __m1, __m64 __m2) +{ + return _mm_unpacklo_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_punpckldq ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_punpckldq (__m64 __m1, __m64 __m2) +{ + return _mm_unpacklo_pi32 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddb (__m64 __m1, __m64 __m2) +{ + return _mm_add_pi8 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddw (__m64 __m1, __m64 __m2) +{ + return _mm_add_pi16 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddd ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddd (__m64 __m1, __m64 __m2) +{ + return _mm_add_pi32 (__m1, __m2); +} +# 315 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mmintrin.h" 3 4 +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_si64 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddq ((__v1di)__m1, (__v1di)__m2); +} + + + + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddsb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddsb (__m64 __m1, __m64 __m2) +{ + return _mm_adds_pi8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddsw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddsw (__m64 __m1, __m64 __m2) +{ + return _mm_adds_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_pu8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddusb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddusb (__m64 __m1, __m64 __m2) +{ + return _mm_adds_pu8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_pu16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_paddusw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_paddusw (__m64 __m1, __m64 __m2) +{ + return _mm_adds_pu16 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubb (__m64 __m1, __m64 __m2) +{ + return _mm_sub_pi8 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubw (__m64 __m1, __m64 __m2) +{ + return _mm_sub_pi16 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubd ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubd (__m64 __m1, __m64 __m2) +{ + return _mm_sub_pi32 (__m1, __m2); +} +# 427 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mmintrin.h" 3 4 +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_si64 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubq ((__v1di)__m1, (__v1di)__m2); +} + + + + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubsb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubsb (__m64 __m1, __m64 __m2) +{ + return _mm_subs_pi8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubsw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubsw (__m64 __m1, __m64 __m2) +{ + return _mm_subs_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_pu8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubusb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubusb (__m64 __m1, __m64 __m2) +{ + return _mm_subs_pu8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_pu16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_psubusw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psubusw (__m64 __m1, __m64 __m2) +{ + return _mm_subs_pu16 (__m1, __m2); +} + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_madd_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pmaddwd ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmaddwd (__m64 __m1, __m64 __m2) +{ + return _mm_madd_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mulhi_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pmulhw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmulhw (__m64 __m1, __m64 __m2) +{ + return _mm_mulhi_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mullo_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pmullw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmullw (__m64 __m1, __m64 __m2) +{ + return _mm_mullo_pi16 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sll_pi16 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psllw ((__v4hi)__m, (__v4hi)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psllw (__m64 __m, __m64 __count) +{ + return _mm_sll_pi16 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_slli_pi16 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psllwi ((__v4hi)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psllwi (__m64 __m, int __count) +{ + return _mm_slli_pi16 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sll_pi32 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_pslld ((__v2si)__m, (__v2si)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pslld (__m64 __m, __m64 __count) +{ + return _mm_sll_pi32 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_slli_pi32 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_pslldi ((__v2si)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pslldi (__m64 __m, int __count) +{ + return _mm_slli_pi32 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sll_si64 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psllq ((__v1di)__m, (__v1di)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psllq (__m64 __m, __m64 __count) +{ + return _mm_sll_si64 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_slli_si64 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psllqi ((__v1di)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psllqi (__m64 __m, int __count) +{ + return _mm_slli_si64 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sra_pi16 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psraw ((__v4hi)__m, (__v4hi)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psraw (__m64 __m, __m64 __count) +{ + return _mm_sra_pi16 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srai_pi16 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psrawi ((__v4hi)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrawi (__m64 __m, int __count) +{ + return _mm_srai_pi16 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sra_pi32 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psrad ((__v2si)__m, (__v2si)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrad (__m64 __m, __m64 __count) +{ + return _mm_sra_pi32 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srai_pi32 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psradi ((__v2si)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psradi (__m64 __m, int __count) +{ + return _mm_srai_pi32 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srl_pi16 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, (__v4hi)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrlw (__m64 __m, __m64 __count) +{ + return _mm_srl_pi16 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srli_pi16 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psrlwi ((__v4hi)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrlwi (__m64 __m, int __count) +{ + return _mm_srli_pi16 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srl_pi32 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psrld ((__v2si)__m, (__v2si)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrld (__m64 __m, __m64 __count) +{ + return _mm_srl_pi32 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srli_pi32 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psrldi ((__v2si)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrldi (__m64 __m, int __count) +{ + return _mm_srli_pi32 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srl_si64 (__m64 __m, __m64 __count) +{ + return (__m64) __builtin_ia32_psrlq ((__v1di)__m, (__v1di)__count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrlq (__m64 __m, __m64 __count) +{ + return _mm_srl_si64 (__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srli_si64 (__m64 __m, int __count) +{ + return (__m64) __builtin_ia32_psrlqi ((__v1di)__m, __count); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psrlqi (__m64 __m, int __count) +{ + return _mm_srli_si64 (__m, __count); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_and_si64 (__m64 __m1, __m64 __m2) +{ + return __builtin_ia32_pand (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pand (__m64 __m1, __m64 __m2) +{ + return _mm_and_si64 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_andnot_si64 (__m64 __m1, __m64 __m2) +{ + return __builtin_ia32_pandn (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pandn (__m64 __m1, __m64 __m2) +{ + return _mm_andnot_si64 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_or_si64 (__m64 __m1, __m64 __m2) +{ + return __builtin_ia32_por (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_por (__m64 __m1, __m64 __m2) +{ + return _mm_or_si64 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_xor_si64 (__m64 __m1, __m64 __m2) +{ + return __builtin_ia32_pxor (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pxor (__m64 __m1, __m64 __m2) +{ + return _mm_xor_si64 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pcmpeqb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pcmpeqb (__m64 __m1, __m64 __m2) +{ + return _mm_cmpeq_pi8 (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_pi8 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pcmpgtb ((__v8qi)__m1, (__v8qi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pcmpgtb (__m64 __m1, __m64 __m2) +{ + return _mm_cmpgt_pi8 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pcmpeqw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pcmpeqw (__m64 __m1, __m64 __m2) +{ + return _mm_cmpeq_pi16 (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_pi16 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pcmpgtw ((__v4hi)__m1, (__v4hi)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pcmpgtw (__m64 __m1, __m64 __m2) +{ + return _mm_cmpgt_pi16 (__m1, __m2); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pcmpeqd ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pcmpeqd (__m64 __m1, __m64 __m2) +{ + return _mm_cmpeq_pi32 (__m1, __m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_pi32 (__m64 __m1, __m64 __m2) +{ + return (__m64) __builtin_ia32_pcmpgtd ((__v2si)__m1, (__v2si)__m2); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pcmpgtd (__m64 __m1, __m64 __m2) +{ + return _mm_cmpgt_pi32 (__m1, __m2); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setzero_si64 (void) +{ + return (__m64)0LL; +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_pi32 (int __i1, int __i0) +{ + return (__m64) __builtin_ia32_vec_init_v2si (__i0, __i1); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_pi16 (short __w3, short __w2, short __w1, short __w0) +{ + return (__m64) __builtin_ia32_vec_init_v4hi (__w0, __w1, __w2, __w3); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, + char __b3, char __b2, char __b1, char __b0) +{ + return (__m64) __builtin_ia32_vec_init_v8qi (__b0, __b1, __b2, __b3, + __b4, __b5, __b6, __b7); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_pi32 (int __i0, int __i1) +{ + return _mm_set_pi32 (__i1, __i0); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_pi16 (short __w0, short __w1, short __w2, short __w3) +{ + return _mm_set_pi16 (__w3, __w2, __w1, __w0); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_pi8 (char __b0, char __b1, char __b2, char __b3, + char __b4, char __b5, char __b6, char __b7) +{ + return _mm_set_pi8 (__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_pi32 (int __i) +{ + return _mm_set_pi32 (__i, __i); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_pi16 (short __w) +{ + return _mm_set_pi16 (__w, __w, __w, __w); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_pi8 (char __b) +{ + return _mm_set_pi8 (__b, __b, __b, __b, __b, __b, __b, __b); +} +# 30 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mm_malloc.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mm_malloc.h" 3 4 +extern "C" int posix_memalign (void **, size_t, size_t) throw (); + + +static __inline void * +_mm_malloc (size_t size, size_t alignment) +{ + void *ptr; + if (alignment == 1) + return malloc (size); + if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4)) + alignment = sizeof (void *); + if (posix_memalign (&ptr, alignment, size) == 0) + return ptr; + else + return __null; +} + +static __inline void +_mm_free (void * ptr) +{ + free (ptr); +} +# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 2 3 4 + + +enum _mm_hint +{ + + _MM_HINT_ET0 = 7, + _MM_HINT_ET1 = 6, + _MM_HINT_T0 = 3, + _MM_HINT_T1 = 2, + _MM_HINT_T2 = 1, + _MM_HINT_NTA = 0 +}; +# 69 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); + + +typedef float __v4sf __attribute__ ((__vector_size__ (16))); +# 106 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_undefined_ps (void) +{ + __m128 __Y = __Y; + return __Y; +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setzero_ps (void) +{ + return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f }; +} + + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_addss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_subss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_mulss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_div_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_divss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sqrt_ss (__m128 __A) +{ + return (__m128) __builtin_ia32_sqrtss ((__v4sf)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rcp_ss (__m128 __A) +{ + return (__m128) __builtin_ia32_rcpss ((__v4sf)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rsqrt_ss (__m128 __A) +{ + return (__m128) __builtin_ia32_rsqrtss ((__v4sf)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_minss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_maxss ((__v4sf)__A, (__v4sf)__B); +} + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_ps (__m128 __A, __m128 __B) +{ + return (__m128) ((__v4sf)__A + (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_ps (__m128 __A, __m128 __B) +{ + return (__m128) ((__v4sf)__A - (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_ps (__m128 __A, __m128 __B) +{ + return (__m128) ((__v4sf)__A * (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_div_ps (__m128 __A, __m128 __B) +{ + return (__m128) ((__v4sf)__A / (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sqrt_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_sqrtps ((__v4sf)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rcp_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_rcpps ((__v4sf)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rsqrt_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_rsqrtps ((__v4sf)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_minps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_maxps ((__v4sf)__A, (__v4sf)__B); +} + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_and_ps (__m128 __A, __m128 __B) +{ + return __builtin_ia32_andps (__A, __B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_andnot_ps (__m128 __A, __m128 __B) +{ + return __builtin_ia32_andnps (__A, __B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_or_ps (__m128 __A, __m128 __B) +{ + return __builtin_ia32_orps (__A, __B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_xor_ps (__m128 __A, __m128 __B) +{ + return __builtin_ia32_xorps (__A, __B); +} + + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpeqss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpltss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpless ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movss ((__v4sf) __A, + (__v4sf) + __builtin_ia32_cmpltss ((__v4sf) __B, + (__v4sf) + __A)); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movss ((__v4sf) __A, + (__v4sf) + __builtin_ia32_cmpless ((__v4sf) __B, + (__v4sf) + __A)); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpneqss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnlt_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpnltss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnle_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpnless ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpngt_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movss ((__v4sf) __A, + (__v4sf) + __builtin_ia32_cmpnltss ((__v4sf) __B, + (__v4sf) + __A)); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnge_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movss ((__v4sf) __A, + (__v4sf) + __builtin_ia32_cmpnless ((__v4sf) __B, + (__v4sf) + __A)); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpord_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpordss ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpunord_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpunordss ((__v4sf)__A, (__v4sf)__B); +} + + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpeqps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpltps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpleps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpgtps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpgeps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpneqps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnlt_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpnltps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnle_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpnleps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpngt_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpngtps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnge_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpngeps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpord_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpordps ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpunord_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_cmpunordps ((__v4sf)__A, (__v4sf)__B); +} + + + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comieq_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_comieq ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comilt_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_comilt ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comile_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_comile ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comigt_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_comigt ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comige_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_comige ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comineq_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_comineq ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomieq_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_ucomieq ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomilt_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_ucomilt ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomile_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_ucomile ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomigt_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_ucomigt ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomige_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_ucomige ((__v4sf)__A, (__v4sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomineq_ss (__m128 __A, __m128 __B) +{ + return __builtin_ia32_ucomineq ((__v4sf)__A, (__v4sf)__B); +} + + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_si32 (__m128 __A) +{ + return __builtin_ia32_cvtss2si ((__v4sf) __A); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvt_ss2si (__m128 __A) +{ + return _mm_cvtss_si32 (__A); +} + + + + + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_si64 (__m128 __A) +{ + return __builtin_ia32_cvtss2si64 ((__v4sf) __A); +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_si64x (__m128 __A) +{ + return __builtin_ia32_cvtss2si64 ((__v4sf) __A); +} + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_pi32 (__m128 __A) +{ + return (__m64) __builtin_ia32_cvtps2pi ((__v4sf) __A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvt_ps2pi (__m128 __A) +{ + return _mm_cvtps_pi32 (__A); +} + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_si32 (__m128 __A) +{ + return __builtin_ia32_cvttss2si ((__v4sf) __A); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtt_ss2si (__m128 __A) +{ + return _mm_cvttss_si32 (__A); +} + + + + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_si64 (__m128 __A) +{ + return __builtin_ia32_cvttss2si64 ((__v4sf) __A); +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_si64x (__m128 __A) +{ + return __builtin_ia32_cvttss2si64 ((__v4sf) __A); +} + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttps_pi32 (__m128 __A) +{ + return (__m64) __builtin_ia32_cvttps2pi ((__v4sf) __A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtt_ps2pi (__m128 __A) +{ + return _mm_cvttps_pi32 (__A); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi32_ss (__m128 __A, int __B) +{ + return (__m128) __builtin_ia32_cvtsi2ss ((__v4sf) __A, __B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvt_si2ss (__m128 __A, int __B) +{ + return _mm_cvtsi32_ss (__A, __B); +} + + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64_ss (__m128 __A, long long __B) +{ + return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64x_ss (__m128 __A, long long __B) +{ + return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B); +} + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpi32_ps (__m128 __A, __m64 __B) +{ + return (__m128) __builtin_ia32_cvtpi2ps ((__v4sf) __A, (__v2si)__B); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvt_pi2ps (__m128 __A, __m64 __B) +{ + return _mm_cvtpi32_ps (__A, __B); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpi16_ps (__m64 __A) +{ + __v4hi __sign; + __v2si __hisi, __losi; + __v4sf __zero, __ra, __rb; + + + + + __sign = __builtin_ia32_pcmpgtw ((__v4hi)0LL, (__v4hi)__A); + + + __losi = (__v2si) __builtin_ia32_punpcklwd ((__v4hi)__A, __sign); + __hisi = (__v2si) __builtin_ia32_punpckhwd ((__v4hi)__A, __sign); + + + __zero = (__v4sf) _mm_setzero_ps (); + __ra = __builtin_ia32_cvtpi2ps (__zero, __losi); + __rb = __builtin_ia32_cvtpi2ps (__ra, __hisi); + + return (__m128) __builtin_ia32_movlhps (__ra, __rb); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpu16_ps (__m64 __A) +{ + __v2si __hisi, __losi; + __v4sf __zero, __ra, __rb; + + + __losi = (__v2si) __builtin_ia32_punpcklwd ((__v4hi)__A, (__v4hi)0LL); + __hisi = (__v2si) __builtin_ia32_punpckhwd ((__v4hi)__A, (__v4hi)0LL); + + + __zero = (__v4sf) _mm_setzero_ps (); + __ra = __builtin_ia32_cvtpi2ps (__zero, __losi); + __rb = __builtin_ia32_cvtpi2ps (__ra, __hisi); + + return (__m128) __builtin_ia32_movlhps (__ra, __rb); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpi8_ps (__m64 __A) +{ + __v8qi __sign; + + + + + __sign = __builtin_ia32_pcmpgtb ((__v8qi)0LL, (__v8qi)__A); + + + __A = (__m64) __builtin_ia32_punpcklbw ((__v8qi)__A, __sign); + + return _mm_cvtpi16_ps(__A); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpu8_ps(__m64 __A) +{ + __A = (__m64) __builtin_ia32_punpcklbw ((__v8qi)__A, (__v8qi)0LL); + return _mm_cvtpu16_ps(__A); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpi32x2_ps(__m64 __A, __m64 __B) +{ + __v4sf __zero = (__v4sf) _mm_setzero_ps (); + __v4sf __sfa = __builtin_ia32_cvtpi2ps (__zero, (__v2si)__A); + __v4sf __sfb = __builtin_ia32_cvtpi2ps (__sfa, (__v2si)__B); + return (__m128) __builtin_ia32_movlhps (__sfa, __sfb); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_pi16(__m128 __A) +{ + __v4sf __hisf = (__v4sf)__A; + __v4sf __losf = __builtin_ia32_movhlps (__hisf, __hisf); + __v2si __hisi = __builtin_ia32_cvtps2pi (__hisf); + __v2si __losi = __builtin_ia32_cvtps2pi (__losf); + return (__m64) __builtin_ia32_packssdw (__hisi, __losi); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_pi8(__m128 __A) +{ + __v4hi __tmp = (__v4hi) _mm_cvtps_pi16 (__A); + return (__m64) __builtin_ia32_packsswb (__tmp, (__v4hi)0LL); +} +# 752 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_unpckhps ((__v4sf)__A, (__v4sf)__B); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_unpcklps ((__v4sf)__A, (__v4sf)__B); +} + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadh_pi (__m128 __A, __m64 const *__P) +{ + return (__m128) __builtin_ia32_loadhps ((__v4sf)__A, (const __v2sf *)__P); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storeh_pi (__m64 *__P, __m128 __A) +{ + __builtin_ia32_storehps ((__v2sf *)__P, (__v4sf)__A); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movehl_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movhlps ((__v4sf)__A, (__v4sf)__B); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movelh_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movlhps ((__v4sf)__A, (__v4sf)__B); +} + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadl_pi (__m128 __A, __m64 const *__P) +{ + return (__m128) __builtin_ia32_loadlps ((__v4sf)__A, (const __v2sf *)__P); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storel_pi (__m64 *__P, __m128 __A) +{ + __builtin_ia32_storelps ((__v2sf *)__P, (__v4sf)__A); +} + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movemask_ps (__m128 __A) +{ + return __builtin_ia32_movmskps ((__v4sf)__A); +} + + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_getcsr (void) +{ + return __builtin_ia32_stmxcsr (); +} + + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_GET_EXCEPTION_STATE (void) +{ + return _mm_getcsr() & 0x003f; +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_GET_EXCEPTION_MASK (void) +{ + return _mm_getcsr() & 0x1f80; +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_GET_ROUNDING_MODE (void) +{ + return _mm_getcsr() & 0x6000; +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_GET_FLUSH_ZERO_MODE (void) +{ + return _mm_getcsr() & 0x8000; +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setcsr (unsigned int __I) +{ + __builtin_ia32_ldmxcsr (__I); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_SET_EXCEPTION_STATE(unsigned int __mask) +{ + _mm_setcsr((_mm_getcsr() & ~0x003f) | __mask); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_SET_EXCEPTION_MASK (unsigned int __mask) +{ + _mm_setcsr((_mm_getcsr() & ~0x1f80) | __mask); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_SET_ROUNDING_MODE (unsigned int __mode) +{ + _mm_setcsr((_mm_getcsr() & ~0x6000) | __mode); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_MM_SET_FLUSH_ZERO_MODE (unsigned int __mode) +{ + _mm_setcsr((_mm_getcsr() & ~0x8000) | __mode); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_ss (float __F) +{ + return __extension__ (__m128)(__v4sf){ __F, 0.0f, 0.0f, 0.0f }; +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_ps (float __F) +{ + return __extension__ (__m128)(__v4sf){ __F, __F, __F, __F }; +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_ps1 (float __F) +{ + return _mm_set1_ps (__F); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_ss (float const *__P) +{ + return _mm_set_ss (*__P); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load1_ps (float const *__P) +{ + return _mm_set1_ps (*__P); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_ps1 (float const *__P) +{ + return _mm_load1_ps (__P); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_ps (float const *__P) +{ + return (__m128) *(__v4sf *)__P; +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadu_ps (float const *__P) +{ + return (__m128) __builtin_ia32_loadups (__P); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadr_ps (float const *__P) +{ + __v4sf __tmp = *(__v4sf *)__P; + return (__m128) __builtin_ia32_shufps (__tmp, __tmp, (((0) << 6) | ((1) << 4) | ((2) << 2) | (3))); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_ps (const float __Z, const float __Y, const float __X, const float __W) +{ + return __extension__ (__m128)(__v4sf){ __W, __X, __Y, __Z }; +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_ps (float __Z, float __Y, float __X, float __W) +{ + return __extension__ (__m128)(__v4sf){ __Z, __Y, __X, __W }; +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_ss (float *__P, __m128 __A) +{ + *__P = ((__v4sf)__A)[0]; +} + +extern __inline float __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_f32 (__m128 __A) +{ + return ((__v4sf)__A)[0]; +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_ps (float *__P, __m128 __A) +{ + *(__v4sf *)__P = (__v4sf)__A; +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storeu_ps (float *__P, __m128 __A) +{ + __builtin_ia32_storeups (__P, (__v4sf)__A); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store1_ps (float *__P, __m128 __A) +{ + __v4sf __va = (__v4sf)__A; + __v4sf __tmp = __builtin_ia32_shufps (__va, __va, (((0) << 6) | ((0) << 4) | ((0) << 2) | (0))); + _mm_storeu_ps (__P, __tmp); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_ps1 (float *__P, __m128 __A) +{ + _mm_store1_ps (__P, __A); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storer_ps (float *__P, __m128 __A) +{ + __v4sf __va = (__v4sf)__A; + __v4sf __tmp = __builtin_ia32_shufps (__va, __va, (((0) << 6) | ((1) << 4) | ((2) << 2) | (3))); + _mm_store_ps (__P, __tmp); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_move_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movss ((__v4sf)__A, (__v4sf)__B); +} +# 1057 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_pi16 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pmaxsw ((__v4hi)__A, (__v4hi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmaxsw (__m64 __A, __m64 __B) +{ + return _mm_max_pi16 (__A, __B); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_pu8 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pmaxub ((__v8qi)__A, (__v8qi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmaxub (__m64 __A, __m64 __B) +{ + return _mm_max_pu8 (__A, __B); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_pi16 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pminsw ((__v4hi)__A, (__v4hi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pminsw (__m64 __A, __m64 __B) +{ + return _mm_min_pi16 (__A, __B); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_pu8 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pminub ((__v8qi)__A, (__v8qi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pminub (__m64 __A, __m64 __B) +{ + return _mm_min_pu8 (__A, __B); +} + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movemask_pi8 (__m64 __A) +{ + return __builtin_ia32_pmovmskb ((__v8qi)__A); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmovmskb (__m64 __A) +{ + return _mm_movemask_pi8 (__A); +} + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mulhi_pu16 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pmulhuw ((__v4hi)__A, (__v4hi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmulhuw (__m64 __A, __m64 __B) +{ + return _mm_mulhi_pu16 (__A, __B); +} +# 1159 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) +{ + __builtin_ia32_maskmovq ((__v8qi)__A, (__v8qi)__N, __P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_maskmovq (__m64 __A, __m64 __N, char *__P) +{ + _mm_maskmove_si64 (__A, __N, __P); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_avg_pu8 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pavgb ((__v8qi)__A, (__v8qi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pavgb (__m64 __A, __m64 __B) +{ + return _mm_avg_pu8 (__A, __B); +} + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_avg_pu16 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_pavgw ((__v4hi)__A, (__v4hi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pavgw (__m64 __A, __m64 __B) +{ + return _mm_avg_pu16 (__A, __B); +} + + + + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sad_pu8 (__m64 __A, __m64 __B) +{ + return (__m64) __builtin_ia32_psadbw ((__v8qi)__A, (__v8qi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_psadbw (__m64 __A, __m64 __B) +{ + return _mm_sad_pu8 (__A, __B); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_pi (__m64 *__P, __m64 __A) +{ + __builtin_ia32_movntq ((unsigned long long *)__P, (unsigned long long)__A); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_ps (float *__P, __m128 __A) +{ + __builtin_ia32_movntps (__P, (__v4sf)__A); +} + + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sfence (void) +{ + __builtin_ia32_sfence (); +} +# 1249 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 1 3 4 +# 31 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 2 3 4 +# 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 3 4 +typedef double __v2df __attribute__ ((__vector_size__ (16))); +typedef long long __v2di __attribute__ ((__vector_size__ (16))); +typedef unsigned long long __v2du __attribute__ ((__vector_size__ (16))); +typedef int __v4si __attribute__ ((__vector_size__ (16))); +typedef unsigned int __v4su __attribute__ ((__vector_size__ (16))); +typedef short __v8hi __attribute__ ((__vector_size__ (16))); +typedef unsigned short __v8hu __attribute__ ((__vector_size__ (16))); +typedef char __v16qi __attribute__ ((__vector_size__ (16))); +typedef unsigned char __v16qu __attribute__ ((__vector_size__ (16))); + + + +typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); +typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__)); + + + + + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_sd (double __F) +{ + return __extension__ (__m128d){ __F, 0.0 }; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_pd (double __F) +{ + return __extension__ (__m128d){ __F, __F }; +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_pd1 (double __F) +{ + return _mm_set1_pd (__F); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_pd (double __W, double __X) +{ + return __extension__ (__m128d){ __X, __W }; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_pd (double __W, double __X) +{ + return __extension__ (__m128d){ __W, __X }; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_undefined_pd (void) +{ + __m128d __Y = __Y; + return __Y; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setzero_pd (void) +{ + return __extension__ (__m128d){ 0.0, 0.0 }; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_move_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_pd (double const *__P) +{ + return *(__m128d *)__P; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadu_pd (double const *__P) +{ + return __builtin_ia32_loadupd (__P); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load1_pd (double const *__P) +{ + return _mm_set1_pd (*__P); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_sd (double const *__P) +{ + return _mm_set_sd (*__P); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_pd1 (double const *__P) +{ + return _mm_load1_pd (__P); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadr_pd (double const *__P) +{ + __m128d __tmp = _mm_load_pd (__P); + return __builtin_ia32_shufpd (__tmp, __tmp, (((0) << 1) | (1))); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_pd (double *__P, __m128d __A) +{ + *(__m128d *)__P = __A; +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storeu_pd (double *__P, __m128d __A) +{ + __builtin_ia32_storeupd (__P, __A); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_sd (double *__P, __m128d __A) +{ + *__P = ((__v2df)__A)[0]; +} + +extern __inline double __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_f64 (__m128d __A) +{ + return ((__v2df)__A)[0]; +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storel_pd (double *__P, __m128d __A) +{ + _mm_store_sd (__P, __A); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storeh_pd (double *__P, __m128d __A) +{ + *__P = ((__v2df)__A)[1]; +} + + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store1_pd (double *__P, __m128d __A) +{ + _mm_store_pd (__P, __builtin_ia32_shufpd (__A, __A, (((0) << 1) | (0)))); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_pd1 (double *__P, __m128d __A) +{ + _mm_store1_pd (__P, __A); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storer_pd (double *__P, __m128d __A) +{ + _mm_store_pd (__P, __builtin_ia32_shufpd (__A, __A, (((0) << 1) | (1)))); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi128_si32 (__m128i __A) +{ + return __builtin_ia32_vec_ext_v4si ((__v4si)__A, 0); +} + + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi128_si64 (__m128i __A) +{ + return ((__v2di)__A)[0]; +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi128_si64x (__m128i __A) +{ + return ((__v2di)__A)[0]; +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_pd (__m128d __A, __m128d __B) +{ + return (__m128d) ((__v2df)__A + (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_addsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_pd (__m128d __A, __m128d __B) +{ + return (__m128d) ((__v2df)__A - (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_subsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_pd (__m128d __A, __m128d __B) +{ + return (__m128d) ((__v2df)__A * (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_mulsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_div_pd (__m128d __A, __m128d __B) +{ + return (__m128d) ((__v2df)__A / (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_div_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_divsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sqrt_pd (__m128d __A) +{ + return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sqrt_sd (__m128d __A, __m128d __B) +{ + __v2df __tmp = __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B); + return (__m128d)__builtin_ia32_sqrtsd ((__v2df)__tmp); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_minpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_minsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_maxpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_maxsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_and_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_andpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_andnot_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_andnpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_or_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_orpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_xor_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_xorpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpeqpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpltpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmplepd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpgtpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpgepd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpneqpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnlt_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpnltpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnle_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpnlepd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpngt_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpngtpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnge_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpngepd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpord_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpordpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpunord_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpunordpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpeqsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpltsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmplesd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_movsd ((__v2df) __A, + (__v2df) + __builtin_ia32_cmpltsd ((__v2df) __B, + (__v2df) + __A)); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_movsd ((__v2df) __A, + (__v2df) + __builtin_ia32_cmplesd ((__v2df) __B, + (__v2df) + __A)); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpneqsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnlt_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpnltsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnle_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpnlesd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpngt_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_movsd ((__v2df) __A, + (__v2df) + __builtin_ia32_cmpnltsd ((__v2df) __B, + (__v2df) + __A)); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpnge_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_movsd ((__v2df) __A, + (__v2df) + __builtin_ia32_cmpnlesd ((__v2df) __B, + (__v2df) + __A)); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpord_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpordsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpunord_sd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_cmpunordsd ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comieq_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_comisdeq ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comilt_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_comisdlt ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comile_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_comisdle ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comigt_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_comisdgt ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comige_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_comisdge ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comineq_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_comisdneq ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomieq_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_ucomisdeq ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomilt_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_ucomisdlt ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomile_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_ucomisdle ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomigt_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_ucomisdgt ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomige_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_ucomisdge ((__v2df)__A, (__v2df)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_ucomineq_sd (__m128d __A, __m128d __B) +{ + return __builtin_ia32_ucomisdneq ((__v2df)__A, (__v2df)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_epi64x (long long __q1, long long __q0) +{ + return __extension__ (__m128i)(__v2di){ __q0, __q1 }; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_epi64 (__m64 __q1, __m64 __q0) +{ + return _mm_set_epi64x ((long long)__q1, (long long)__q0); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0) +{ + return __extension__ (__m128i)(__v4si){ __q0, __q1, __q2, __q3 }; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_epi16 (short __q7, short __q6, short __q5, short __q4, + short __q3, short __q2, short __q1, short __q0) +{ + return __extension__ (__m128i)(__v8hi){ + __q0, __q1, __q2, __q3, __q4, __q5, __q6, __q7 }; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set_epi8 (char __q15, char __q14, char __q13, char __q12, + char __q11, char __q10, char __q09, char __q08, + char __q07, char __q06, char __q05, char __q04, + char __q03, char __q02, char __q01, char __q00) +{ + return __extension__ (__m128i)(__v16qi){ + __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07, + __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15 + }; +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_epi64x (long long __A) +{ + return _mm_set_epi64x (__A, __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_epi64 (__m64 __A) +{ + return _mm_set_epi64 (__A, __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_epi32 (int __A) +{ + return _mm_set_epi32 (__A, __A, __A, __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_epi16 (short __A) +{ + return _mm_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_set1_epi8 (char __A) +{ + return _mm_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A); +} + + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_epi64 (__m64 __q0, __m64 __q1) +{ + return _mm_set_epi64 (__q1, __q0); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_epi32 (int __q0, int __q1, int __q2, int __q3) +{ + return _mm_set_epi32 (__q3, __q2, __q1, __q0); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_epi16 (short __q0, short __q1, short __q2, short __q3, + short __q4, short __q5, short __q6, short __q7) +{ + return _mm_set_epi16 (__q7, __q6, __q5, __q4, __q3, __q2, __q1, __q0); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03, + char __q04, char __q05, char __q06, char __q07, + char __q08, char __q09, char __q10, char __q11, + char __q12, char __q13, char __q14, char __q15) +{ + return _mm_set_epi8 (__q15, __q14, __q13, __q12, __q11, __q10, __q09, __q08, + __q07, __q06, __q05, __q04, __q03, __q02, __q01, __q00); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_load_si128 (__m128i const *__P) +{ + return *__P; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadu_si128 (__m128i const *__P) +{ + return (__m128i) __builtin_ia32_loaddqu ((char const *)__P); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadl_epi64 (__m128i const *__P) +{ + return _mm_set_epi64 ((__m64)0LL, *(__m64 *)__P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_si128 (__m128i *__P, __m128i __B) +{ + *__P = __B; +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storeu_si128 (__m128i *__P, __m128i __B) +{ + __builtin_ia32_storedqu ((char *)__P, (__v16qi)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_storel_epi64 (__m128i *__P, __m128i __B) +{ + *(long long *)__P = ((__v2di)__B)[0]; +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movepi64_pi64 (__m128i __B) +{ + return (__m64) ((__v2di)__B)[0]; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movpi64_epi64 (__m64 __A) +{ + return _mm_set_epi64 ((__m64)0LL, __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_move_epi64 (__m128i __A) +{ + return (__m128i)__builtin_ia32_movq128 ((__v2di) __A); +} + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_undefined_si128 (void) +{ + __m128i __Y = __Y; + return __Y; +} + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setzero_si128 (void) +{ + return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 }; +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi32_pd (__m128i __A) +{ + return (__m128d)__builtin_ia32_cvtdq2pd ((__v4si) __A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi32_ps (__m128i __A) +{ + return (__m128)__builtin_ia32_cvtdq2ps ((__v4si) __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpd_epi32 (__m128d __A) +{ + return (__m128i)__builtin_ia32_cvtpd2dq ((__v2df) __A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpd_pi32 (__m128d __A) +{ + return (__m64)__builtin_ia32_cvtpd2pi ((__v2df) __A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpd_ps (__m128d __A) +{ + return (__m128)__builtin_ia32_cvtpd2ps ((__v2df) __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttpd_epi32 (__m128d __A) +{ + return (__m128i)__builtin_ia32_cvttpd2dq ((__v2df) __A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttpd_pi32 (__m128d __A) +{ + return (__m64)__builtin_ia32_cvttpd2pi ((__v2df) __A); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpi32_pd (__m64 __A) +{ + return (__m128d)__builtin_ia32_cvtpi2pd ((__v2si) __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_epi32 (__m128 __A) +{ + return (__m128i)__builtin_ia32_cvtps2dq ((__v4sf) __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttps_epi32 (__m128 __A) +{ + return (__m128i)__builtin_ia32_cvttps2dq ((__v4sf) __A); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_pd (__m128 __A) +{ + return (__m128d)__builtin_ia32_cvtps2pd ((__v4sf) __A); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_si32 (__m128d __A) +{ + return __builtin_ia32_cvtsd2si ((__v2df) __A); +} + + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_si64 (__m128d __A) +{ + return __builtin_ia32_cvtsd2si64 ((__v2df) __A); +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_si64x (__m128d __A) +{ + return __builtin_ia32_cvtsd2si64 ((__v2df) __A); +} + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_si32 (__m128d __A) +{ + return __builtin_ia32_cvttsd2si ((__v2df) __A); +} + + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_si64 (__m128d __A) +{ + return __builtin_ia32_cvttsd2si64 ((__v2df) __A); +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_si64x (__m128d __A) +{ + return __builtin_ia32_cvttsd2si64 ((__v2df) __A); +} + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_ss (__m128 __A, __m128d __B) +{ + return (__m128)__builtin_ia32_cvtsd2ss ((__v4sf) __A, (__v2df) __B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi32_sd (__m128d __A, int __B) +{ + return (__m128d)__builtin_ia32_cvtsi2sd ((__v2df) __A, __B); +} + + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64_sd (__m128d __A, long long __B) +{ + return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64x_sd (__m128d __A, long long __B) +{ + return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B); +} + + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_sd (__m128d __A, __m128 __B) +{ + return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B); +} +# 914 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 3 4 +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_unpckhpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_pd (__m128d __A, __m128d __B) +{ + return (__m128d)__builtin_ia32_unpcklpd ((__v2df)__A, (__v2df)__B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadh_pd (__m128d __A, double const *__B) +{ + return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, __B); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loadl_pd (__m128d __A, double const *__B) +{ + return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, __B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movemask_pd (__m128d __A) +{ + return __builtin_ia32_movmskpd ((__v2df)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packs_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_packsswb128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packs_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_packssdw128 ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packus_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpckhbw128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpckhwd128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpckhdq128 ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpackhi_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpckhqdq128 ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpcklbw128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpcklwd128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpckldq128 ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_unpacklo_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_punpcklqdq128 ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v16qu)__A + (__v16qu)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v8hu)__A + (__v8hu)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v4su)__A + (__v4su)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_add_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v2du)__A + (__v2du)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_paddsb128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_paddsw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_epu8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_paddusb128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_adds_epu16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_paddusw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v16qu)__A - (__v16qu)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v8hu)__A - (__v8hu)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v4su)__A - (__v4su)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sub_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v2du)__A - (__v2du)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psubsb128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psubsw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_epu8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psubusb128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_subs_epu16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psubusw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_madd_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pmaddwd128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mulhi_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pmulhw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mullo_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v8hu)__A * (__v8hu)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_su32 (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pmuludq ((__v2si)__A, (__v2si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_epu32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_slli_epi16 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_slli_epi32 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_slli_epi64 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srai_epi16 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srai_epi32 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B); +} +# 1201 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srli_epi16 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srli_epi32 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srli_epi64 (__m128i __A, int __B) +{ + return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sll_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psllw128((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sll_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pslld128((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sll_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psllq128((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sra_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psraw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sra_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psrad128 ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srl_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psrlw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srl_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psrld128 ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srl_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psrlq128 ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_and_si128 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v2du)__A & (__v2du)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_andnot_si128 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pandn128 ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_or_si128 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v2du)__A | (__v2du)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_xor_si128 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v2du)__A ^ (__v2du)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v16qi)__A == (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v8hi)__A == (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v4si)__A == (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v16qi)__A < (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v8hi)__A < (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v4si)__A < (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v16qi)__A > (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v8hi)__A > (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v4si)__A > (__v4si)__B); +} +# 1365 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pmaxsw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epu8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pmaxub128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pminsw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epu8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pminub128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movemask_epi8 (__m128i __A) +{ + return __builtin_ia32_pmovmskb128 ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mulhi_epu16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B); +} +# 1428 "/usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h" 3 4 +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C) +{ + __builtin_ia32_maskmovdqu ((__v16qi)__A, (__v16qi)__B, __C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_avg_epu8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pavgb128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_avg_epu16 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_pavgw128 ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sad_epu8 (__m128i __A, __m128i __B) +{ + return (__m128i)__builtin_ia32_psadbw128 ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_si32 (int *__A, int __B) +{ + __builtin_ia32_movnti (__A, __B); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_si64 (long long int *__A, long long int __B) +{ + __builtin_ia32_movnti64 (__A, __B); +} + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_si128 (__m128i *__A, __m128i __B) +{ + __builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_pd (double *__A, __m128d __B) +{ + __builtin_ia32_movntpd (__A, (__v2df)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_clflush (void const *__A) +{ + __builtin_ia32_clflush (__A); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_lfence (void) +{ + __builtin_ia32_lfence (); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mfence (void) +{ + __builtin_ia32_mfence (); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi32_si128 (int __A) +{ + return _mm_set_epi32 (0, 0, 0, __A); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64_si128 (long long __A) +{ + return _mm_set_epi64x (0, __A); +} + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsi64x_si128 (long long __A) +{ + return _mm_set_epi64x (0, __A); +} + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_castpd_ps(__m128d __A) +{ + return (__m128) __A; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_castpd_si128(__m128d __A) +{ + return (__m128i) __A; +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_castps_pd(__m128 __A) +{ + return (__m128d) __A; +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_castps_si128(__m128 __A) +{ + return (__m128i) __A; +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_castsi128_ps(__m128i __A) +{ + return (__m128) __A; +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_castsi128_pd(__m128i __A) +{ + return (__m128d) __A; +} +# 1250 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 2 3 4 +# 1261 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h" 3 4 +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_pause (void) +{ + __builtin_ia32_pause (); +} +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/pmmintrin.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include/pmmintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("sse3") +# 49 "/usr/lib/gcc/x86_64-linux-gnu/5/include/pmmintrin.h" 3 4 +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_addsub_ps (__m128 __X, __m128 __Y) +{ + return (__m128) __builtin_ia32_addsubps ((__v4sf)__X, (__v4sf)__Y); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadd_ps (__m128 __X, __m128 __Y) +{ + return (__m128) __builtin_ia32_haddps ((__v4sf)__X, (__v4sf)__Y); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsub_ps (__m128 __X, __m128 __Y) +{ + return (__m128) __builtin_ia32_hsubps ((__v4sf)__X, (__v4sf)__Y); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movehdup_ps (__m128 __X) +{ + return (__m128) __builtin_ia32_movshdup ((__v4sf)__X); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_moveldup_ps (__m128 __X) +{ + return (__m128) __builtin_ia32_movsldup ((__v4sf)__X); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_addsub_pd (__m128d __X, __m128d __Y) +{ + return (__m128d) __builtin_ia32_addsubpd ((__v2df)__X, (__v2df)__Y); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadd_pd (__m128d __X, __m128d __Y) +{ + return (__m128d) __builtin_ia32_haddpd ((__v2df)__X, (__v2df)__Y); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsub_pd (__m128d __X, __m128d __Y) +{ + return (__m128d) __builtin_ia32_hsubpd ((__v2df)__X, (__v2df)__Y); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_loaddup_pd (double const *__P) +{ + return _mm_load1_pd (__P); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movedup_pd (__m128d __X) +{ + return ((__m128d)__builtin_ia32_shufpd ((__v2df)(__m128d)(__X), (__v2df)(__m128d)(__X), (int)((((0) << 1) | (0))))); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_lddqu_si128 (__m128i const *__P) +{ + return (__m128i) __builtin_ia32_lddqu ((char const *)__P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_monitor (void const * __P, unsigned int __E, unsigned int __H) +{ + __builtin_ia32_monitor (__P, __E, __H); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mwait (unsigned int __E, unsigned int __H) +{ + __builtin_ia32_mwait (__E, __H); +} + + + +#pragma GCC pop_options +# 36 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("ssse3") + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadd_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phaddw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadd_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phaddd128 ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadds_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phaddsw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadd_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phaddw ((__v4hi)__X, (__v4hi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadd_pi32 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phaddd ((__v2si)__X, (__v2si)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hadds_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phaddsw ((__v4hi)__X, (__v4hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsub_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phsubw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsub_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phsubd128 ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsubs_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phsubsw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsub_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phsubw ((__v4hi)__X, (__v4hi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsub_pi32 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phsubd ((__v2si)__X, (__v2si)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsubs_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phsubsw ((__v4hi)__X, (__v4hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maddubs_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaddubsw128 ((__v16qi)__X, (__v16qi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maddubs_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_pmaddubsw ((__v8qi)__X, (__v8qi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mulhrs_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmulhrsw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mulhrs_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_pmulhrsw ((__v4hi)__X, (__v4hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_shuffle_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pshufb128 ((__v16qi)__X, (__v16qi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_shuffle_pi8 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_pshufb ((__v8qi)__X, (__v8qi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sign_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psignb128 ((__v16qi)__X, (__v16qi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sign_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psignw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sign_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psignd128 ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sign_pi8 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_psignb ((__v8qi)__X, (__v8qi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sign_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_psignw ((__v4hi)__X, (__v4hi)__Y); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sign_pi32 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_psignd ((__v2si)__X, (__v2si)__Y); +} +# 208 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_epi8 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pabsb128 ((__v16qi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_epi16 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pabsw128 ((__v8hi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pabsd128 ((__v4si)__X); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_pi8 (__m64 __X) +{ + return (__m64) __builtin_ia32_pabsb ((__v8qi)__X); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_pi16 (__m64 __X) +{ + return (__m64) __builtin_ia32_pabsw ((__v4hi)__X); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_pi32 (__m64 __X) +{ + return (__m64) __builtin_ia32_pabsd ((__v2si)__X); +} + + + +#pragma GCC pop_options +# 38 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/ammintrin.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include/ammintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("sse4a") + + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_sd (double * __P, __m128d __Y) +{ + __builtin_ia32_movntsd (__P, (__v2df) __Y); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_ss (float * __P, __m128 __Y) +{ + __builtin_ia32_movntss (__P, (__v4sf) __Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_extract_si64 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_extrq ((__v2di) __X, (__v16qi) __Y); +} +# 69 "/usr/lib/gcc/x86_64-linux-gnu/5/include/ammintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_insert_si64 (__m128i __X,__m128i __Y) +{ + return (__m128i) __builtin_ia32_insertq ((__v2di)__X, (__v2di)__Y); +} +# 90 "/usr/lib/gcc/x86_64-linux-gnu/5/include/ammintrin.h" 3 4 +#pragma GCC pop_options +# 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 1 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("sse4.1") +# 66 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testz_si128 (__m128i __M, __m128i __V) +{ + return __builtin_ia32_ptestz128 ((__v2di)__M, (__v2di)__V); +} + + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testc_si128 (__m128i __M, __m128i __V) +{ + return __builtin_ia32_ptestc128 ((__v2di)__M, (__v2di)__V); +} + + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testnzc_si128 (__m128i __M, __m128i __V) +{ + return __builtin_ia32_ptestnzc128 ((__v2di)__M, (__v2di)__V); +} +# 178 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M) +{ + return (__m128i) __builtin_ia32_pblendvb128 ((__v16qi)__X, + (__v16qi)__Y, + (__v16qi)__M); +} +# 203 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_blendv_ps (__m128 __X, __m128 __Y, __m128 __M) +{ + return (__m128) __builtin_ia32_blendvps ((__v4sf)__X, + (__v4sf)__Y, + (__v4sf)__M); +} +# 228 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_blendv_pd (__m128d __X, __m128d __Y, __m128d __M) +{ + return (__m128d) __builtin_ia32_blendvpd ((__v2df)__X, + (__v2df)__Y, + (__v2df)__M); +} +# 267 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi64 (__m128i __X, __m128i __Y) +{ + return (__m128i) ((__v2di)__X == (__v2di)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pminsb128 ((__v16qi)__X, (__v16qi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaxsb128 ((__v16qi)__X, (__v16qi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epu16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pminuw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epu16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaxuw128 ((__v8hi)__X, (__v8hi)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pminsd128 ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaxsd128 ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epu32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pminud128 ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epu32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaxud128 ((__v4si)__X, (__v4si)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mullo_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) ((__v4su)__X * (__v4su)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mul_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmuldq128 ((__v4si)__X, (__v4si)__Y); +} +# 473 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_minpos_epu16 (__m128i __X) +{ + return (__m128i) __builtin_ia32_phminposuw128 ((__v8hi)__X); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi8_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxbd128 ((__v16qi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi16_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxwd128 ((__v8hi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi8_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxbq128 ((__v16qi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi32_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxdq128 ((__v4si)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi16_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxwq128 ((__v8hi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi8_epi16 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxbw128 ((__v16qi)__X); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu8_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxbd128 ((__v16qi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu16_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxwd128 ((__v8hi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu8_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxbq128 ((__v16qi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu32_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxdq128 ((__v4si)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu16_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxwq128 ((__v8hi)__X); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu8_epi16 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxbw128 ((__v16qi)__X); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_packus_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_packusdw128 ((__v4si)__X, (__v4si)__Y); +} +# 581 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_stream_load_si128 (__m128i *__X) +{ + return (__m128i) __builtin_ia32_movntdqa ((__v2di *) __X); +} + + +#pragma GCC push_options +#pragma GCC target("sse4.2") +# 795 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi64 (__m128i __X, __m128i __Y) +{ + return (__m128i) ((__v2di)__X > (__v2di)__Y); +} + + + +#pragma GCC pop_options + + + + +#pragma GCC pop_options + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/popcntintrin.h" 1 3 4 +# 28 "/usr/lib/gcc/x86_64-linux-gnu/5/include/popcntintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("popcnt") + + + + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_popcnt_u32 (unsigned int __X) +{ + return __builtin_popcount (__X); +} + + +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_popcnt_u64 (unsigned long long __X) +{ + return __builtin_popcountll (__X); +} + + + + +#pragma GCC pop_options +# 812 "/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h" 2 3 4 + + +#pragma GCC push_options +#pragma GCC target("sse4.1") + + + + +#pragma GCC push_options +#pragma GCC target("sse4.2") + + + + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_crc32_u8 (unsigned int __C, unsigned char __V) +{ + return __builtin_ia32_crc32qi (__C, __V); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_crc32_u16 (unsigned int __C, unsigned short __V) +{ + return __builtin_ia32_crc32hi (__C, __V); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_crc32_u32 (unsigned int __C, unsigned int __V) +{ + return __builtin_ia32_crc32si (__C, __V); +} + + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_crc32_u64 (unsigned long long __C, unsigned long long __V) +{ + return __builtin_ia32_crc32di (__C, __V); +} + + + + +#pragma GCC pop_options + + + + +#pragma GCC pop_options +# 42 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h" 1 3 4 +# 36 "/usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("aes") + + + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_aesdec_si128 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_aesdec128 ((__v2di)__X, (__v2di)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_aesdeclast_si128 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_aesdeclast128 ((__v2di)__X, + (__v2di)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_aesenc_si128 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_aesenc128 ((__v2di)__X, (__v2di)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_aesenclast_si128 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_aesenclast128 ((__v2di)__X, (__v2di)__Y); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_aesimc_si128 (__m128i __X) +{ + return (__m128i) __builtin_ia32_aesimc128 ((__v2di)__X); +} +# 99 "/usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h" 3 4 +#pragma GCC pop_options + + + + + +#pragma GCC push_options +#pragma GCC target("pclmul") +# 129 "/usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h" 3 4 +#pragma GCC pop_options +# 44 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 1 3 4 +# 41 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 1 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx") + + + + +typedef double __v4df __attribute__ ((__vector_size__ (32))); +typedef float __v8sf __attribute__ ((__vector_size__ (32))); +typedef long long __v4di __attribute__ ((__vector_size__ (32))); +typedef unsigned long long __v4du __attribute__ ((__vector_size__ (32))); +typedef int __v8si __attribute__ ((__vector_size__ (32))); +typedef unsigned int __v8su __attribute__ ((__vector_size__ (32))); +typedef short __v16hi __attribute__ ((__vector_size__ (32))); +typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32))); +typedef char __v32qi __attribute__ ((__vector_size__ (32))); +typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32))); + + + +typedef float __m256 __attribute__ ((__vector_size__ (32), + __may_alias__)); +typedef long long __m256i __attribute__ ((__vector_size__ (32), + __may_alias__)); +typedef double __m256d __attribute__ ((__vector_size__ (32), + __may_alias__)); +# 128 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_add_pd (__m256d __A, __m256d __B) +{ + return (__m256d) ((__v4df)__A + (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_add_ps (__m256 __A, __m256 __B) +{ + return (__m256) ((__v8sf)__A + (__v8sf)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_addsub_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_addsubpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_addsub_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_addsubps256 ((__v8sf)__A, (__v8sf)__B); +} + + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_and_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_andpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_and_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_andps256 ((__v8sf)__A, (__v8sf)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_andnot_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_andnpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_andnot_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_andnps256 ((__v8sf)__A, (__v8sf)__B); +} +# 206 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_blendv_pd (__m256d __X, __m256d __Y, __m256d __M) +{ + return (__m256d) __builtin_ia32_blendvpd256 ((__v4df)__X, + (__v4df)__Y, + (__v4df)__M); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_blendv_ps (__m256 __X, __m256 __Y, __m256 __M) +{ + return (__m256) __builtin_ia32_blendvps256 ((__v8sf)__X, + (__v8sf)__Y, + (__v8sf)__M); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_div_pd (__m256d __A, __m256d __B) +{ + return (__m256d) ((__v4df)__A / (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_div_ps (__m256 __A, __m256 __B) +{ + return (__m256) ((__v8sf)__A / (__v8sf)__B); +} +# 251 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hadd_pd (__m256d __X, __m256d __Y) +{ + return (__m256d) __builtin_ia32_haddpd256 ((__v4df)__X, (__v4df)__Y); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hadd_ps (__m256 __X, __m256 __Y) +{ + return (__m256) __builtin_ia32_haddps256 ((__v8sf)__X, (__v8sf)__Y); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hsub_pd (__m256d __X, __m256d __Y) +{ + return (__m256d) __builtin_ia32_hsubpd256 ((__v4df)__X, (__v4df)__Y); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hsub_ps (__m256 __X, __m256 __Y) +{ + return (__m256) __builtin_ia32_hsubps256 ((__v8sf)__X, (__v8sf)__Y); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_maxpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_maxps256 ((__v8sf)__A, (__v8sf)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_minpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_minps256 ((__v8sf)__A, (__v8sf)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mul_pd (__m256d __A, __m256d __B) +{ + return (__m256d) ((__v4df)__A * (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mul_ps (__m256 __A, __m256 __B) +{ + return (__m256) ((__v8sf)__A * (__v8sf)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_or_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_orpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_or_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_orps256 ((__v8sf)__A, (__v8sf)__B); +} +# 347 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sub_pd (__m256d __A, __m256d __B) +{ + return (__m256d) ((__v4df)__A - (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sub_ps (__m256 __A, __m256 __B) +{ + return (__m256) ((__v8sf)__A - (__v8sf)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_xor_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_xorpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_xor_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_xorps256 ((__v8sf)__A, (__v8sf)__B); +} +# 435 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi32_pd (__m128i __A) +{ + return (__m256d)__builtin_ia32_cvtdq2pd256 ((__v4si) __A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi32_ps (__m256i __A) +{ + return (__m256)__builtin_ia32_cvtdq2ps256 ((__v8si) __A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtpd_ps (__m256d __A) +{ + return (__m128)__builtin_ia32_cvtpd2ps256 ((__v4df) __A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtps_epi32 (__m256 __A) +{ + return (__m256i)__builtin_ia32_cvtps2dq256 ((__v8sf) __A); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtps_pd (__m128 __A) +{ + return (__m256d)__builtin_ia32_cvtps2pd256 ((__v4sf) __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttpd_epi32 (__m256d __A) +{ + return (__m128i)__builtin_ia32_cvttpd2dq256 ((__v4df) __A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtpd_epi32 (__m256d __A) +{ + return (__m128i)__builtin_ia32_cvtpd2dq256 ((__v4df) __A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttps_epi32 (__m256 __A) +{ + return (__m256i)__builtin_ia32_cvttps2dq256 ((__v8sf) __A); +} +# 575 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_zeroall (void) +{ + __builtin_ia32_vzeroall (); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_zeroupper (void) +{ + __builtin_ia32_vzeroupper (); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutevar_pd (__m128d __A, __m128i __C) +{ + return (__m128d) __builtin_ia32_vpermilvarpd ((__v2df)__A, + (__v2di)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutevar_pd (__m256d __A, __m256i __C) +{ + return (__m256d) __builtin_ia32_vpermilvarpd256 ((__v4df)__A, + (__v4di)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutevar_ps (__m128 __A, __m128i __C) +{ + return (__m128) __builtin_ia32_vpermilvarps ((__v4sf)__A, + (__v4si)__C); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutevar_ps (__m256 __A, __m256i __C) +{ + return (__m256) __builtin_ia32_vpermilvarps256 ((__v8sf)__A, + (__v8si)__C); +} +# 694 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcast_ss (float const *__X) +{ + return (__m128) __builtin_ia32_vbroadcastss (__X); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_sd (double const *__X) +{ + return (__m256d) __builtin_ia32_vbroadcastsd256 (__X); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_ss (float const *__X) +{ + return (__m256) __builtin_ia32_vbroadcastss256 (__X); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_pd (__m128d const *__X) +{ + return (__m256d) __builtin_ia32_vbroadcastf128_pd256 (__X); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_ps (__m128 const *__X) +{ + return (__m256) __builtin_ia32_vbroadcastf128_ps256 (__X); +} +# 833 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_load_pd (double const *__P) +{ + return *(__m256d *)__P; +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_store_pd (double *__P, __m256d __A) +{ + *(__m256d *)__P = __A; +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_load_ps (float const *__P) +{ + return *(__m256 *)__P; +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_store_ps (float *__P, __m256 __A) +{ + *(__m256 *)__P = __A; +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_loadu_pd (double const *__P) +{ + return (__m256d) __builtin_ia32_loadupd256 (__P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_storeu_pd (double *__P, __m256d __A) +{ + __builtin_ia32_storeupd256 (__P, (__v4df)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_loadu_ps (float const *__P) +{ + return (__m256) __builtin_ia32_loadups256 (__P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_storeu_ps (float *__P, __m256 __A) +{ + __builtin_ia32_storeups256 (__P, (__v8sf)__A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_load_si256 (__m256i const *__P) +{ + return *__P; +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_store_si256 (__m256i *__P, __m256i __A) +{ + *__P = __A; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_loadu_si256 (__m256i const *__P) +{ + return (__m256i) __builtin_ia32_loaddqu256 ((char const *)__P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_storeu_si256 (__m256i *__P, __m256i __A) +{ + __builtin_ia32_storedqu256 ((char *)__P, (__v32qi)__A); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskload_pd (double const *__P, __m128i __M) +{ + return (__m128d) __builtin_ia32_maskloadpd ((const __v2df *)__P, + (__v2di)__M); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskstore_pd (double *__P, __m128i __M, __m128d __A) +{ + __builtin_ia32_maskstorepd ((__v2df *)__P, (__v2di)__M, (__v2df)__A); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskload_pd (double const *__P, __m256i __M) +{ + return (__m256d) __builtin_ia32_maskloadpd256 ((const __v4df *)__P, + (__v4di)__M); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskstore_pd (double *__P, __m256i __M, __m256d __A) +{ + __builtin_ia32_maskstorepd256 ((__v4df *)__P, (__v4di)__M, (__v4df)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskload_ps (float const *__P, __m128i __M) +{ + return (__m128) __builtin_ia32_maskloadps ((const __v4sf *)__P, + (__v4si)__M); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskstore_ps (float *__P, __m128i __M, __m128 __A) +{ + __builtin_ia32_maskstoreps ((__v4sf *)__P, (__v4si)__M, (__v4sf)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskload_ps (float const *__P, __m256i __M) +{ + return (__m256) __builtin_ia32_maskloadps256 ((const __v8sf *)__P, + (__v8si)__M); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskstore_ps (float *__P, __m256i __M, __m256 __A) +{ + __builtin_ia32_maskstoreps256 ((__v8sf *)__P, (__v8si)__M, (__v8sf)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movehdup_ps (__m256 __X) +{ + return (__m256) __builtin_ia32_movshdup256 ((__v8sf)__X); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_moveldup_ps (__m256 __X) +{ + return (__m256) __builtin_ia32_movsldup256 ((__v8sf)__X); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movedup_pd (__m256d __X) +{ + return (__m256d) __builtin_ia32_movddup256 ((__v4df)__X); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_lddqu_si256 (__m256i const *__P) +{ + return (__m256i) __builtin_ia32_lddqu256 ((char const *)__P); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_stream_si256 (__m256i *__A, __m256i __B) +{ + __builtin_ia32_movntdq256 ((__v4di *)__A, (__v4di)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_stream_pd (double *__A, __m256d __B) +{ + __builtin_ia32_movntpd256 (__A, (__v4df)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_stream_ps (float *__P, __m256 __A) +{ + __builtin_ia32_movntps256 (__P, (__v8sf)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rcp_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_rcpps256 ((__v8sf)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rsqrt_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_rsqrtps256 ((__v8sf)__A); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sqrt_pd (__m256d __A) +{ + return (__m256d) __builtin_ia32_sqrtpd256 ((__v4df)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sqrt_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_sqrtps256 ((__v8sf)__A); +} +# 1048 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h" 3 4 +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpackhi_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_unpckhpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpacklo_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_unpcklpd256 ((__v4df)__A, (__v4df)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpackhi_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_unpckhps256 ((__v8sf)__A, (__v8sf)__B); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpacklo_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_unpcklps256 ((__v8sf)__A, (__v8sf)__B); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testz_pd (__m128d __M, __m128d __V) +{ + return __builtin_ia32_vtestzpd ((__v2df)__M, (__v2df)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testc_pd (__m128d __M, __m128d __V) +{ + return __builtin_ia32_vtestcpd ((__v2df)__M, (__v2df)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testnzc_pd (__m128d __M, __m128d __V) +{ + return __builtin_ia32_vtestnzcpd ((__v2df)__M, (__v2df)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testz_ps (__m128 __M, __m128 __V) +{ + return __builtin_ia32_vtestzps ((__v4sf)__M, (__v4sf)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testc_ps (__m128 __M, __m128 __V) +{ + return __builtin_ia32_vtestcps ((__v4sf)__M, (__v4sf)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testnzc_ps (__m128 __M, __m128 __V) +{ + return __builtin_ia32_vtestnzcps ((__v4sf)__M, (__v4sf)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testz_pd (__m256d __M, __m256d __V) +{ + return __builtin_ia32_vtestzpd256 ((__v4df)__M, (__v4df)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testc_pd (__m256d __M, __m256d __V) +{ + return __builtin_ia32_vtestcpd256 ((__v4df)__M, (__v4df)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testnzc_pd (__m256d __M, __m256d __V) +{ + return __builtin_ia32_vtestnzcpd256 ((__v4df)__M, (__v4df)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testz_ps (__m256 __M, __m256 __V) +{ + return __builtin_ia32_vtestzps256 ((__v8sf)__M, (__v8sf)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testc_ps (__m256 __M, __m256 __V) +{ + return __builtin_ia32_vtestcps256 ((__v8sf)__M, (__v8sf)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testnzc_ps (__m256 __M, __m256 __V) +{ + return __builtin_ia32_vtestnzcps256 ((__v8sf)__M, (__v8sf)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testz_si256 (__m256i __M, __m256i __V) +{ + return __builtin_ia32_ptestz256 ((__v4di)__M, (__v4di)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testc_si256 (__m256i __M, __m256i __V) +{ + return __builtin_ia32_ptestc256 ((__v4di)__M, (__v4di)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testnzc_si256 (__m256i __M, __m256i __V) +{ + return __builtin_ia32_ptestnzc256 ((__v4di)__M, (__v4di)__V); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movemask_pd (__m256d __A) +{ + return __builtin_ia32_movmskpd256 ((__v4df)__A); +} + +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movemask_ps (__m256 __A) +{ + return __builtin_ia32_movmskps256 ((__v8sf)__A); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_undefined_pd (void) +{ + __m256d __Y = __Y; + return __Y; +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_undefined_ps (void) +{ + __m256 __Y = __Y; + return __Y; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_undefined_si256 (void) +{ + __m256i __Y = __Y; + return __Y; +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setzero_pd (void) +{ + return __extension__ (__m256d){ 0.0, 0.0, 0.0, 0.0 }; +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setzero_ps (void) +{ + return __extension__ (__m256){ 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0 }; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setzero_si256 (void) +{ + return __extension__ (__m256i)(__v4di){ 0, 0, 0, 0 }; +} + + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set_pd (double __A, double __B, double __C, double __D) +{ + return __extension__ (__m256d){ __D, __C, __B, __A }; +} + + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set_ps (float __A, float __B, float __C, float __D, + float __E, float __F, float __G, float __H) +{ + return __extension__ (__m256){ __H, __G, __F, __E, + __D, __C, __B, __A }; +} + + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set_epi32 (int __A, int __B, int __C, int __D, + int __E, int __F, int __G, int __H) +{ + return __extension__ (__m256i)(__v8si){ __H, __G, __F, __E, + __D, __C, __B, __A }; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set_epi16 (short __q15, short __q14, short __q13, short __q12, + short __q11, short __q10, short __q09, short __q08, + short __q07, short __q06, short __q05, short __q04, + short __q03, short __q02, short __q01, short __q00) +{ + return __extension__ (__m256i)(__v16hi){ + __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07, + __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15 + }; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28, + char __q27, char __q26, char __q25, char __q24, + char __q23, char __q22, char __q21, char __q20, + char __q19, char __q18, char __q17, char __q16, + char __q15, char __q14, char __q13, char __q12, + char __q11, char __q10, char __q09, char __q08, + char __q07, char __q06, char __q05, char __q04, + char __q03, char __q02, char __q01, char __q00) +{ + return __extension__ (__m256i)(__v32qi){ + __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07, + __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15, + __q16, __q17, __q18, __q19, __q20, __q21, __q22, __q23, + __q24, __q25, __q26, __q27, __q28, __q29, __q30, __q31 + }; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set_epi64x (long long __A, long long __B, long long __C, + long long __D) +{ + return __extension__ (__m256i)(__v4di){ __D, __C, __B, __A }; +} + + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set1_pd (double __A) +{ + return __extension__ (__m256d){ __A, __A, __A, __A }; +} + + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set1_ps (float __A) +{ + return __extension__ (__m256){ __A, __A, __A, __A, + __A, __A, __A, __A }; +} + + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set1_epi32 (int __A) +{ + return __extension__ (__m256i)(__v8si){ __A, __A, __A, __A, + __A, __A, __A, __A }; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set1_epi16 (short __A) +{ + return _mm256_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set1_epi8 (char __A) +{ + return _mm256_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_set1_epi64x (long long __A) +{ + return __extension__ (__m256i)(__v4di){ __A, __A, __A, __A }; +} + + + + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setr_pd (double __A, double __B, double __C, double __D) +{ + return _mm256_set_pd (__D, __C, __B, __A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setr_ps (float __A, float __B, float __C, float __D, + float __E, float __F, float __G, float __H) +{ + return _mm256_set_ps (__H, __G, __F, __E, __D, __C, __B, __A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setr_epi32 (int __A, int __B, int __C, int __D, + int __E, int __F, int __G, int __H) +{ + return _mm256_set_epi32 (__H, __G, __F, __E, __D, __C, __B, __A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setr_epi16 (short __q15, short __q14, short __q13, short __q12, + short __q11, short __q10, short __q09, short __q08, + short __q07, short __q06, short __q05, short __q04, + short __q03, short __q02, short __q01, short __q00) +{ + return _mm256_set_epi16 (__q00, __q01, __q02, __q03, + __q04, __q05, __q06, __q07, + __q08, __q09, __q10, __q11, + __q12, __q13, __q14, __q15); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setr_epi8 (char __q31, char __q30, char __q29, char __q28, + char __q27, char __q26, char __q25, char __q24, + char __q23, char __q22, char __q21, char __q20, + char __q19, char __q18, char __q17, char __q16, + char __q15, char __q14, char __q13, char __q12, + char __q11, char __q10, char __q09, char __q08, + char __q07, char __q06, char __q05, char __q04, + char __q03, char __q02, char __q01, char __q00) +{ + return _mm256_set_epi8 (__q00, __q01, __q02, __q03, + __q04, __q05, __q06, __q07, + __q08, __q09, __q10, __q11, + __q12, __q13, __q14, __q15, + __q16, __q17, __q18, __q19, + __q20, __q21, __q22, __q23, + __q24, __q25, __q26, __q27, + __q28, __q29, __q30, __q31); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_setr_epi64x (long long __A, long long __B, long long __C, + long long __D) +{ + return _mm256_set_epi64x (__D, __C, __B, __A); +} + + + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castpd_ps (__m256d __A) +{ + return (__m256) __A; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castpd_si256 (__m256d __A) +{ + return (__m256i) __A; +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castps_pd (__m256 __A) +{ + return (__m256d) __A; +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castps_si256(__m256 __A) +{ + return (__m256i) __A; +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castsi256_ps (__m256i __A) +{ + return (__m256) __A; +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castsi256_pd (__m256i __A) +{ + return (__m256d) __A; +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castpd256_pd128 (__m256d __A) +{ + return (__m128d) __builtin_ia32_pd_pd256 ((__v4df)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castps256_ps128 (__m256 __A) +{ + return (__m128) __builtin_ia32_ps_ps256 ((__v8sf)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castsi256_si128 (__m256i __A) +{ + return (__m128i) __builtin_ia32_si_si256 ((__v8si)__A); +} + + + + + + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castpd128_pd256 (__m128d __A) +{ + return (__m256d) __builtin_ia32_pd256_pd ((__v2df)__A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castps128_ps256 (__m128 __A) +{ + return (__m256) __builtin_ia32_ps256_ps ((__v4sf)__A); +} + +extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_castsi128_si256 (__m128i __A) +{ + return (__m256i) __builtin_ia32_si256_si ((__v4si)__A); +} + + + +#pragma GCC pop_options +# 42 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx2") +# 54 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_abs_epi8 (__m256i __A) +{ + return (__m256i)__builtin_ia32_pabsb256 ((__v32qi)__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_abs_epi16 (__m256i __A) +{ + return (__m256i)__builtin_ia32_pabsw256 ((__v16hi)__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_abs_epi32 (__m256i __A) +{ + return (__m256i)__builtin_ia32_pabsd256 ((__v8si)__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_packs_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_packssdw256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_packs_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_packsswb256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_packus_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_packusdw256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_packus_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_packuswb256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_add_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v32qu)__A + (__v32qu)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_add_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v16hu)__A + (__v16hu)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_add_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v8su)__A + (__v8su)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_add_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4du)__A + (__v4du)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_adds_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_paddsb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_adds_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_paddsw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_adds_epu8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_paddusb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_adds_epu16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_paddusw256 ((__v16hi)__A, (__v16hi)__B); +} +# 177 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_and_si256 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4du)__A & (__v4du)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_andnot_si256 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_andnotsi256 ((__v4di)__A, (__v4di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_avg_epu8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pavgb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_avg_epu16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pavgw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_blendv_epi8 (__m256i __X, __m256i __Y, __m256i __M) +{ + return (__m256i) __builtin_ia32_pblendvb256 ((__v32qi)__X, + (__v32qi)__Y, + (__v32qi)__M); +} +# 229 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v32qi)__A == (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v16hi)__A == (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v8si)__A == (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4di)__A == (__v4di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v32qi)__A > (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v16hi)__A > (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v8si)__A > (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4di)__A > (__v4di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hadd_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_phaddw256 ((__v16hi)__X, + (__v16hi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hadd_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_phaddd256 ((__v8si)__X, (__v8si)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hadds_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_phaddsw256 ((__v16hi)__X, + (__v16hi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hsub_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_phsubw256 ((__v16hi)__X, + (__v16hi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hsub_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_phsubd256 ((__v8si)__X, (__v8si)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_hsubs_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_phsubsw256 ((__v16hi)__X, + (__v16hi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maddubs_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmaddubsw256 ((__v32qi)__X, + (__v32qi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_madd_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaddwd256 ((__v16hi)__A, + (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaxsb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaxsw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaxsd256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epu8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaxub256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epu16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaxuw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epu32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmaxud256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pminsb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pminsw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pminsd256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epu8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pminub256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epu16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pminuw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epu32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pminud256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline int +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movemask_epi8 (__m256i __A) +{ + return __builtin_ia32_pmovmskb256 ((__v32qi)__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi8_epi16 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxbw256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi8_epi32 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxbd256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi8_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxbq256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi16_epi32 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxwd256 ((__v8hi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi16_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxwq256 ((__v8hi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi32_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxdq256 ((__v4si)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu8_epi16 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxbw256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu8_epi32 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxbd256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu8_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxbq256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu16_epi32 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxwd256 ((__v8hi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu16_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxwq256 ((__v8hi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu32_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxdq256 ((__v4si)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mul_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmuldq256 ((__v8si)__X, (__v8si)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mulhrs_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmulhrsw256 ((__v16hi)__X, + (__v16hi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mulhi_epu16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmulhuw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mulhi_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmulhw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mullo_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v16hu)__A * (__v16hu)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mullo_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v8su)__A * (__v8su)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mul_epu32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_pmuludq256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_or_si256 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4du)__A | (__v4du)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sad_epu8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_psadbw256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_shuffle_epi8 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pshufb256 ((__v32qi)__X, + (__v32qi)__Y); +} +# 624 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sign_epi8 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psignb256 ((__v32qi)__X, (__v32qi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sign_epi16 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psignw256 ((__v16hi)__X, (__v16hi)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sign_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psignd256 ((__v8si)__X, (__v8si)__Y); +} +# 666 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_slli_epi16 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psllwi256 ((__v16hi)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sll_epi16 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psllw256((__v16hi)__A, (__v8hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_slli_epi32 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_pslldi256 ((__v8si)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sll_epi32 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_pslld256((__v8si)__A, (__v4si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_slli_epi64 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psllqi256 ((__v4di)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sll_epi64 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psllq256((__v4di)__A, (__v2di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srai_epi16 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psrawi256 ((__v16hi)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sra_epi16 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psraw256 ((__v16hi)__A, (__v8hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srai_epi32 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psradi256 ((__v8si)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sra_epi32 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psrad256 ((__v8si)__A, (__v4si)__B); +} +# 757 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srli_epi16 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psrlwi256 ((__v16hi)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srl_epi16 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psrlw256((__v16hi)__A, (__v8hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srli_epi32 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psrldi256 ((__v8si)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srl_epi32 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psrld256((__v8si)__A, (__v4si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srli_epi64 (__m256i __A, int __B) +{ + return (__m256i)__builtin_ia32_psrlqi256 ((__v4di)__A, __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srl_epi64 (__m256i __A, __m128i __B) +{ + return (__m256i)__builtin_ia32_psrlq256((__v4di)__A, (__v2di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sub_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v32qu)__A - (__v32qu)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sub_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v16hu)__A - (__v16hu)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sub_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v8su)__A - (__v8su)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sub_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4du)__A - (__v4du)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_subs_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_psubsb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_subs_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_psubsw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_subs_epu8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_psubusb256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_subs_epu16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_psubusw256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpackhi_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpckhbw256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpackhi_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpckhwd256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpackhi_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpckhdq256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpackhi_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpckhqdq256 ((__v4di)__A, (__v4di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpacklo_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpcklbw256 ((__v32qi)__A, (__v32qi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpacklo_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpcklwd256 ((__v16hi)__A, (__v16hi)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpacklo_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpckldq256 ((__v8si)__A, (__v8si)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_unpacklo_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i)__builtin_ia32_punpcklqdq256 ((__v4di)__A, (__v4di)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_xor_si256 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4du)__A ^ (__v4du)__B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_stream_load_si256 (__m256i const *__X) +{ + return (__m256i) __builtin_ia32_movntdqa256 ((__v4di *) __X); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastss_ps (__m128 __X) +{ + return (__m128) __builtin_ia32_vbroadcastss_ps ((__v4sf)__X); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastss_ps (__m128 __X) +{ + return (__m256) __builtin_ia32_vbroadcastss_ps256 ((__v4sf)__X); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastsd_pd (__m128d __X) +{ + return (__m256d) __builtin_ia32_vbroadcastsd_pd256 ((__v2df)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastsi128_si256 (__m128i __X) +{ + return (__m256i) __builtin_ia32_vbroadcastsi256 ((__v2di)__X); +} +# 983 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastb_epi8 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pbroadcastb256 ((__v16qi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastw_epi16 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pbroadcastw256 ((__v8hi)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastd_epi32 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pbroadcastd256 ((__v4si)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastq_epi64 (__m128i __X) +{ + return (__m256i) __builtin_ia32_pbroadcastq256 ((__v2di)__X); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastb_epi8 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pbroadcastb128 ((__v16qi)__X); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastw_epi16 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pbroadcastw128 ((__v8hi)__X); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastd_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pbroadcastd128 ((__v4si)__X); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastq_epi64 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pbroadcastq128 ((__v2di)__X); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutevar8x32_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_permvarsi256 ((__v8si)__X, (__v8si)__Y); +} +# 1058 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutevar8x32_ps (__m256 __X, __m256i __Y) +{ + return (__m256) __builtin_ia32_permvarsf256 ((__v8sf)__X, (__v8si)__Y); +} +# 1116 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskload_epi32 (int const *__X, __m256i __M ) +{ + return (__m256i) __builtin_ia32_maskloadd256 ((const __v8si *)__X, + (__v8si)__M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskload_epi64 (long long const *__X, __m256i __M ) +{ + return (__m256i) __builtin_ia32_maskloadq256 ((const __v4di *)__X, + (__v4di)__M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskload_epi32 (int const *__X, __m128i __M ) +{ + return (__m128i) __builtin_ia32_maskloadd ((const __v4si *)__X, + (__v4si)__M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskload_epi64 (long long const *__X, __m128i __M ) +{ + return (__m128i) __builtin_ia32_maskloadq ((const __v2di *)__X, + (__v2di)__M); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskstore_epi32 (int *__X, __m256i __M, __m256i __Y ) +{ + __builtin_ia32_maskstored256 ((__v8si *)__X, (__v8si)__M, (__v8si)__Y); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskstore_epi64 (long long *__X, __m256i __M, __m256i __Y ) +{ + __builtin_ia32_maskstoreq256 ((__v4di *)__X, (__v4di)__M, (__v4di)__Y); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskstore_epi32 (int *__X, __m128i __M, __m128i __Y ) +{ + __builtin_ia32_maskstored ((__v4si *)__X, (__v4si)__M, (__v4si)__Y); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskstore_epi64 (long long *__X, __m128i __M, __m128i __Y ) +{ + __builtin_ia32_maskstoreq (( __v2di *)__X, (__v2di)__M, (__v2di)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sllv_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psllv8si ((__v8si)__X, (__v8si)__Y); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sllv_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psllv4si ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sllv_epi64 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psllv4di ((__v4di)__X, (__v4di)__Y); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sllv_epi64 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psllv2di ((__v2di)__X, (__v2di)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srav_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrav8si ((__v8si)__X, (__v8si)__Y); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srav_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrav4si ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srlv_epi32 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrlv8si ((__v8si)__X, (__v8si)__Y); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srlv_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrlv4si ((__v4si)__X, (__v4si)__Y); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srlv_epi64 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrlv4di ((__v4di)__X, (__v4di)__Y); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srlv_epi64 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrlv2di ((__v2di)__X, (__v2di)__Y); +} +# 1901 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h" 3 4 +#pragma GCC pop_options +# 44 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512f") + + + + +typedef double __v8df __attribute__ ((__vector_size__ (64))); +typedef float __v16sf __attribute__ ((__vector_size__ (64))); +typedef long long __v8di __attribute__ ((__vector_size__ (64))); +typedef unsigned long long __v8du __attribute__ ((__vector_size__ (64))); +typedef int __v16si __attribute__ ((__vector_size__ (64))); +typedef unsigned int __v16su __attribute__ ((__vector_size__ (64))); +typedef short __v32hi __attribute__ ((__vector_size__ (64))); +typedef unsigned short __v32hu __attribute__ ((__vector_size__ (64))); +typedef char __v64qi __attribute__ ((__vector_size__ (64))); +typedef unsigned char __v64qu __attribute__ ((__vector_size__ (64))); + + + +typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__)); +typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__)); +typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__)); + +typedef unsigned char __mmask8; +typedef unsigned short __mmask16; + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set_epi64 (long long __A, long long __B, long long __C, + long long __D, long long __E, long long __F, + long long __G, long long __H) +{ + return __extension__ (__m512i) (__v8di) + { __H, __G, __F, __E, __D, __C, __B, __A }; +} + + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set_epi32 (int __A, int __B, int __C, int __D, + int __E, int __F, int __G, int __H, + int __I, int __J, int __K, int __L, + int __M, int __N, int __O, int __P) +{ + return __extension__ (__m512i)(__v16si) + { __P, __O, __N, __M, __L, __K, __J, __I, + __H, __G, __F, __E, __D, __C, __B, __A }; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set_pd (double __A, double __B, double __C, double __D, + double __E, double __F, double __G, double __H) +{ + return __extension__ (__m512d) + { __H, __G, __F, __E, __D, __C, __B, __A }; +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set_ps (float __A, float __B, float __C, float __D, + float __E, float __F, float __G, float __H, + float __I, float __J, float __K, float __L, + float __M, float __N, float __O, float __P) +{ + return __extension__ (__m512) + { __P, __O, __N, __M, __L, __K, __J, __I, + __H, __G, __F, __E, __D, __C, __B, __A }; +} +# 115 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_undefined_ps (void) +{ + __m512 __Y = __Y; + return __Y; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_undefined_pd (void) +{ + __m512d __Y = __Y; + return __Y; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_undefined_si512 (void) +{ + __m512i __Y = __Y; + return __Y; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set1_epi8 (char __A) +{ + return __extension__ (__m512i)(__v64qi) + { __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A }; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set1_epi16 (short __A) +{ + return __extension__ (__m512i)(__v32hi) + { __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A, + __A, __A, __A, __A, __A, __A, __A, __A }; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set1_pd (double __A) +{ + return (__m512d) __builtin_ia32_broadcastsd512 (__extension__ + (__v2df) { __A, }, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set1_ps (float __A) +{ + return (__m512) __builtin_ia32_broadcastss512 (__extension__ + (__v4sf) { __A, }, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set4_epi32 (int __A, int __B, int __C, int __D) +{ + return __extension__ (__m512i)(__v16si) + { __D, __C, __B, __A, __D, __C, __B, __A, + __D, __C, __B, __A, __D, __C, __B, __A }; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set4_epi64 (long long __A, long long __B, long long __C, + long long __D) +{ + return __extension__ (__m512i) (__v8di) + { __D, __C, __B, __A, __D, __C, __B, __A }; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set4_pd (double __A, double __B, double __C, double __D) +{ + return __extension__ (__m512d) + { __D, __C, __B, __A, __D, __C, __B, __A }; +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set4_ps (float __A, float __B, float __C, float __D) +{ + return __extension__ (__m512) + { __D, __C, __B, __A, __D, __C, __B, __A, + __D, __C, __B, __A, __D, __C, __B, __A }; +} +# 235 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_setzero_ps (void) +{ + return __extension__ (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_setzero_pd (void) +{ + return __extension__ (__m512d) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_setzero_epi32 (void) +{ + return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 }; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_setzero_si512 (void) +{ + return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 }; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mov_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mov_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_load_pd (void const *__P) +{ + return *(__m512d *) __P; +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P) +{ + return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_load_pd (__mmask8 __U, void const *__P) +{ + return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_store_pd (void *__P, __m512d __A) +{ + *(__m512d *) __P = __A; +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_store_pd (void *__P, __mmask8 __U, __m512d __A) +{ + __builtin_ia32_storeapd512_mask ((__v8df *) __P, (__v8df) __A, + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_load_ps (void const *__P) +{ + return *(__m512 *) __P; +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P) +{ + return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_load_ps (__mmask16 __U, void const *__P) +{ + return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_store_ps (void *__P, __m512 __A) +{ + *(__m512 *) __P = __A; +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_store_ps (void *__P, __mmask16 __U, __m512 __A) +{ + __builtin_ia32_storeaps512_mask ((__v16sf *) __P, (__v16sf) __A, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_load_epi64 (void const *__P) +{ + return *(__m512i *) __P; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_load_epi64 (__mmask8 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_store_epi64 (void *__P, __m512i __A) +{ + *(__m512i *) __P = __A; +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A) +{ + __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_load_si512 (void const *__P) +{ + return *(__m512i *) __P; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_load_epi32 (void const *__P) +{ + return *(__m512i *) __P; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_load_epi32 (__mmask16 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_store_si512 (void *__P, __m512i __A) +{ + *(__m512i *) __P = __A; +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_store_epi32 (void *__P, __m512i __A) +{ + *(__m512i *) __P = __A; +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A) +{ + __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mullo_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A * (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mullo_epi32 (__mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mullo_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sllv_epi32 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srav_epi32 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srlv_epi32 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X, + (__v16si) __Y, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_add_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v8du) __A + (__v8du) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_add_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sub_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v8du) __A - (__v8du) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sub_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sub_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sllv_epi64 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srav_epi64 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srlv_epi64 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_add_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A + (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_add_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mul_epi32 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X, + (__v16si) __Y, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mul_epi32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X, + (__v16si) __Y, + (__v8di) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mul_epi32 (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X, + (__v16si) __Y, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sub_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A - (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sub_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sub_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mul_epu32 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X, + (__v16si) __Y, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mul_epu32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X, + (__v16si) __Y, + (__v8di) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mul_epu32 (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X, + (__v16si) __Y, + (__v8di) + _mm512_setzero_si512 (), + __M); +} +# 958 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sll_epi64 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 1037 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srl_epi64 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 1116 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sra_epi64 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A, + (__v2di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 1195 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sll_epi32 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} +# 1274 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srl_epi32 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} +# 1353 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sra_epi32 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A, + (__v4si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} +# 1524 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rcp14_pd (__m512d __A) +{ + return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rcp14_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rcp14_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_rcp14sd ((__v2df) __B, + (__v2df) __A); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rcp14_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_rcp14ss ((__v4sf) __B, + (__v4sf) __A); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rsqrt14_pd (__m512d __A) +{ + return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rsqrt14_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rsqrt14_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_rsqrt14sd ((__v2df) __B, + (__v2df) __A); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rsqrt14_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_rsqrt14ss ((__v4sf) __B, + (__v4sf) __A); +} +# 1775 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi8_epi32 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi8_epi64 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi16_epi32 (__m256i __A) +{ + return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi16_epi64 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi32_epi64 (__m256i __X) +{ + return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X) +{ + return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X) +{ + return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu8_epi32 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu8_epi64 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu16_epi32 (__m256i __A) +{ + return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu16_epi64 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu32_epi64 (__m256i __X) +{ + return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X) +{ + return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X) +{ + return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 3404 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_abs_epi64 (__m512i __A) +{ + return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_abs_epi32 (__m512i __A) +{ + return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastss_ps (__m128 __A) +{ + return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A) +{ + return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A, + (__v16sf) __O, __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A) +{ + return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A, + (__v16sf) + _mm512_setzero_ps (), + __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastsd_pd (__m128d __A) +{ + return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A) +{ + return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A, + (__v8df) __O, __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) +{ + return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A, + (__v8df) + _mm512_setzero_pd (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastd_epi32 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A, + (__v16si) __O, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set1_epi32 (int __A) +{ + return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16)(-1)); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A) +{ + return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_set1_epi32 (__mmask16 __M, int __A) +{ + return (__m512i) + __builtin_ia32_pbroadcastd512_gpr_mask (__A, + (__v16si) _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastq_epi64 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A, + (__v8di) __O, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_set1_epi64 (long long __A) +{ + return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8)(-1)); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A) +{ + return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_set1_epi64 (__mmask8 __M, long long __A) +{ + return (__m512i) + __builtin_ia32_pbroadcastq512_gpr_mask (__A, + (__v8di) _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_f32x4 (__m128 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A, + (__v16sf) __O, + __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A, + (__v16sf) + _mm512_setzero_ps (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_i32x4 (__m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A, + (__v16si) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_f64x4 (__m256d __A) +{ + return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A) +{ + return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A, + (__v8df) __O, + __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A) +{ + return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A, + (__v8df) + _mm512_setzero_pd (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_i64x4 (__m256i __A) +{ + return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A) +{ + return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A, + (__v8di) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A) +{ + return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +typedef enum +{ + _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02, + _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05, + _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08, + _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B, + _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E, + _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11, + _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14, + _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17, + _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A, + _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D, + _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20, + _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23, + _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26, + _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29, + _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C, + _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F, + _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32, + _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35, + _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38, + _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B, + _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E, + _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41, + _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44, + _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47, + _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A, + _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D, + _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50, + _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53, + _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56, + _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59, + _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C, + _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F, + _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62, + _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65, + _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68, + _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B, + _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E, + _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71, + _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74, + _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77, + _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A, + _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D, + _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80, + _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83, + _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86, + _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89, + _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C, + _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F, + _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92, + _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95, + _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98, + _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B, + _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E, + _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1, + _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4, + _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7, + _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA, + _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD, + _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0, + _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3, + _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6, + _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9, + _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC, + _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF, + _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2, + _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5, + _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8, + _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB, + _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE, + _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1, + _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4, + _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7, + _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA, + _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD, + _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0, + _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3, + _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6, + _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9, + _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC, + _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF, + _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2, + _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5, + _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8, + _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB, + _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE, + _MM_PERM_DDDD = 0xFF +} _MM_PERM_ENUM; +# 4098 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rolv_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rorv_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rolv_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_rorv_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 4546 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtu32_sd (__m128d __A, unsigned __B) +{ + return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B); +} +# 4655 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi32_epi8 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) +{ + __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtsepi32_epi8 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) +{ + __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtusepi32_epi8 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) +{ + __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi32_epi16 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, + (__v16hi) + _mm256_undefined_si256 (), + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A) +{ + __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, + (__v16hi) __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtsepi32_epi16 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, + (__v16hi) + _mm256_undefined_si256 (), + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A) +{ + __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, + (__v16hi) __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtusepi32_epi16 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, + (__v16hi) + _mm256_undefined_si256 (), + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A) +{ + __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, + (__v16hi) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi64_epi32 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, + (__v8si) __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtsepi64_epi32 (__m512i __A) +{ + __v8si __O; + return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, + (__v8si) __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtusepi64_epi32 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, + (__v8si) __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi64_epi16 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, + (__v8hi) + _mm_undefined_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtsepi64_epi16 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, + (__v8hi) + _mm_undefined_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtusepi64_epi16 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, + (__v8hi) + _mm_undefined_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi64_epi8 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtsepi64_epi8 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtusepi64_epi8 (__m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) +{ + __builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi32_pd (__m256i __A) +{ + return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu32_pd (__m256i __A) +{ + return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} +# 5670 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_loadu_pd (void const *__P) +{ + return (__m512d) __builtin_ia32_loadupd512_mask ((const __v8df *) __P, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P) +{ + return (__m512d) __builtin_ia32_loadupd512_mask ((const __v8df *) __P, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_loadu_pd (__mmask8 __U, void const *__P) +{ + return (__m512d) __builtin_ia32_loadupd512_mask ((const __v8df *) __P, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_storeu_pd (void *__P, __m512d __A) +{ + __builtin_ia32_storeupd512_mask ((__v8df *) __P, (__v8df) __A, + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_storeu_pd (void *__P, __mmask8 __U, __m512d __A) +{ + __builtin_ia32_storeupd512_mask ((__v8df *) __P, (__v8df) __A, + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_loadu_ps (void const *__P) +{ + return (__m512) __builtin_ia32_loadups512_mask ((const __v16sf *) __P, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P) +{ + return (__m512) __builtin_ia32_loadups512_mask ((const __v16sf *) __P, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_loadu_ps (__mmask16 __U, void const *__P) +{ + return (__m512) __builtin_ia32_loadups512_mask ((const __v16sf *) __P, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_storeu_ps (void *__P, __m512 __A) +{ + __builtin_ia32_storeups512_mask ((__v16sf *) __P, (__v16sf) __A, + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_storeu_ps (void *__P, __mmask16 __U, __m512 __A) +{ + __builtin_ia32_storeups512_mask ((__v16sf *) __P, (__v16sf) __A, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddqudi512_mask ((const __v8di *) __P, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_loadu_epi64 (__mmask8 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddqudi512_mask ((const __v8di *) __P, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_storeu_epi64 (void *__P, __mmask8 __U, __m512i __A) +{ + __builtin_ia32_storedqudi512_mask ((__v8di *) __P, (__v8di) __A, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_loadu_si512 (void const *__P) +{ + return (__m512i) __builtin_ia32_loaddqusi512_mask ((const __v16si *) __P, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddqusi512_mask ((const __v16si *) __P, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_loadu_epi32 (__mmask16 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddqusi512_mask ((const __v16si *) __P, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_storeu_si512 (void *__P, __m512i __A) +{ + __builtin_ia32_storedqusi512_mask ((__v16si *) __P, (__v16si) __A, + (__mmask16) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_storeu_epi32 (void *__P, __mmask16 __U, __m512i __A) +{ + __builtin_ia32_storedqusi512_mask ((__v16si *) __P, (__v16si) __A, + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutevar_pd (__m512d __A, __m512i __C) +{ + return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A, + (__v8di) __C, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) +{ + return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A, + (__v8di) __C, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C) +{ + return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A, + (__v8di) __C, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutevar_ps (__m512 __A, __m512i __C) +{ + return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A, + (__v16si) __C, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) +{ + return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A, + (__v16si) __C, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C) +{ + return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A, + (__v16si) __C, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutex2var_epi64 (__m512i __A, __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I + , + (__v8di) __A, + (__v8di) __B, + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I, + __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I + , + (__v8di) __A, + (__v8di) __B, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I, + __mmask8 __U, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A, + (__v8di) __I + , + (__v8di) __B, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I + , + (__v8di) __A, + (__v8di) __B, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutex2var_epi32 (__m512i __A, __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I + , + (__v16si) __A, + (__v16si) __B, + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I + , + (__v16si) __A, + (__v16si) __B, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I, + __mmask16 __U, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A, + (__v16si) __I + , + (__v16si) __B, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I + , + (__v16si) __A, + (__v16si) __B, + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B) +{ + return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I + , + (__v8df) __A, + (__v8df) __B, + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, + __m512d __B) +{ + return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I + , + (__v8df) __A, + (__v8df) __B, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U, + __m512d __B) +{ + return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A, + (__v8di) __I + , + (__v8df) __B, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I, + __m512d __B) +{ + return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I + , + (__v8df) __A, + (__v8df) __B, + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B) +{ + return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I + , + (__v16sf) __A, + (__v16sf) __B, + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B) +{ + return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I + , + (__v16sf) __A, + (__v16sf) __B, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U, + __m512 __B) +{ + return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A, + (__v16si) __I + , + (__v16sf) __B, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I, + __m512 __B) +{ + return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I + , + (__v16sf) __A, + (__v16sf) __B, + (__mmask16) __U); +} +# 6268 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y, + (__v8di) __X, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutexvar_epi64 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y, + (__v8di) __X, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X, + __m512i __Y) +{ + return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y, + (__v8di) __X, + (__v8di) __W, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y, + (__v16si) __X, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutexvar_epi32 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y, + (__v16si) __X, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X, + __m512i __Y) +{ + return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y, + (__v16si) __X, + (__v16si) __W, + __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutexvar_pd (__m512i __X, __m512d __Y) +{ + return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y, + (__v8di) __X, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) +{ + return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y, + (__v8di) __X, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y) +{ + return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y, + (__v8di) __X, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutexvar_ps (__m512i __X, __m512 __Y) +{ + return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y, + (__v16si) __X, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) +{ + return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y, + (__v16si) __X, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y) +{ + return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y, + (__v16si) __X, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} +# 6703 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movehdup_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_moveldup_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_or_si512 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A | (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_or_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A | (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_or_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_or_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_or_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v8du) __A | (__v8du) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_or_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_or_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_xor_si512 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A ^ (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_xor_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A ^ (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_xor_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_xor_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_xor_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v8du) __A ^ (__v8du) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_xor_epi64 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_xor_epi64 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 7068 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_and_si512 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A & (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_and_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v16su) __A & (__v16su) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_and_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_and_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_and_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v8du) __A & (__v8du) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_and_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_and_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_pd (), + __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_andnot_si512 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_andnot_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_andnot_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_andnot_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_andnot_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_andnot_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_andnot_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_pd (), + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_test_epi32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A, + (__v16si) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A, + (__v16si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_test_epi64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, + (__v8di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_testn_epi32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, + (__v16si) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, + (__v16si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_testn_epi64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, + (__v8di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, + (__v8di) __B, __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpackhi_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpackhi_epi32 (__m512i __W, __mmask16 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpackhi_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpackhi_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpackhi_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpackhi_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpacklo_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpacklo_epi32 (__m512i __W, __mmask16 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpacklo_epi32 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpacklo_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} +# 7653 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movedup_pd (__m512d __A) +{ + return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpacklo_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpacklo_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpackhi_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpackhi_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpackhi_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpackhi_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpackhi_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} +# 8007 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_stream_si512 (__m512i * __P, __m512i __A) +{ + __builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_stream_ps (float *__P, __m512 __A) +{ + __builtin_ia32_movntps512 (__P, (__v16sf) __A); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_stream_pd (double *__P, __m512d __A) +{ + __builtin_ia32_movntpd512 (__P, (__v8df) __A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_stream_load_si512 (void *__P) +{ + return __builtin_ia32_movntdqa512 ((__v8di *)__P); +} + + +typedef enum +{ + _MM_MANT_NORM_1_2, + _MM_MANT_NORM_p5_2, + _MM_MANT_NORM_p5_1, + _MM_MANT_NORM_p75_1p5 +} _MM_MANTISSA_NORM_ENUM; + +typedef enum +{ + _MM_MANT_SIGN_src, + _MM_MANT_SIGN_zero, + _MM_MANT_SIGN_nan +} _MM_MANTISSA_SIGN_ENUM; +# 8427 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_floor_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, + (0x01 | 0x00), + (__v16sf) __A, -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_floor_pd (__m512d __A) +{ + return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, + (0x01 | 0x00), + (__v8df) __A, -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_ceil_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, + (0x02 | 0x00), + (__v16sf) __A, -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_ceil_pd (__m512d __A) +{ + return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, + (0x02 | 0x00), + (__v8df) __A, -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, + (0x01 | 0x00), + (__v16sf) __W, __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, + (0x01 | 0x00), + (__v8df) __W, __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, + (0x02 | 0x00), + (__v16sf) __W, __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, + (0x02 | 0x00), + (__v8df) __W, __U, + 0x04); +} +# 8606 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epi32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A, + (__v16si) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A, + (__v16si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A, + (__v8di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epi64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A, + (__v8di) __B, + (__mmask8) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epi32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A, + (__v16si) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A, + (__v16si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A, + (__v8di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epi64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A, + (__v8di) __B, + (__mmask8) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epi32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 5, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 5, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 5, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epu32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 5, + (__mmask16) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epi64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 5, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epu64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 5, + (__mmask8) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 2, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epi32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 2, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 2, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epu32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 2, + (__mmask16) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epi64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 2, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epu64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 2, + (__mmask8) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 1, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epi32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 1, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 1, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epu32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 1, + (__mmask16) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epi64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 1, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epu64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 1, + (__mmask8) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epi32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 4, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X, + (__v16si) __Y, 4, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 4, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epu32_mask (__m512i __X, __m512i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X, + (__v16si) __Y, 4, + (__mmask16) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epi64_mask (__mmask16 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epi64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X, + (__v8di) __Y, 4, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epu64_mask (__m512i __X, __m512i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X, + (__v8di) __Y, 4, + (__mmask8) -1); +} +# 9722 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_compress_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A) +{ + __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A, + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_compress_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A) +{ + __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A) +{ + __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A) +{ + __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A, + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expand_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_expanddf512_maskz ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expandloadu_pd (__m512d __W, __mmask8 __U, void const *__P) +{ + return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *) __P, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expandloadu_pd (__mmask8 __U, void const *__P) +{ + return (__m512d) __builtin_ia32_expandloaddf512_maskz ((const __v8df *) __P, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expand_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_expandsf512_maskz ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expandloadu_ps (__m512 __W, __mmask16 __U, void const *__P) +{ + return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *) __P, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expandloadu_ps (__mmask16 __U, void const *__P) +{ + return (__m512) __builtin_ia32_expandloadsf512_maskz ((const __v16sf *) __P, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expand_epi64 (__mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_expanddi512_maskz ((__v8di) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expandloadu_epi64 (__m512i __W, __mmask8 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *) __P, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) +{ + return (__m512i) + __builtin_ia32_expandloaddi512_maskz ((const __v8di *) __P, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_expandsi512_maskz ((__v16si) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_expandloadu_epi32 (__m512i __W, __mmask16 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *) __P, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_expandloadu_epi32 (__mmask16 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_expandloadsi512_maskz ((const __v16si *) __P, + (__v16si) + _mm512_setzero_si512 + (), (__mmask16) __U); +} + + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kand (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kandn (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kor (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B); +} + +extern __inline int +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kortestz (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A, + (__mmask16) __B); +} + +extern __inline int +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kortestc (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kortestchi ((__mmask16) __A, + (__mmask16) __B); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kxnor (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kxor (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_knot (__mmask16 __A) +{ + return (__mmask16) __builtin_ia32_knothi ((__mmask16) __A); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kunpackb (__mmask16 __A, __mmask16 __B) +{ + return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B); +} +# 10119 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epu64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epu64 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_undefined_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epi32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epu32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epu32 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A, + (__v16si) __B, + (__v16si) __W, __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpacklo_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpacklo_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} +# 10450 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_blend_pd (__mmask8 __U, __m512d __A, __m512d __W) +{ + return (__m512d) __builtin_ia32_blendmpd_512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_blend_ps (__mmask16 __U, __m512 __A, __m512 __W) +{ + return (__m512) __builtin_ia32_blendmps_512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_blend_epi64 (__mmask8 __U, __m512i __A, __m512i __W) +{ + return (__m512i) __builtin_ia32_blendmq_512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_blend_epi32 (__mmask16 __U, __m512i __A, __m512i __W) +{ + return (__m512i) __builtin_ia32_blendmd_512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} +# 10613 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sqrt_pd (__m512d __A) +{ + return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A) +{ + return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sqrt_ps (__m512 __A) +{ + return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sqrt_ps (__m512 __W, __mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sqrt_ps (__mmask16 __U, __m512 __A) +{ + return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_add_pd (__m512d __A, __m512d __B) +{ + return (__m512d) ((__v8df)__A + (__v8df)__B); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_add_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_add_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_add_ps (__m512 __A, __m512 __B) +{ + return (__m512) ((__v16sf)__A + (__v16sf)__B); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_add_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_add_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sub_pd (__m512d __A, __m512d __B) +{ + return (__m512d) ((__v8df)__A - (__v8df)__B); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sub_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sub_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sub_ps (__m512 __A, __m512 __B) +{ + return (__m512) ((__v16sf)__A - (__v16sf)__B); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sub_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sub_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mul_pd (__m512d __A, __m512d __B) +{ + return (__m512d) ((__v8df)__A * (__v8df)__B); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mul_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mul_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mul_ps (__m512 __A, __m512 __B) +{ + return (__m512) ((__v16sf)__A * (__v16sf)__B); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mul_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mul_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_div_pd (__m512d __M, __m512d __V) +{ + return (__m512d) ((__v8df)__M / (__v8df)__V); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_div_pd (__m512d __W, __mmask8 __U, __m512d __M, __m512d __V) +{ + return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M, + (__v8df) __V, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_div_pd (__mmask8 __U, __m512d __M, __m512d __V) +{ + return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M, + (__v8df) __V, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_div_ps (__m512 __A, __m512 __B) +{ + return (__m512) ((__v16sf)__A / (__v16sf)__B); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_div_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_div_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_scalef_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_scalef_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_scalef_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_scalefsd_round ((__v2df) __A, + (__v2df) __B, + 0x04); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_scalef_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_scalefss_round ((__v4sf) __A, + (__v4sf) __B, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmadd_pd (__m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmadd_ps (__m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmsub_pd (__m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) +{ + return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmsub_ps (__m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) +{ + return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmaddsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmaddsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmaddsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmaddsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmsubadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) +{ + return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmsubadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fmsubadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) +{ + return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fmsubadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask (-(__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fnmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fnmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask (-(__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fnmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fnmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_mask (-(__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fnmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) +{ + return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A, + (__v8df) __B, + (__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fnmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) +{ + return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A, + (__v8df) __B, + -(__v8df) __C, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_mask (-(__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_fnmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask3_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) +{ + return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_fnmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) +{ + return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A, + (__v16sf) __B, + -(__v16sf) __C, + (__mmask16) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttpd_epi32 (__m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttpd_epu32 (__m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtpd_epi32 (__m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtpd_epu32 (__m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttps_epi32 (__m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttps_epu32 (__m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtps_epi32 (__m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtps_epu32 (__m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, + (__v16si) + _mm512_undefined_si512 (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U, + 0x04); +} + + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtu64_ss (__m128 __A, unsigned long long __B) +{ + return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B, + 0x04); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtu64_sd (__m128d __A, unsigned long long __B) +{ + return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B, + 0x04); +} + + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtu32_ss (__m128 __A, unsigned __B) +{ + return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi32_ps (__m512i __A) +{ + return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu32_ps (__m512i __A) +{ + return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} +# 12229 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline unsigned long long +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_u64 (__m128 __A) +{ + return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) + __A, + 0x04); +} + +extern __inline unsigned long long +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_u64 (__m128 __A) +{ + return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) + __A, + 0x04); +} + +extern __inline long long +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_i64 (__m128 __A) +{ + return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, + 0x04); +} + + +extern __inline unsigned +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtss_u32 (__m128 __A) +{ + return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, + 0x04); +} + +extern __inline unsigned +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_u32 (__m128 __A) +{ + return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, + 0x04); +} + +extern __inline int +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttss_i32 (__m128 __A) +{ + return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, + 0x04); +} + + +extern __inline unsigned long long +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_u64 (__m128d __A) +{ + return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) + __A, + 0x04); +} + +extern __inline unsigned long long +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_u64 (__m128d __A) +{ + return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) + __A, + 0x04); +} + +extern __inline long long +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_i64 (__m128d __A) +{ + return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, + 0x04); +} + + +extern __inline unsigned +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsd_u32 (__m128d __A) +{ + return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, + 0x04); +} + +extern __inline unsigned +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_u32 (__m128d __A) +{ + return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, + 0x04); +} + +extern __inline int +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttsd_i32 (__m128d __A) +{ + return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtps_pd (__m256 __A) +{ + return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A, + (__v8df) + _mm512_undefined_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A) +{ + return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A) +{ + return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtph_ps (__m256i __A) +{ + return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, + (__v16sf) + _mm512_undefined_ps (), + (__mmask16) -1, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A) +{ + return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, + (__v16sf) __W, + (__mmask16) __U, + 0x04); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A) +{ + return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtpd_ps (__m512d __A) +{ + return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, + (__v8sf) + _mm256_undefined_ps (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A) +{ + return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, + (__v8sf) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A) +{ + return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U, + 0x04); +} +# 12936 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h" 3 4 +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kmov (__mmask16 __A) +{ + return __builtin_ia32_kmov16 (__A); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castpd_ps (__m512d __A) +{ + return (__m512) (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castpd_si512 (__m512d __A) +{ + return (__m512i) (__A); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castps_pd (__m512 __A) +{ + return (__m512d) (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castps_si512 (__m512 __A) +{ + return (__m512i) (__A); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castsi512_ps (__m512i __A) +{ + return (__m512) (__A); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castsi512_pd (__m512i __A) +{ + return (__m512d) (__A); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castpd512_pd128 (__m512d __A) +{ + return (__m128d)((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) ((__m512)__A), (int) (0), (__v4sf)(__m128)_mm_undefined_ps(), (__mmask8)-1)); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castps512_ps128 (__m512 __A) +{ + return ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (__A), (int) (0), (__v4sf)(__m128)_mm_undefined_ps(), (__mmask8)-1)); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castsi512_si128 (__m512i __A) +{ + return (__m128i)((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) ((__m512i)__A), (int) (0), (__v4si)(__m128i)_mm_undefined_si128 (), (__mmask8)-1)); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castpd512_pd256 (__m512d __A) +{ + return ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (__A), (int) (0), (__v4df)(__m256d)_mm256_undefined_pd(), (__mmask8)-1)); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castps512_ps256 (__m512 __A) +{ + return (__m256)((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) ((__m512d)__A), (int) (0), (__v4df)(__m256d)_mm256_undefined_pd(), (__mmask8)-1)); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castsi512_si256 (__m512i __A) +{ + return (__m256i)((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) ((__m512d)__A), (int) (0), (__v4df)(__m256d)_mm256_undefined_pd(), (__mmask8)-1)); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castpd128_pd512 (__m128d __A) +{ + return (__m512d) __builtin_ia32_pd512_pd((__m128d)__A); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castps128_ps512 (__m128 __A) +{ + return (__m512) __builtin_ia32_ps512_ps((__m128)__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castsi128_si512 (__m128i __A) +{ + return (__m512i) __builtin_ia32_si512_si((__v4si)__A); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castpd256_pd512 (__m256d __A) +{ + return __builtin_ia32_pd512_256pd (__A); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castps256_ps512 (__m256 __A) +{ + return __builtin_ia32_ps512_256ps (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_castsi256_si512 (__m256i __A) +{ + return (__m512i)__builtin_ia32_si512_256si ((__v8si)__A); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epu32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A, + (__v16si) __B, 0, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A, + (__v16si) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A, + (__v8di) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epu64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A, + (__v8di) __B, 0, + (__mmask8) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epu32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A, + (__v16si) __B, 6, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A, + (__v16si) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A, + (__v8di) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epu64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A, + (__v8di) __B, 6, + (__mmask8) -1); +} + + + +#pragma GCC pop_options +# 46 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512erintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512erintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512er") + + + + +typedef double __v8df __attribute__ ((__vector_size__ (64))); +typedef float __v16sf __attribute__ ((__vector_size__ (64))); + + + +typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__)); +typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__)); + +typedef unsigned char __mmask8; +typedef unsigned short __mmask16; +# 391 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512erintrin.h" 3 4 +#pragma GCC pop_options +# 48 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512pf") + + + + +typedef long long __v8di __attribute__ ((__vector_size__ (64))); +typedef int __v16si __attribute__ ((__vector_size__ (64))); + + + +typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__)); + +typedef unsigned char __mmask8; +typedef unsigned short __mmask16; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h" 3 4 +#pragma GCC pop_options +# 50 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512cdintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512cdintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512cd") + + + + +typedef long long __v8di __attribute__ ((__vector_size__ (64))); +typedef int __v16si __attribute__ ((__vector_size__ (64))); + + + +typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__)); +typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__)); + +typedef unsigned char __mmask8; +typedef unsigned short __mmask16; + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_conflict_epi32 (__m512i __A) +{ + return (__m512i) + __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_conflict_epi32 (__m512i __W, __mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_conflict_epi32 (__mmask16 __U, __m512i __A) +{ + return (__m512i) + __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_conflict_epi64 (__m512i __A) +{ + return (__m512i) + __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A, + (__v8di) _mm512_setzero_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_conflict_epi64 (__m512i __W, __mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_conflict_epi64 (__mmask8 __U, __m512i __A) +{ + return (__m512i) + __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A, + (__v8di) _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_lzcnt_epi64 (__m512i __A) +{ + return (__m512i) + __builtin_ia32_vplzcntq_512_mask ((__v8di) __A, + (__v8di) _mm512_setzero_si512 (), + (__mmask8) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_lzcnt_epi64 (__m512i __W, __mmask8 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_lzcnt_epi64 (__mmask8 __U, __m512i __A) +{ + return (__m512i) + __builtin_ia32_vplzcntq_512_mask ((__v8di) __A, + (__v8di) _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_lzcnt_epi32 (__m512i __A) +{ + return (__m512i) + __builtin_ia32_vplzcntd_512_mask ((__v16si) __A, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_lzcnt_epi32 (__m512i __W, __mmask16 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_lzcnt_epi32 (__mmask16 __U, __m512i __A) +{ + return (__m512i) + __builtin_ia32_vplzcntd_512_mask ((__v16si) __A, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastmb_epi64 (__mmask8 __A) +{ + return (__m512i) __builtin_ia32_broadcastmb512 (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastmw_epi32 (__mmask16 __A) +{ + return (__m512i) __builtin_ia32_broadcastmw512 (__A); +} + + + +#pragma GCC pop_options +# 52 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h" 3 4 +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setzero_di (void) +{ + return __extension__ (__m128i)(__v2di){ 0LL, 0LL}; +} + + +#pragma GCC push_options +#pragma GCC target("avx512vl") + + + + +typedef unsigned int __mmask32; + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_movapd256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_movapd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_movapd128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mov_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_movapd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P) +{ + return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_load_pd (__mmask8 __U, void const *__P) +{ + return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P) +{ + return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_load_pd (__mmask8 __U, void const *__P) +{ + return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A) +{ + __builtin_ia32_storeapd256_mask ((__v4df *) __P, + (__v4df) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A) +{ + __builtin_ia32_storeapd128_mask ((__v2df *) __P, + (__v2df) __A, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_movaps256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_movaps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_movaps128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mov_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_movaps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P) +{ + return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_load_ps (__mmask8 __U, void const *__P) +{ + return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P) +{ + return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_load_ps (__mmask8 __U, void const *__P) +{ + return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A) +{ + __builtin_ia32_storeaps256_mask ((__v8sf *) __P, + (__v8sf) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A) +{ + __builtin_ia32_storeaps128_mask ((__v4sf *) __P, + (__v4sf) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdqa64_256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdqa64_256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdqa64_128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdqa64_128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, + (__v4di) __W, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, + (__v2di) __W, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_load_epi64 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, + (__v2di) + _mm_setzero_di (), + (__mmask8) + __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A) +{ + __builtin_ia32_movdqa64store256_mask ((__v4di *) __P, + (__v4di) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_movdqa64store128_mask ((__v2di *) __P, + (__v2di) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdqa32_256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdqa32_256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdqa32_128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdqa32_128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, + (__v8si) __W, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, + (__v4si) __W, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_load_epi32 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) + __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A) +{ + __builtin_ia32_movdqa32store256_mask ((__v8si *) __P, + (__v8si) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_movdqa32store128_mask ((__v4si *) __P, + (__v4si) __A, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_setzero_hi (void) +{ + return __extension__ (__m128i) (__v8hi) + { + 0, 0, 0, 0, 0, 0, 0, 0}; +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_add_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_add_ps (__mmask16 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_add_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_add_ps (__mmask16 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sub_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sub_ps (__mmask16 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sub_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sub_ps (__mmask16 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_store_epi64 (void *__P, __m256i __A) +{ + *(__m256i *) __P = __A; +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_store_epi64 (void *__P, __m128i __A) +{ + *(__m128i *) __P = __A; +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P) +{ + return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P) +{ + return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P) +{ + return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_loadu_pd (__mmask8 __U, void const *__P) +{ + return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A) +{ + __builtin_ia32_storeupd256_mask ((__v4df *) __P, + (__v4df) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A) +{ + __builtin_ia32_storeupd128_mask ((__v2df *) __P, + (__v2df) __A, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P) +{ + return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P) +{ + return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P) +{ + return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_loadu_ps (__mmask8 __U, void const *__P) +{ + return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A) +{ + __builtin_ia32_storeups256_mask ((__v8sf *) __P, + (__v8sf) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A) +{ + __builtin_ia32_storeups128_mask ((__v4sf *) __P, + (__v4sf) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A) +{ + __builtin_ia32_storedqudi256_mask ((__v4di *) __P, + (__v4di) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_storedqudi128_mask ((__v2di *) __P, + (__v2di) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A) +{ + __builtin_ia32_storedqusi256_mask ((__v8si *) __P, + (__v8si) __A, + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_storedqusi128_mask ((__v4si *) __P, + (__v4si) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_abs_epi64 (__m256i __A) +{ + return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_abs_epi64 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtpd_epu32 (__m256d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpd_epu32 (__m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttps_epu32 (__m256 __A) +{ + return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttps_epu32 (__m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttpd_epu32 (__m256d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttpd_epu32 (__m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) +{ + return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) +{ + return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu32_pd (__m128i __A) +{ + return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) +{ + return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) +{ + return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu32_pd (__m128i __A) +{ + return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) +{ + return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) +{ + return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu32_ps (__m256i __A) +{ + return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) +{ + return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) +{ + return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu32_ps (__m128i __A) +{ + return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) +{ + return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) +{ + return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) +{ + return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) +{ + return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi32_epi8 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi32_epi8 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, + (__v16qi) __O, __M); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsepi32_epi8 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtsepi32_epi8 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtusepi32_epi8 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtusepi32_epi8 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi32_epi16 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, + (__v8hi) _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi32_epi16 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, + (__v8hi)_mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsepi32_epi16 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, + (__v8hi)_mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, + (__v8hi)__O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtsepi32_epi16 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtusepi32_epi16 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtusepi32_epi16 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi64_epi8 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi64_epi8 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsepi64_epi8 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtsepi64_epi8 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtusepi64_epi8 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtusepi64_epi8 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi64_epi16 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, + (__v8hi)__O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi64_epi16 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsepi64_epi16 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtsepi64_epi16 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtusepi64_epi16 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtusepi64_epi16 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, + (__v8hi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, + (__v8hi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi64_epi32 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, + (__v4si) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi64_epi32 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A, + (__v4si) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsepi64_epi32 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, + (__v4si) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtsepi64_epi32 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, + (__v4si)__O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtusepi64_epi32 (__m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) +{ + __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, + (__v4si) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtusepi64_epi32 (__m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) +{ + __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, + (__v4si) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A) +{ + return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A, + (__v8sf) __O, + __M); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) +{ + return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A, + (__v8sf) + _mm256_setzero_ps (), + __M); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A) +{ + return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A, + (__v4sf) __O, + __M); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) +{ + return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + __M); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A) +{ + return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A, + (__v4df) __O, + __M); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) +{ + return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A, + (__v4df) + _mm256_setzero_pd (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A, + (__v8si) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_set1_epi32 (__m256i __O, __mmask8 __M, int __A) +{ + return (__m256i) __builtin_ia32_pbroadcastd256_gpr_mask (__A, (__v8si) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_set1_epi32 (__mmask8 __M, int __A) +{ + return (__m256i) __builtin_ia32_pbroadcastd256_gpr_mask (__A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A, + (__v4si) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_set1_epi32 (__m128i __O, __mmask8 __M, int __A) +{ + return (__m128i) __builtin_ia32_pbroadcastd128_gpr_mask (__A, (__v4si) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_set1_epi32 (__mmask8 __M, int __A) +{ + return (__m128i) __builtin_ia32_pbroadcastd128_gpr_mask (__A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A, + (__v4di) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A) +{ + return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A) +{ + return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A, + (__v2di) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) +{ + return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_set1_epi64 (__mmask8 __M, long long __A) +{ + return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_f32x4 (__m128 __A) +{ + return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A, + (__v8sf)_mm256_undefined_pd (), + (__mmask8) - + 1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A) +{ + return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A, + (__v8sf) __O, + __M); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A) +{ + return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A, + (__v8sf) + _mm256_setzero_ps (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_i32x4 (__m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) + __A, + (__v8si)_mm256_undefined_si256 (), + (__mmask8) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) + __A, + (__v8si) + __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) + __A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X) +{ + return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X) +{ + return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X) +{ + return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X) +{ + return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rcp14_pd (__m256d __A) +{ + return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rcp14_pd (__m128d __A) +{ + return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rcp14_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rcp14_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rsqrt14_pd (__m256d __A) +{ + return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rsqrt14_pd (__m128d __A) +{ + return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rsqrt14_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rsqrt14_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_getexp_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_getexp_pd (__m256d __A) +{ + return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_getexp_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_getexp_pd (__m128d __A) +{ + return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A, + (__v4si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A, + (__v4si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_scalef_pd (__m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_scalef_ps (__m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A, + __m256 __B) +{ + return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_scalef_pd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A, + __m128d __B) +{ + return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_scalef_ps (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmadd_pd (__m256d __A, __mmask8 __U, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmadd_pd (__m256d __A, __m256d __B, __m256d __C, + __mmask8 __U) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmadd_pd (__mmask8 __U, __m256d __A, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmadd_pd (__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmadd_pd (__m128d __A, __m128d __B, __m128d __C, + __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmadd_pd (__mmask8 __U, __m128d __A, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmadd_ps (__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmadd_ps (__m256 __A, __m256 __B, __m256 __C, + __mmask8 __U) +{ + return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmadd_ps (__mmask8 __U, __m256 __A, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmadd_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmadd_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmadd_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmsub_pd (__m256d __A, __mmask8 __U, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A, + (__v4df) __B, + -(__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmsub_pd (__m256d __A, __m256d __B, __m256d __C, + __mmask8 __U) +{ + return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmsub_pd (__mmask8 __U, __m256d __A, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A, + (__v4df) __B, + -(__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsub_pd (__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A, + (__v2df) __B, + -(__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsub_pd (__m128d __A, __m128d __B, __m128d __C, + __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsub_pd (__mmask8 __U, __m128d __A, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A, + (__v2df) __B, + -(__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmsub_ps (__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A, + (__v8sf) __B, + -(__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmsub_ps (__m256 __A, __m256 __B, __m256 __C, + __mmask8 __U) +{ + return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmsub_ps (__mmask8 __U, __m256 __A, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A, + (__v8sf) __B, + -(__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsub_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A, + (__v4sf) __B, + -(__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsub_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsub_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A, + (__v4sf) __B, + -(__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmaddsub_pd (__m256d __A, __mmask8 __U, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmaddsub_pd (__m256d __A, __m256d __B, __m256d __C, + __mmask8 __U) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmaddsub_pd (__mmask8 __U, __m256d __A, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmaddsub_pd (__m128d __A, __mmask8 __U, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmaddsub_pd (__m128d __A, __m128d __B, __m128d __C, + __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmaddsub_pd (__mmask8 __U, __m128d __A, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) + __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmaddsub_ps (__m256 __A, __mmask8 __U, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmaddsub_ps (__m256 __A, __m256 __B, __m256 __C, + __mmask8 __U) +{ + return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmaddsub_ps (__mmask8 __U, __m256 __A, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmaddsub_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmaddsub_ps (__m128 __A, __m128 __B, __m128 __C, + __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmaddsub_ps (__mmask8 __U, __m128 __A, __m128 __B, + __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmsubadd_pd (__m256d __A, __mmask8 __U, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A, + (__v4df) __B, + -(__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmsubadd_pd (__m256d __A, __m256d __B, __m256d __C, + __mmask8 __U) +{ + return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmsubadd_pd (__mmask8 __U, __m256d __A, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A, + (__v4df) __B, + -(__v4df) __C, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsubadd_pd (__m128d __A, __mmask8 __U, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A, + (__v2df) __B, + -(__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsubadd_pd (__m128d __A, __m128d __B, __m128d __C, + __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsubadd_pd (__mmask8 __U, __m128d __A, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A, + (__v2df) __B, + -(__v2df) __C, + (__mmask8) + __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fmsubadd_ps (__m256 __A, __mmask8 __U, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A, + (__v8sf) __B, + -(__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fmsubadd_ps (__m256 __A, __m256 __B, __m256 __C, + __mmask8 __U) +{ + return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fmsubadd_ps (__mmask8 __U, __m256 __A, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A, + (__v8sf) __B, + -(__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsubadd_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A, + (__v4sf) __B, + -(__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsubadd_ps (__m128 __A, __m128 __B, __m128 __C, + __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsubadd_ps (__mmask8 __U, __m128 __A, __m128 __B, + __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A, + (__v4sf) __B, + -(__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fnmadd_pd (__m256d __A, __mmask8 __U, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fnmadd_pd (__m256d __A, __m256d __B, __m256d __C, + __mmask8 __U) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fnmadd_pd (__mmask8 __U, __m256d __A, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmadd_pd (__m128d __A, __mmask8 __U, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmadd_pd (__m128d __A, __m128d __B, __m128d __C, + __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmadd_pd (__mmask8 __U, __m128d __A, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fnmadd_ps (__m256 __A, __mmask8 __U, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fnmadd_ps (__m256 __A, __m256 __B, __m256 __C, + __mmask8 __U) +{ + return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fnmadd_ps (__mmask8 __U, __m256 __A, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmadd_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmadd_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmadd_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fnmsub_pd (__m256d __A, __mmask8 __U, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fnmsub_pd (__m256d __A, __m256d __B, __m256d __C, + __mmask8 __U) +{ + return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A, + (__v4df) __B, + (__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fnmsub_pd (__mmask8 __U, __m256d __A, __m256d __B, + __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A, + (__v4df) __B, + -(__v4df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmsub_pd (__m128d __A, __mmask8 __U, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmsub_pd (__m128d __A, __m128d __B, __m128d __C, + __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A, + (__v2df) __B, + (__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmsub_pd (__mmask8 __U, __m128d __A, __m128d __B, + __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A, + (__v2df) __B, + -(__v2df) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_fnmsub_ps (__m256 __A, __mmask8 __U, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask3_fnmsub_ps (__m256 __A, __m256 __B, __m256 __C, + __mmask8 __U) +{ + return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_fnmsub_ps (__mmask8 __U, __m256 __A, __m256 __B, + __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A, + (__v8sf) __B, + -(__v8sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmsub_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmsub_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmsub_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A, + (__v4sf) __B, + -(__v4sf) __C, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) +{ + return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) +{ + return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) +{ + return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) +{ + return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtps_epu32 (__m256 __A) +{ + return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) +{ + return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_epu32 (__m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_movddup256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_movddup256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_movddup128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_movddup128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpackhi_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpackhi_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpackhi_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpackhi_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpackhi_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpackhi_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpackhi_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpackhi_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpacklo_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpacklo_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpacklo_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpacklo_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpacklo_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpacklo_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpacklo_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpacklo_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epu32_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A, + (__v4si) __B, 0, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi32_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqd128_mask ((__v4si) __A, + (__v4si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epu32_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A, + (__v4si) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqd128_mask ((__v4si) __A, + (__v4si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epu32_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A, + (__v8si) __B, 0, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi32_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqd256_mask ((__v8si) __A, + (__v8si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epu32_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A, + (__v8si) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqd256_mask ((__v8si) __A, + (__v8si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epu64_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A, + (__v2di) __B, 0, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi64_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqq128_mask ((__v2di) __A, + (__v2di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epu64_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A, + (__v2di) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqq128_mask ((__v2di) __A, + (__v2di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epu64_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A, + (__v4di) __B, 0, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi64_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqq256_mask ((__v4di) __A, + (__v4di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epu64_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A, + (__v4di) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqq256_mask ((__v4di) __A, + (__v4di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epu32_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A, + (__v4si) __B, 6, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi32_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtd128_mask ((__v4si) __A, + (__v4si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epu32_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A, + (__v4si) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtd128_mask ((__v4si) __A, + (__v4si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epu32_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A, + (__v8si) __B, 6, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi32_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtd256_mask ((__v8si) __A, + (__v8si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epu32_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A, + (__v8si) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtd256_mask ((__v8si) __A, + (__v8si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epu64_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A, + (__v2di) __B, 6, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi64_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtq128_mask ((__v2di) __A, + (__v2di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epu64_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A, + (__v2di) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtq128_mask ((__v2di) __A, + (__v2di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epu64_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A, + (__v4di) __B, 6, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi64_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtq256_mask ((__v4di) __A, + (__v4di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epu64_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A, + (__v4di) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtq256_mask ((__v4di) __A, + (__v4di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_test_epi32_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A, + (__v4si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A, + (__v4si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_test_epi32_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A, + (__v8si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A, + (__v8si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_test_epi64_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A, + (__v2di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A, + (__v2di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_test_epi64_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A, + (__v4di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A, + (__v4di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testn_epi32_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A, + (__v4si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A, + (__v4si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testn_epi32_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A, + (__v8si) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A, + (__v8si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testn_epi64_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A, + (__v2di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A, + (__v2di) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testn_epi64_mask (__m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A, + (__v4di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A, + (__v4di) __B, __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) +{ + __builtin_ia32_compressstoredf256_mask ((__v4df *) __P, + (__v4df) __A, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) +{ + __builtin_ia32_compressstoredf128_mask ((__v2df *) __P, + (__v2df) __A, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) +{ + __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P, + (__v8sf) __A, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) +{ + __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P, + (__v4sf) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) +{ + __builtin_ia32_compressstoredi256_mask ((__v4di *) __P, + (__v4di) __A, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_compressstoredi128_mask ((__v2di *) __P, + (__v2di) __A, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) +{ + __builtin_ia32_compressstoresi256_mask ((__v8si *) __P, + (__v8si) __A, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_compressstoresi128_mask ((__v4si *) __P, + (__v4si) __A, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) +{ + return (__m256d) __builtin_ia32_expanddf256_maskz ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) +{ + return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, + (__v4df) __W, + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) +{ + return (__m256d) __builtin_ia32_expandloaddf256_maskz ((__v4df *) __P, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) +{ + return (__m128d) __builtin_ia32_expanddf128_maskz ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) +{ + return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, + (__v2df) __W, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) +{ + return (__m128d) __builtin_ia32_expandloaddf128_maskz ((__v2df *) __P, + (__v2df) + _mm_setzero_pd (), + (__mmask8) + __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) +{ + return (__m256) __builtin_ia32_expandsf256_maskz ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) +{ + return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) +{ + return (__m256) __builtin_ia32_expandloadsf256_maskz ((__v8sf *) __P, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) + __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) +{ + return (__m128) __builtin_ia32_expandsf128_maskz ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) +{ + return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) +{ + return (__m128) __builtin_ia32_expandloadsf128_maskz ((__v4sf *) __P, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_expanddi256_maskz ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U, + void const *__P) +{ + return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, + (__v4di) __W, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_expandloaddi256_maskz ((__v4di *) __P, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_expanddi128_maskz ((__v2di) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, + (__v2di) __W, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_expandloaddi128_maskz ((__v2di *) __P, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_expandsi256_maskz ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U, + void const *__P) +{ + return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, + (__v8si) __W, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_expandloadsi256_maskz ((__v8si *) __P, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_expandsi128_maskz ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, + (__v4si) __W, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_expandloadsi128_maskz ((__v4si *) __P, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) +{ + return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I + , + (__v4df) __A, + (__v4df) __B, + (__mmask8) - + 1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I, + __m256d __B) +{ + return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I + , + (__v4df) __A, + (__v4df) __B, + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U, + __m256d __B) +{ + return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A, + (__v4di) __I + , + (__v4df) __B, + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I, + __m256d __B) +{ + return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I + , + (__v4df) __A, + (__v4df) __B, + (__mmask8) + __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) +{ + return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I + , + (__v8sf) __A, + (__v8sf) __B, + (__mmask8) -1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I, + __m256 __B) +{ + return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I + , + (__v8sf) __A, + (__v8sf) __B, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U, + __m256 __B) +{ + return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A, + (__v8si) __I + , + (__v8sf) __B, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I, + __m256 __B) +{ + return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I + , + (__v8sf) __A, + (__v8sf) __B, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I + , + (__v2di) __A, + (__v2di) __B, + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I + , + (__v2di) __A, + (__v2di) __B, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A, + (__v2di) __I + , + (__v2di) __B, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I + , + (__v2di) __A, + (__v2di) __B, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I + , + (__v4si) __A, + (__v4si) __B, + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I + , + (__v4si) __A, + (__v4si) __B, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A, + (__v4si) __I + , + (__v4si) __B, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I + , + (__v4si) __A, + (__v4si) __B, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I + , + (__v4di) __A, + (__v4di) __B, + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I, + __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I + , + (__v4di) __A, + (__v4di) __B, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I, + __mmask8 __U, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A, + (__v4di) __I + , + (__v4di) __B, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A, + __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I + , + (__v4di) __A, + (__v4di) __B, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I + , + (__v8si) __A, + (__v8si) __B, + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I, + __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I + , + (__v8si) __A, + (__v8si) __B, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I, + __mmask8 __U, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A, + (__v8si) __I + , + (__v8si) __B, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A, + __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I + , + (__v8si) __A, + (__v8si) __B, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) +{ + return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I + , + (__v2df) __A, + (__v2df) __B, + (__mmask8) - + 1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I, + __m128d __B) +{ + return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I + , + (__v2df) __A, + (__v2df) __B, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U, + __m128d __B) +{ + return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A, + (__v2di) __I + , + (__v2df) __B, + (__mmask8) + __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I, + __m128d __B) +{ + return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I + , + (__v2df) __A, + (__v2df) __B, + (__mmask8) + __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) +{ + return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I + , + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I, + __m128 __B) +{ + return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I + , + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U, + __m128 __B) +{ + return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A, + (__v4si) __I + , + (__v4sf) __B, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I, + __m128 __B) +{ + return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I + , + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srav_epi64 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X, + (__v8si) __Y, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X, + (__v8si) __Y, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X, + (__v4si) __Y, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X, + (__v4si) __Y, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X, + (__v8si) __Y, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X, + (__v8si) __Y, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X, + (__v4si) __Y, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X, + (__v4si) __Y, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X, + (__v8si) __Y, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X, + (__v8si) __Y, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X, + (__v4si) __Y, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X, + (__v4si) __Y, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rolv_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rolv_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rorv_epi32 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rorv_epi32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rolv_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rolv_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_rorv_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rorv_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srav_epi64 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_pd (), + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_pd (), + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_pd (), + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_pd (), + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_max_epu64 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_min_epu64 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_max_epu64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_min_epu64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, __M); +} + + +#pragma GCC push_options +#pragma GCC target("avx512vl,avx512cd") + + + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastmb_epi64 (__mmask8 __A) +{ + return (__m128i) __builtin_ia32_broadcastmb128 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastmb_epi64 (__mmask8 __A) +{ + return (__m256i) __builtin_ia32_broadcastmb256 (__A); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcastmw_epi32 (__mmask16 __A) +{ + return (__m128i) __builtin_ia32_broadcastmw128 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcastmw_epi32 (__mmask16 __A) +{ + return (__m256i) __builtin_ia32_broadcastmw256 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_lzcnt_epi32 (__m256i __A) +{ + return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_lzcnt_epi64 (__m256i __A) +{ + return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_conflict_epi64 (__m256i __A) +{ + return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_conflict_epi32 (__m256i __A) +{ + return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_lzcnt_epi32 (__m128i __A) +{ + return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_lzcnt_epi64 (__m128i __A) +{ + return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_conflict_epi64 (__m128i __A) +{ + return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) - + 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_conflict_epi32 (__m128i __A) +{ + return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) - + 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) + __U); +} + + +#pragma GCC pop_options + + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpacklo_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpacklo_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpacklo_pd (__m128d __W, __mmask8 __U, __m128d __A, + __m128d __B) +{ + return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpacklo_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpacklo_ps (__m256 __W, __mmask8 __U, __m256 __A, + __m256 __B) +{ + return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpackhi_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpackhi_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpackhi_pd (__m128d __W, __mmask8 __U, __m128d __A, + __m128d __B) +{ + return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpackhi_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpackhi_ps (__m256 __W, __mmask8 __U, __m256 __A, + __m256 __B) +{ + return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpackhi_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpackhi_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpackhi_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpacklo_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A) +{ + return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A) +{ + return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpacklo_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpacklo_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A, + (__v4si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A, + (__v4si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sra_epi64 (__m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sra_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A, + (__v4si) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A, + (__v4si) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A, + (__v2di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X, + __m256 __Y) +{ + return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y, + (__v8si) __X, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y) +{ + return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y, + (__v8si) __X, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutexvar_pd (__m256i __X, __m256d __Y) +{ + return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y, + (__v4di) __X, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X, + __m256d __Y) +{ + return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y, + (__v4di) __X, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y) +{ + return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y, + (__v4di) __X, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256i __C) +{ + return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A, + (__v4di) __C, + (__v4df) __W, + (__mmask8) + __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C) +{ + return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A, + (__v4di) __C, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) + __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A, + __m256i __C) +{ + return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A, + (__v8si) __C, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C) +{ + return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A, + (__v8si) __C, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A, + __m128i __C) +{ + return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A, + (__v2di) __C, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C) +{ + return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A, + (__v2di) __C, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A, + __m128i __C) +{ + return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A, + (__v4si) __C, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C) +{ + return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A, + (__v4si) __C, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y, + (__v4di) __X, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A, + (__v8si) __B, + (__v8si) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, + (__v4si) __B, + (__v4si) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X, + (__v8si) __Y, + (__v4di) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X, + (__v8si) __Y, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X, + (__v4si) __Y, + (__v2di) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X, + (__v4si) __Y, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y, + (__v4di) __X, + (__v4di) __W, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X, + (__v8si) __Y, + (__v4di) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y, + (__v8si) __X, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X, + (__v8si) __Y, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X, + (__v4si) __Y, + (__v2di) __W, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X, + (__v4si) __Y, + (__v2di) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y, + (__v8si) __X, + (__v8si) __W, + __M); +} +# 13595 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h" 3 4 +#pragma GCC pop_options +# 54 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512bwintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512bwintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512bw") + + + + +typedef short __v32hi __attribute__ ((__vector_size__ (64))); +typedef char __v64qi __attribute__ ((__vector_size__ (64))); + +typedef unsigned long long __mmask64; + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_setzero_qi (void) +{ + return __extension__ (__m512i)(__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 }; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_setzero_hi (void) +{ + return __extension__ (__m512i)(__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 }; +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A) +{ + __builtin_ia32_storedquhi512_mask ((__v32hi *) __P, + (__v32hi) __A, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A, + (__v64qi) + _mm512_setzero_hi (), + (__mmask64) __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kunpackw (__mmask32 __A, __mmask32 __B) +{ + return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A, + (__mmask32) __B); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_kunpackd (__mmask64 __A, __mmask64 __B) +{ + return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A, + (__mmask64) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P) +{ + return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, + (__v64qi) + _mm512_setzero_hi (), + (__mmask64) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A) +{ + __builtin_ia32_storedquqi512_mask ((__v64qi *) __P, + (__v64qi) __A, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sad_epu8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A, + (__v64qi) __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi16_epi8 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, + (__v32qi) _mm256_undefined_si256(), + (__mmask32) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, + (__v32qi) __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtsepi16_epi8 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, + (__v32qi)_mm256_undefined_si256(), + (__mmask32) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, + (__v32qi)__O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtusepi16_epi8 (__m512i __A) +{ + return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, + (__v32qi)_mm256_undefined_si256(), + (__mmask32) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, + (__v32qi) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) +{ + return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastb_epi8 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A, + (__v64qi)_mm512_undefined_si512(), + (__mmask64) - + 1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A, + (__v64qi) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A, + (__v64qi) + _mm512_setzero_qi(), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A) +{ + return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A, + (__v64qi) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_set1_epi8 (__mmask64 __M, char __A) +{ + return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A, + (__v64qi) + _mm512_setzero_qi(), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcastw_epi16 (__m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A, + (__v32hi)_mm512_undefined_si512(), + (__mmask32)-1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A, + (__v32hi) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A, + (__v32hi) + _mm512_setzero_hi(), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A) +{ + return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A, + (__v32hi) __O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_set1_epi16 (__mmask32 __M, short __A) +{ + return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A, + (__v32hi) + _mm512_setzero_hi(), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mulhrs_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mulhi_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mulhi_epu16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mullo_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v32hu) __A * (__v32hu) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi8_epi16 (__m256i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu8_epi16 (__m256i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A) +{ + return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutexvar_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B, + (__v32hi) __A, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B, + (__v32hi) __A, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B, + (__v32hi) __A, + (__v32hi) __W, + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I + , + (__v32hi) __A, + (__v32hi) __B, + (__mmask32) - + 1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I + , + (__v32hi) __A, + (__v32hi) __B, + (__mmask32) + __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I, + __mmask32 __U, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A, + (__v32hi) __I + , + (__v32hi) __B, + (__mmask32) + __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I + , + (__v32hi) __A, + (__v32hi) __B, + (__mmask32) + __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_avg_epu8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_add_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v64qu) __A + (__v64qu) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sub_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v64qu) __A - (__v64qu) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_avg_epu16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_subs_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_subs_epu8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_adds_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_adds_epu8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sub_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v32hu) __A - (__v32hu) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_subs_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_subs_epu16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_add_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v32hu) __A + (__v32hu) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_adds_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_adds_epu16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srl_epi16 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m128i __B) +{ + return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_packs_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sll_epi16 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m128i __B) +{ + return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maddubs_epi16 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, + (__v64qi) __Y, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X, + __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, + (__v64qi) __Y, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, + (__v64qi) __Y, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_madd_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v16si) __W, + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpackhi_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpackhi_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpackhi_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpackhi_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpackhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpackhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpacklo_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpacklo_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpacklo_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_unpacklo_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_unpacklo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_unpacklo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epu8_mask (__m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, + (__v64qi) __B, 0, + (__mmask64) -1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epi8_mask (__m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__mmask64) -1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, + (__v64qi) __B, 0, + __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A, + (__v64qi) __B, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epu16_mask (__m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, + (__v32hi) __B, 0, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpeq_epi16_mask (__m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, + (__v32hi) __B, 0, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpeq_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A, + (__v32hi) __B, + __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epu8_mask (__m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, + (__v64qi) __B, 6, + (__mmask64) -1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epi8_mask (__m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__mmask64) -1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, + (__v64qi) __B, 6, + __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A, + (__v64qi) __B, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epu16_mask (__m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, + (__v32hi) __B, 6, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpgt_epi16_mask (__m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, + (__v32hi) __B, 6, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpgt_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A, + (__v32hi) __B, + __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movepi8_mask (__m512i __A) +{ + return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movepi16_mask (__m512i __A) +{ + return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movm_epi8 (__mmask64 __A) +{ + return (__m512i) __builtin_ia32_cvtmask2b512 (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movm_epi16 (__mmask32 __A) +{ + return (__m512i) __builtin_ia32_cvtmask2w512 (__A); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_test_epi8_mask (__m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A, + (__v64qi) __B, + (__mmask64) -1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A, + (__v64qi) __B, __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_test_epi16_mask (__m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A, + (__v32hi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A, + (__v32hi) __B, __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_testn_epi8_mask (__m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A, + (__v64qi) __B, + (__mmask64) -1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A, + (__v64qi) __B, __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_testn_epi16_mask (__m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A, + (__v32hi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A, + (__v32hi) __B, __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_shuffle_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epu16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epu8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epu8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_min_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, + (__v64qi) __B, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_max_epu16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi(), + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sra_epi16 (__m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m128i __B) +{ + return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B) +{ + return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A, + (__v8hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srav_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_srlv_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_sllv_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A, + (__v32hi) __B, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v64qi) + _mm512_setzero_qi(), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_packus_epi16 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, + (__v32hi) __B, + (__v64qi) + _mm512_setzero_qi(), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_abs_epi8 (__m512i __A) +{ + return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, + (__v64qi) __W, + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, + (__v64qi) + _mm512_setzero_qi (), + (__mmask64) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_abs_epi16 (__m512i __A) +{ + return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, + (__v32hi) __W, + (__mmask32) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A) +{ + return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, + (__v32hi) + _mm512_setzero_hi (), + (__mmask32) __U); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 4, + (__mmask64) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 1, + (__mmask64) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 5, + (__mmask64) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 2, + (__mmask64) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 4, + (__mmask32) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 1, + (__mmask32) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 5, + (__mmask32) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 2, + (__mmask32) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 4, + (__mmask64) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 1, + (__mmask64) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 5, + (__mmask64) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 2, + (__mmask64) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpneq_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 4, + (__mmask32) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmplt_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 1, + (__mmask32) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmpge_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 5, + (__mmask32) __M); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cmple_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 2, + (__mmask32) __M); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epu8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 4, + (__mmask64) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epu8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 1, + (__mmask64) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epu8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 5, + (__mmask64) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epu8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 2, + (__mmask64) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epu16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 4, + (__mmask32) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epu16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 1, + (__mmask32) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epu16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 5, + (__mmask32) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epu16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 2, + (__mmask32) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epi8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 4, + (__mmask64) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epi8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 1, + (__mmask64) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epi8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 5, + (__mmask64) - 1); +} + +extern __inline __mmask64 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epi8_mask (__m512i __X, __m512i __Y) +{ + return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, + (__v64qi) __Y, 2, + (__mmask64) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpneq_epi16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 4, + (__mmask32) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmplt_epi16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 1, + (__mmask32) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmpge_epi16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 5, + (__mmask32) - 1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cmple_epi16_mask (__m512i __X, __m512i __Y) +{ + return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, + (__v32hi) __Y, 2, + (__mmask32) - 1); +} +# 2992 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512bwintrin.h" 3 4 +#pragma GCC pop_options +# 56 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512dqintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512dqintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512dq") + + + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_f64x2 (__m128d __A) +{ + return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) + __A, + _mm512_undefined_pd(), + (__mmask8) - + 1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A) +{ + return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) + __A, + (__v8df) + __O, __M); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) +{ + return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) + __A, + (__v8df) + _mm512_setzero_ps (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_i64x2 (__m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) + __A, + _mm512_undefined_si512(), + (__mmask8) - + 1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) + __A, + (__v8di) + __O, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) + __A, + (__v8di) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_f32x2 (__m128 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, + (__v16sf)_mm512_undefined_ps(), + (__mmask16) - + 1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, + (__v16sf) + __O, __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, + (__v16sf) + _mm512_setzero_ps (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_i32x2 (__m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) + __A, + (__v16si)_mm512_undefined_si512(), + (__mmask16) + -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) + __A, + (__v16si) + __O, __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) + __A, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_f32x8 (__m256 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A, + _mm512_undefined_ps(), + (__mmask16) - + 1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A, + (__v16sf)__O, + __M); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A) +{ + return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A, + (__v16sf) + _mm512_setzero_ps (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_broadcast_i32x8 (__m256i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) + __A, + (__v16si)_mm512_undefined_si512(), + (__mmask16) + -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) + __A, + (__v16si)__O, + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A) +{ + return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) + __A, + (__v16si) + _mm512_setzero_si512 (), + __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mullo_epi64 (__m512i __A, __m512i __B) +{ + return (__m512i) ((__v8du) __A * (__v8du) __B); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) __W, + (__mmask8) __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A, + (__v8di) __B, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_xor_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A, + __m512d __B) +{ + return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_xor_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_or_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_or_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_and_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A, + __m512d __B) +{ + return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_and_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_andnot_pd (__m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A, + __m512d __B) +{ + return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) __W, + (__mmask8) __U); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B) +{ + return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A, + (__v8df) __B, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_andnot_ps (__m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) -1); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A, + __m512 __B) +{ + return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) __W, + (__mmask16) __U); +} + +extern __inline __m512 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B) +{ + return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A, + (__v16sf) __B, + (__v16sf) + _mm512_setzero_ps (), + (__mmask16) __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movepi32_mask (__m512i __A) +{ + return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movepi64_mask (__m512i __A) +{ + return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movm_epi32 (__mmask16 __A) +{ + return (__m512i) __builtin_ia32_cvtmask2d512 (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_movm_epi64 (__mmask8 __A) +{ + return (__m512i) __builtin_ia32_cvtmask2q512 (__A); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttpd_epi64 (__m512d __A) +{ + return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttpd_epu64 (__m512d __A) +{ + return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttps_epi64 (__m256 __A) +{ + return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvttps_epu64 (__m256 __A) +{ + return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtpd_epi64 (__m512d __A) +{ + return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtpd_epu64 (__m512d __A) +{ + return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) +{ + return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtps_epi64 (__m256 __A) +{ + return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtps_epu64 (__m256 __A) +{ + return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, + (__v8di) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) +{ + return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, + (__v8di) + _mm512_setzero_si512 (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi64_ps (__m512i __A) +{ + return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) +{ + return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, + (__v8sf) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) +{ + return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu64_ps (__m512i __A) +{ + return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) +{ + return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, + (__v8sf) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) +{ + return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepi64_pd (__m512i __A) +{ + return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) +{ + return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) +{ + return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_cvtepu64_pd (__m512i __A) +{ + return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) -1, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) +{ + return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, + (__v8df) __W, + (__mmask8) __U, + 0x04); +} + +extern __inline __m512d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) +{ + return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, + (__v8df) + _mm512_setzero_pd (), + (__mmask8) __U, + 0x04); +} +# 2298 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512dqintrin.h" 3 4 +#pragma GCC pop_options +# 58 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlbwintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlbwintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512vl,avx512bw") + + + + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A, + (__v16qi) + _mm_setzero_hi (), + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A) +{ + __builtin_ia32_storedquqi256_mask ((__v32qi *) __P, + (__v32qi) __A, + (__mmask32) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A) +{ + __builtin_ia32_storedquqi128_mask ((__v16qi *) __P, + (__v16qi) __A, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P) +{ + return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P) +{ + return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, + (__v16qi) + _mm_setzero_hi (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi16_epi8 (__m256i __A) +{ + + return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask16) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtsepi16_epi8 (__m128i __A) +{ + + return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtsepi16_epi8 (__m256i __A) +{ + + return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask16) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtusepi16_epi8 (__m128i __A) +{ + + return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtusepi16_epi8 (__m256i __A) +{ + + return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask16) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) +{ + return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A, + (__v32qi) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) +{ + return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, + (__v32qi) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_set1_epi8 (__mmask32 __M, char __A) +{ + return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) +{ + return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, + (__v16qi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_set1_epi8 (__mmask16 __M, char __A) +{ + return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A, + (__v16hi) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) +{ + return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, + (__v16hi) __O, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_set1_epi16 (__mmask16 __M, short __A) +{ + return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A, + (__v8hi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) +{ + return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, + (__v8hi) __O, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_set1_epi16 (__mmask8 __M, short __A) +{ + return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutexvar_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, + (__v16hi) __A, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, + (__v16hi) __A, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, + (__v16hi) __A, + (__v16hi) __W, + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutexvar_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, + (__v8hi) __A, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, + (__v8hi) __A, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, + (__v8hi) __A, + (__v8hi) __W, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I + , + (__v16hi) __A, + (__v16hi) __B, + (__mmask16) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U, + __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I + , + (__v16hi) __A, + (__v16hi) __B, + (__mmask16) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I, + __mmask16 __U, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A, + (__v16hi) __I + , + (__v16hi) __B, + (__mmask16) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, + __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I + , + (__v16hi) __A, + (__v16hi) __B, + (__mmask16) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I + , + (__v8hi) __A, + (__v8hi) __B, + (__mmask8) - + 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I + , + (__v8hi) __A, + (__v8hi) __B, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A, + (__v8hi) __I + , + (__v8hi) __B, + (__mmask8) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I + , + (__v8hi) __A, + (__v8hi) __B, + (__mmask8) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X, + (__v32qi) __Y, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X, + (__v32qi) __Y, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X, + (__v16qi) __Y, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X, + (__v16qi) __Y, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v8si) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v4si) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movepi8_mask (__m128i __A) +{ + return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movepi8_mask (__m256i __A) +{ + return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movepi16_mask (__m128i __A) +{ + return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movepi16_mask (__m256i __A) +{ + return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movm_epi8 (__mmask16 __A) +{ + return (__m128i) __builtin_ia32_cvtmask2b128 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movm_epi8 (__mmask32 __A) +{ + return (__m256i) __builtin_ia32_cvtmask2b256 (__A); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movm_epi16 (__mmask8 __A) +{ + return (__m128i) __builtin_ia32_cvtmask2w128 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movm_epi16 (__mmask16 __A) +{ + return (__m256i) __builtin_ia32_cvtmask2w256 (__A); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_test_epi8_mask (__m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, + (__v16qi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, + (__v16qi) __B, __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_test_epi8_mask (__m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, + (__v32qi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, + (__v32qi) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_test_epi16_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, + (__v8hi) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, + (__v8hi) __B, __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_test_epi16_mask (__m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, + (__v16hi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, + (__v16hi) __B, __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_di (), + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_di (), + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_di (), + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_di (), + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_di (), + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_di (), + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_di (), + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_di (), + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __M); +} +# 2006 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlbwintrin.h" 3 4 +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpneq_epi8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 4, + (__mmask32) - 1); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmplt_epi8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 1, + (__mmask32) - 1); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpge_epi8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 5, + (__mmask32) - 1); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmple_epi8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 2, + (__mmask32) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpneq_epi16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 4, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmplt_epi16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 1, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpge_epi16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 5, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmple_epi16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 2, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_epu8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 4, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epu8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 1, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_epu8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 5, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_epu8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 2, + (__mmask16) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_epu16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 4, + (__mmask8) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epu16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 1, + (__mmask8) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_epu16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 5, + (__mmask8) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_epu16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 2, + (__mmask8) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_epi8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 4, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epi8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 1, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_epi8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 5, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_epi8_mask (__m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 2, + (__mmask16) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpneq_epi16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 4, + (__mmask8) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmplt_epi16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 1, + (__mmask8) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpge_epi16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 5, + (__mmask8) - 1); +} + +extern __inline __mmask8 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmple_epi16_mask (__m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 2, + (__mmask8) - 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X, + (__v16hi) __Y, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X, + (__v16hi) __Y, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, + __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X, + (__v8hi) __Y, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X, + (__v8hi) __Y, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A) +{ + return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi8_mask (__m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epu8_mask (__m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, + (__v16qi) __B, 0, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, + (__v16qi) __B, 0, + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A, + (__v16qi) __B, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epu8_mask (__m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, + (__v32qi) __B, 0, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi8_mask (__m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, + (__v32qi) __B, 0, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A, + (__v32qi) __B, + __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epu16_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, + (__v8hi) __B, 0, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpeq_epi16_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, + (__v8hi) __B, 0, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpeq_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A, + (__v8hi) __B, __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epu16_mask (__m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, + (__v16hi) __B, 0, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpeq_epi16_mask (__m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, + (__v16hi) __B, 0, + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpeq_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A, + (__v16hi) __B, + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epu8_mask (__m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, + (__v16qi) __B, 6, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi8_mask (__m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, + (__v16qi) __B, 6, + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A, + (__v16qi) __B, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epu8_mask (__m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, + (__v32qi) __B, 6, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi8_mask (__m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, + (__v32qi) __B, 6, + __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A, + (__v32qi) __B, + __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epu16_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, + (__v8hi) __B, 6, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmpgt_epi16_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, + (__v8hi) __B, 6, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpgt_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A, + (__v8hi) __B, __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epu16_mask (__m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, + (__v16hi) __B, 6, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpgt_epi16_mask (__m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A, + (__v16hi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, + (__v16hi) __B, 6, + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpgt_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A, + (__v16hi) __B, + __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testn_epi8_mask (__m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, + (__v16qi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, + (__v16qi) __B, __U); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testn_epi8_mask (__m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, + (__v32qi) __B, + (__mmask32) -1); +} + +extern __inline __mmask32 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, + (__v32qi) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_testn_epi16_mask (__m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, + (__v8hi) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, + (__v8hi) __B, __U); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_testn_epi16_mask (__m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, + (__v16hi) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, + (__v16hi) __B, __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A, + (__v32qi) __B, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v32qi) __W, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v16qi) __W, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v32qi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A, + (__v16hi) __B, + (__v32qi) __W, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v16qi) __W, + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A, + (__v32qi) __W, + (__mmask32) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A) +{ + return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A) +{ + return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpneq_epu8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 4, + (__mmask32) - 1); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmplt_epu8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 1, + (__mmask32) - 1); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpge_epu8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 5, + (__mmask32) - 1); +} + +extern __inline __mmask32 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmple_epu8_mask (__m256i __X, __m256i __Y) +{ + return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 2, + (__mmask32) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpneq_epu16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 4, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmplt_epu16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 1, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmpge_epu16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 5, + (__mmask16) - 1); +} + +extern __inline __mmask16 + __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cmple_epu16_mask (__m256i __X, __m256i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 2, + (__mmask16) - 1); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A) +{ + __builtin_ia32_storedquhi256_mask ((__v16hi *) __P, + (__v16hi) __A, + (__mmask16) __U); +} + +extern __inline void +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A) +{ + __builtin_ia32_storedquhi128_mask ((__v8hi *) __P, + (__v8hi) __A, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A, + (__v8hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A, + (__v8hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A, + (__v8hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A, + (__v8hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) __W, + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A, + (__v16qi) __B, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi16_epi8 (__m128i __A) +{ + + return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, + (__v16qi)_mm_undefined_si128(), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, + (__v16qi) __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, + (__v16qi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srav_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srav_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_srlv_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_srlv_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_sllv_epi16 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A, + (__v16hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sllv_epi16 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_hi (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A, + (__v8hi) __B, + (__v8hi) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A, + __m128i __B) +{ + return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A, + (__v8hi) __B, + (__v16hi) __W, + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B) +{ + return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A, + (__v8hi) __B, + (__v16hi) + _mm256_setzero_si256 (), + (__mmask16) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A, + (__v8si) __B, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A, + (__v8si) __B, + (__v16hi) __W, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, + (__v4si) __B, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, + (__v4si) __B, + (__v8hi) __W, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A, + (__v8si) __B, + (__v16hi) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A, + (__v8si) __B, + (__v16hi) __W, + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, + (__v4si) __B, + (__v8hi) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, + (__v4si) __B, + (__v8hi) __W, __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpneq_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 4, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmplt_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 1, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpge_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 5, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmple_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 2, + (__mmask16) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpneq_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmplt_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpge_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmple_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpneq_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 4, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmplt_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 1, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpge_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 5, + (__mmask16) __M); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmple_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, + (__v16qi) __Y, 2, + (__mmask16) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpneq_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmplt_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmpge_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cmple_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, + (__v8hi) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpneq_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmplt_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpge_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmple_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpneq_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmplt_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpge_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmple_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpneq_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmplt_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpge_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmple_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, + (__v32qi) __Y, 2, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpneq_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 4, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmplt_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 1, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmpge_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 5, + (__mmask8) __M); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cmple_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) +{ + return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, + (__v16hi) __Y, 2, + (__mmask8) __M); +} + + + +#pragma GCC pop_options +# 60 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vldqintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vldqintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512vl,avx512dq") + + + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttpd_epi64 (__m256d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttpd_epi64 (__m256i __W, __mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttpd_epi64 (__mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttpd_epi64 (__m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttpd_epi64 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttpd_epi64 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttpd_epu64 (__m256d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttpd_epu64 (__m256i __W, __mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttpd_epu64 (__mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttpd_epu64 (__m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttpd_epu64 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttpd_epu64 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtpd_epi64 (__m256d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtpd_epi64 (__m256i __W, __mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtpd_epi64 (__mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpd_epi64 (__m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtpd_epi64 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtpd_epi64 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtpd_epu64 (__m256d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtpd_epu64 (__m256i __W, __mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtpd_epu64 (__mmask8 __U, __m256d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtpd_epu64 (__m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtpd_epu64 (__m128i __W, __mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtpd_epu64 (__mmask8 __U, __m128d __A) +{ + return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttps_epi64 (__m128 __A) +{ + return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttps_epi64 (__m256i __W, __mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttps_epi64 (__mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttps_epi64 (__m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttps_epi64 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttps_epi64 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvttps_epu64 (__m128 __A) +{ + return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvttps_epu64 (__m256i __W, __mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvttps_epu64 (__mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvttps_epu64 (__m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvttps_epu64 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvttps_epu64 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_f64x2 (__m128d __A) +{ + return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df) + __A, + (__v4df)_mm256_undefined_pd(), + (__mmask8) - + 1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcast_f64x2 (__m256d __O, __mmask8 __M, __m128d __A) +{ + return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df) + __A, + (__v4df) + __O, __M); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) +{ + return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df) + __A, + (__v4df) + _mm256_setzero_ps (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_i64x2 (__m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di) + __A, + (__v4di)_mm256_undefined_si256(), + (__mmask8) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcast_i64x2 (__m256i __O, __mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di) + __A, + (__v4di) + __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di) + __A, + (__v4di) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_f32x2 (__m128 __A) +{ + return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A, + (__v8sf)_mm256_undefined_ps(), + (__mmask8) - + 1); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcast_f32x2 (__m256 __O, __mmask8 __M, __m128 __A) +{ + return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A, + (__v8sf) __O, + __M); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcast_f32x2 (__mmask8 __M, __m128 __A) +{ + return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A, + (__v8sf) + _mm256_setzero_ps (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_broadcast_i32x2 (__m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) + __A, + (__v8si)_mm256_undefined_si256(), + (__mmask8) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_broadcast_i32x2 (__m256i __O, __mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) + __A, + (__v8si) + __O, __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) +{ + return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) + __A, + (__v8si) + _mm256_setzero_si256 (), + __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_broadcast_i32x2 (__m128i __A) +{ + return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) + __A, + (__v4si)_mm_undefined_si128(), + (__mmask8) - + 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_broadcast_i32x2 (__m128i __O, __mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) + __A, + (__v4si) + __O, __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) +{ + return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) + __A, + (__v4si) + _mm_setzero_si128 (), + __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mullo_epi64 (__m256i __A, __m256i __B) +{ + return (__m256i) ((__v4du) __A * (__v4du) __B); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_mullo_epi64 (__m256i __W, __mmask8 __U, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_pmullq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_mullo_epi64 (__mmask8 __U, __m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_pmullq256_mask ((__v4di) __A, + (__v4di) __B, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mullo_epi64 (__m128i __A, __m128i __B) +{ + return (__m128i) ((__v2du) __A * (__v2du) __B); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_mullo_epi64 (__m128i __W, __mmask8 __U, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_pmullq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_mullo_epi64 (__mmask8 __U, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_pmullq128_mask ((__v2di) __A, + (__v2di) __B, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_andnot_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_andnpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_andnot_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_andnpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_andnot_pd (__m128d __W, __mmask8 __U, __m128d __A, + __m128d __B) +{ + return (__m128d) __builtin_ia32_andnpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_andnot_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_andnpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_andnot_ps (__m256 __W, __mmask8 __U, __m256 __A, + __m256 __B) +{ + return (__m256) __builtin_ia32_andnps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_andnot_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_andnps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_andnot_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_andnps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_andnot_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_andnps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtps_epi64 (__m128 __A) +{ + return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtps_epi64 (__m256i __W, __mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtps_epi64 (__mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_epi64 (__m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtps_epi64 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtps_epi64 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtps_epu64 (__m128 __A) +{ + return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtps_epu64 (__m256i __W, __mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, + (__v4di) __W, + (__mmask8) __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtps_epu64 (__mmask8 __U, __m128 __A) +{ + return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtps_epu64 (__m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtps_epu64 (__m128i __W, __mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, + (__v2di) __W, + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtps_epu64 (__mmask8 __U, __m128 __A) +{ + return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, + (__v2di) + _mm_setzero_di (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi64_ps (__m256i __A) +{ + return (__m128) __builtin_ia32_cvtqq2ps256_mask ((__v4di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_ps (__m128 __W, __mmask8 __U, __m256i __A) +{ + return (__m128) __builtin_ia32_cvtqq2ps256_mask ((__v4di) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi64_ps (__mmask8 __U, __m256i __A) +{ + return (__m128) __builtin_ia32_cvtqq2ps256_mask ((__v4di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi64_ps (__m128i __A) +{ + return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_ps (__m128 __W, __mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi64_ps (__mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu64_ps (__m256i __A) +{ + return (__m128) __builtin_ia32_cvtuqq2ps256_mask ((__v4di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu64_ps (__m128 __W, __mmask8 __U, __m256i __A) +{ + return (__m128) __builtin_ia32_cvtuqq2ps256_mask ((__v4di) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu64_ps (__mmask8 __U, __m256i __A) +{ + return (__m128) __builtin_ia32_cvtuqq2ps256_mask ((__v4di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu64_ps (__m128i __A) +{ + return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu64_ps (__m128 __W, __mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu64_ps (__mmask8 __U, __m128i __A) +{ + return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepi64_pd (__m256i __A) +{ + return (__m256d) __builtin_ia32_cvtqq2pd256_mask ((__v4di) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepi64_pd (__m256d __W, __mmask8 __U, __m256i __A) +{ + return (__m256d) __builtin_ia32_cvtqq2pd256_mask ((__v4di) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepi64_pd (__mmask8 __U, __m256i __A) +{ + return (__m256d) __builtin_ia32_cvtqq2pd256_mask ((__v4di) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepi64_pd (__m128i __A) +{ + return (__m128d) __builtin_ia32_cvtqq2pd128_mask ((__v2di) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepi64_pd (__m128d __W, __mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtqq2pd128_mask ((__v2di) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepi64_pd (__mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtqq2pd128_mask ((__v2di) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtepu64_pd (__m256i __A) +{ + return (__m256d) __builtin_ia32_cvtuqq2pd256_mask ((__v4di) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_cvtepu64_pd (__m256d __W, __mmask8 __U, __m256i __A) +{ + return (__m256d) __builtin_ia32_cvtuqq2pd256_mask ((__v4di) __A, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_cvtepu64_pd (__mmask8 __U, __m256i __A) +{ + return (__m256d) __builtin_ia32_cvtuqq2pd256_mask ((__v4di) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_and_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_andpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_and_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_andpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_and_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_andpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_and_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_andpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_and_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_andps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_and_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_andps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_and_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_andps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_and_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_andps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtepu64_pd (__m128i __A) +{ + return (__m128d) __builtin_ia32_cvtuqq2pd128_mask ((__v2di) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_cvtepu64_pd (__m128d __W, __mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtuqq2pd128_mask ((__v2di) __A, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_cvtepu64_pd (__mmask8 __U, __m128i __A) +{ + return (__m128d) __builtin_ia32_cvtuqq2pd128_mask ((__v2di) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_xor_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) +{ + return (__m256d) __builtin_ia32_xorpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_xor_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_xorpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_xor_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_xorpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_xor_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_xorpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_xor_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_xorps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_xor_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_xorps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_xor_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_xorps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_xor_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_xorps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_or_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_orpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +extern __inline __m256d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_or_pd (__mmask8 __U, __m256d __A, __m256d __B) +{ + return (__m256d) __builtin_ia32_orpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_or_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_orpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_or_pd (__mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_orpd128_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_or_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_orps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +extern __inline __m256 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_or_ps (__mmask8 __U, __m256 __A, __m256 __B) +{ + return (__m256) __builtin_ia32_orps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_or_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_orps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_or_ps (__mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_orps128_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movm_epi32 (__mmask8 __A) +{ + return (__m128i) __builtin_ia32_cvtmask2d128 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movm_epi32 (__mmask8 __A) +{ + return (__m256i) __builtin_ia32_cvtmask2d256 (__A); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movm_epi64 (__mmask8 __A) +{ + return (__m128i) __builtin_ia32_cvtmask2q128 (__A); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movm_epi64 (__mmask8 __A) +{ + return (__m256i) __builtin_ia32_cvtmask2q256 (__A); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movepi32_mask (__m128i __A) +{ + return (__mmask8) __builtin_ia32_cvtd2mask128 ((__v4si) __A); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movepi32_mask (__m256i __A) +{ + return (__mmask8) __builtin_ia32_cvtd2mask256 ((__v8si) __A); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_movepi64_mask (__m128i __A) +{ + return (__mmask8) __builtin_ia32_cvtq2mask128 ((__v2di) __A); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_movepi64_mask (__m256i __A) +{ + return (__mmask8) __builtin_ia32_cvtq2mask256 ((__v4di) __A); +} +# 2022 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vldqintrin.h" 3 4 +#pragma GCC pop_options +# 62 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512ifmaintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512ifmaintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512ifma") + + + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_madd52lo_epu64 (__m512i __X, __m512i __Y, __m512i __Z) +{ + return (__m512i) __builtin_ia32_vpmadd52luq512_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) __Z, + (__mmask8) - 1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_madd52hi_epu64 (__m512i __X, __m512i __Y, __m512i __Z) +{ + return (__m512i) __builtin_ia32_vpmadd52huq512_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) __Z, + (__mmask8) - 1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_madd52lo_epu64 (__m512i __W, __mmask8 __M, __m512i __X, + __m512i __Y) +{ + return (__m512i) __builtin_ia32_vpmadd52luq512_mask ((__v8di) __W, + (__v8di) __X, + (__v8di) __Y, + (__mmask8) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_madd52hi_epu64 (__m512i __W, __mmask8 __M, __m512i __X, + __m512i __Y) +{ + return (__m512i) __builtin_ia32_vpmadd52huq512_mask ((__v8di) __W, + (__v8di) __X, + (__v8di) __Y, + (__mmask8) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_madd52lo_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) +{ + return (__m512i) __builtin_ia32_vpmadd52luq512_maskz ((__v8di) __X, + (__v8di) __Y, + (__v8di) __Z, + (__mmask8) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_madd52hi_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) +{ + return (__m512i) __builtin_ia32_vpmadd52huq512_maskz ((__v8di) __X, + (__v8di) __Y, + (__v8di) __Z, + (__mmask8) __M); +} + + + +#pragma GCC pop_options +# 64 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512ifmavlintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512ifmavlintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512ifma,avx512vl") + + + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z) +{ + return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) __Z, + (__mmask8) - 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_madd52hi_epu64 (__m128i __X, __m128i __Y, __m128i __Z) +{ + return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) __Z, + (__mmask8) - 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z) +{ + return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) __Z, + (__mmask8) - 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z) +{ + return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) __Z, + (__mmask8) - 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_madd52lo_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __W, + (__v2di) __X, + (__v2di) __Y, + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_madd52hi_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __W, + (__v2di) __X, + (__v2di) __Y, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __W, + (__v4di) __X, + (__v4di) __Y, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X, + __m256i __Y) +{ + return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __W, + (__v4di) __X, + (__v4di) __Y, + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_madd52lo_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) +{ + return (__m128i) __builtin_ia32_vpmadd52luq128_maskz ((__v2di) __X, + (__v2di) __Y, + (__v2di) __Z, + (__mmask8) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_madd52hi_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) +{ + return (__m128i) __builtin_ia32_vpmadd52huq128_maskz ((__v2di) __X, + (__v2di) __Y, + (__v2di) __Z, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_madd52lo_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) +{ + return (__m256i) __builtin_ia32_vpmadd52luq256_maskz ((__v4di) __X, + (__v4di) __Y, + (__v4di) __Z, + (__mmask8) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_madd52hi_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) +{ + return (__m256i) __builtin_ia32_vpmadd52huq256_maskz ((__v4di) __X, + (__v4di) __Y, + (__v4di) __Z, + (__mmask8) __M); +} + + + +#pragma GCC pop_options +# 66 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vbmiintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vbmiintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512vbmi") + + + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_multishift_epi64_epi8 (__m512i __W, __mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X, + (__v64qi) __Y, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_multishift_epi64_epi8 (__mmask64 __M, __m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X, + (__v64qi) __Y, + (__v64qi) + _mm512_setzero_si512 (), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_multishift_epi64_epi8 (__m512i __X, __m512i __Y) +{ + return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X, + (__v64qi) __Y, + (__v64qi) + _mm512_undefined_si512 (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutexvar_epi8 (__m512i __A, __m512i __B) +{ + return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B, + (__v64qi) __A, + (__v64qi) + _mm512_undefined_si512 (), + (__mmask64) -1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutexvar_epi8 (__mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B, + (__v64qi) __A, + (__v64qi) + _mm512_setzero_si512(), + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutexvar_epi8 (__m512i __W, __mmask64 __M, __m512i __A, + __m512i __B) +{ + return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B, + (__v64qi) __A, + (__v64qi) __W, + (__mmask64) __M); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_permutex2var_epi8 (__m512i __A, __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varqi512_mask ((__v64qi) __I + , + (__v64qi) __A, + (__v64qi) __B, + (__mmask64) - + 1); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_permutex2var_epi8 (__m512i __A, __mmask64 __U, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varqi512_mask ((__v64qi) __I + , + (__v64qi) __A, + (__v64qi) __B, + (__mmask64) + __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask2_permutex2var_epi8 (__m512i __A, __m512i __I, + __mmask64 __U, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermi2varqi512_mask ((__v64qi) __A, + (__v64qi) __I + , + (__v64qi) __B, + (__mmask64) + __U); +} + +extern __inline __m512i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_maskz_permutex2var_epi8 (__mmask64 __U, __m512i __A, + __m512i __I, __m512i __B) +{ + return (__m512i) __builtin_ia32_vpermt2varqi512_maskz ((__v64qi) __I + , + (__v64qi) __A, + (__v64qi) __B, + (__mmask64) + __U); +} + + + +#pragma GCC pop_options +# 68 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vbmivlintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vbmivlintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("avx512vbmi,avx512vl") + + + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_multishift_epi64_epi8 (__m256i __W, __mmask32 __M, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X, + (__v32qi) __Y, + (__v32qi) __W, + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_multishift_epi64_epi8 (__mmask32 __M, __m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X, + (__v32qi) __Y, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_multishift_epi64_epi8 (__m256i __X, __m256i __Y) +{ + return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X, + (__v32qi) __Y, + (__v32qi) + _mm256_undefined_si256 (), + (__mmask32) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_multishift_epi64_epi8 (__m128i __W, __mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X, + (__v16qi) __Y, + (__v16qi) __W, + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_multishift_epi64_epi8 (__mmask16 __M, __m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X, + (__v16qi) __Y, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_multishift_epi64_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X, + (__v16qi) __Y, + (__v16qi) + _mm_undefined_si128 (), + (__mmask16) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutexvar_epi8 (__m256i __A, __m256i __B) +{ + return (__m256i) __builtin_ia32_permvarqi256_mask ((__v32qi) __B, + (__v32qi) __A, + (__v32qi) + _mm256_undefined_si256 (), + (__mmask32) -1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutexvar_epi8 (__mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_permvarqi256_mask ((__v32qi) __B, + (__v32qi) __A, + (__v32qi) + _mm256_setzero_si256 (), + (__mmask32) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutexvar_epi8 (__m256i __W, __mmask32 __M, __m256i __A, + __m256i __B) +{ + return (__m256i) __builtin_ia32_permvarqi256_mask ((__v32qi) __B, + (__v32qi) __A, + (__v32qi) __W, + (__mmask32) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutexvar_epi8 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_permvarqi128_mask ((__v16qi) __B, + (__v16qi) __A, + (__v16qi) + _mm_undefined_si128 (), + (__mmask16) -1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutexvar_epi8 (__mmask16 __M, __m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_permvarqi128_mask ((__v16qi) __B, + (__v16qi) __A, + (__v16qi) + _mm_setzero_si128 (), + (__mmask16) __M); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutexvar_epi8 (__m128i __W, __mmask16 __M, __m128i __A, + __m128i __B) +{ + return (__m128i) __builtin_ia32_permvarqi128_mask ((__v16qi) __B, + (__v16qi) __A, + (__v16qi) __W, + (__mmask16) __M); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_permutex2var_epi8 (__m256i __A, __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varqi256_mask ((__v32qi) __I + , + (__v32qi) __A, + (__v32qi) __B, + (__mmask32) - + 1); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask_permutex2var_epi8 (__m256i __A, __mmask32 __U, + __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varqi256_mask ((__v32qi) __I + , + (__v32qi) __A, + (__v32qi) __B, + (__mmask32) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_mask2_permutex2var_epi8 (__m256i __A, __m256i __I, + __mmask32 __U, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermi2varqi256_mask ((__v32qi) __A, + (__v32qi) __I + , + (__v32qi) __B, + (__mmask32) + __U); +} + +extern __inline __m256i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maskz_permutex2var_epi8 (__mmask32 __U, __m256i __A, + __m256i __I, __m256i __B) +{ + return (__m256i) __builtin_ia32_vpermt2varqi256_maskz ((__v32qi) __I + , + (__v32qi) __A, + (__v32qi) __B, + (__mmask32) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_permutex2var_epi8 (__m128i __A, __m128i __I, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varqi128_mask ((__v16qi) __I + , + (__v16qi) __A, + (__v16qi) __B, + (__mmask16) - + 1); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_permutex2var_epi8 (__m128i __A, __mmask16 __U, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varqi128_mask ((__v16qi) __I + , + (__v16qi) __A, + (__v16qi) __B, + (__mmask16) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask2_permutex2var_epi8 (__m128i __A, __m128i __I, __mmask16 __U, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermi2varqi128_mask ((__v16qi) __A, + (__v16qi) __I + , + (__v16qi) __B, + (__mmask16) + __U); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_permutex2var_epi8 (__mmask16 __U, __m128i __A, __m128i __I, + __m128i __B) +{ + return (__m128i) __builtin_ia32_vpermt2varqi128_maskz ((__v16qi) __I + , + (__v16qi) __A, + (__v16qi) __B, + (__mmask16) + __U); +} + + + +#pragma GCC pop_options +# 70 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/shaintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/shaintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("sha") + + + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha1msg1_epu32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_sha1msg1 ((__v4si) __A, (__v4si) __B); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha1msg2_epu32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_sha1msg2 ((__v4si) __A, (__v4si) __B); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha1nexte_epu32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_sha1nexte ((__v4si) __A, (__v4si) __B); +} +# 71 "/usr/lib/gcc/x86_64-linux-gnu/5/include/shaintrin.h" 3 4 +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha256msg1_epu32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_sha256msg1 ((__v4si) __A, (__v4si) __B); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha256msg2_epu32 (__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_sha256msg2 ((__v4si) __A, (__v4si) __B); +} + +extern __inline __m128i +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha256rnds2_epu32 (__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_sha256rnds2 ((__v4si) __A, (__v4si) __B, + (__v4si) __C); +} + + + +#pragma GCC pop_options +# 72 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/lzcntintrin.h" 1 3 4 +# 33 "/usr/lib/gcc/x86_64-linux-gnu/5/include/lzcntintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("lzcnt") + + + +extern __inline unsigned short __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__lzcnt16 (unsigned short __X) +{ + return __builtin_clzs (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__lzcnt32 (unsigned int __X) +{ + return __builtin_clz (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_lzcnt_u32 (unsigned int __X) +{ + return __builtin_clz (__X); +} + + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__lzcnt64 (unsigned long long __X) +{ + return __builtin_clzll (__X); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_lzcnt_u64 (unsigned long long __X) +{ + return __builtin_clzll (__X); +} + + + + +#pragma GCC pop_options +# 74 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmiintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmiintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("bmi") + + + +extern __inline unsigned short __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__tzcnt_u16 (unsigned short __X) +{ + return __builtin_ctzs (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__andn_u32 (unsigned int __X, unsigned int __Y) +{ + return ~__X & __Y; +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bextr_u32 (unsigned int __X, unsigned int __Y) +{ + return __builtin_ia32_bextr_u32 (__X, __Y); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_bextr_u32 (unsigned int __X, unsigned int __Y, unsigned __Z) +{ + return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsi_u32 (unsigned int __X) +{ + return __X & -__X; +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_blsi_u32 (unsigned int __X) +{ + return __blsi_u32 (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsmsk_u32 (unsigned int __X) +{ + return __X ^ (__X - 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_blsmsk_u32 (unsigned int __X) +{ + return __blsmsk_u32 (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsr_u32 (unsigned int __X) +{ + return __X & (__X - 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_blsr_u32 (unsigned int __X) +{ + return __blsr_u32 (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__tzcnt_u32 (unsigned int __X) +{ + return __builtin_ctz (__X); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_tzcnt_u32 (unsigned int __X) +{ + return __builtin_ctz (__X); +} + + + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__andn_u64 (unsigned long long __X, unsigned long long __Y) +{ + return ~__X & __Y; +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__bextr_u64 (unsigned long long __X, unsigned long long __Y) +{ + return __builtin_ia32_bextr_u64 (__X, __Y); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_bextr_u64 (unsigned long long __X, unsigned int __Y, unsigned int __Z) +{ + return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsi_u64 (unsigned long long __X) +{ + return __X & -__X; +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_blsi_u64 (unsigned long long __X) +{ + return __blsi_u64 (__X); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsmsk_u64 (unsigned long long __X) +{ + return __X ^ (__X - 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_blsmsk_u64 (unsigned long long __X) +{ + return __blsmsk_u64 (__X); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsr_u64 (unsigned long long __X) +{ + return __X & (__X - 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_blsr_u64 (unsigned long long __X) +{ + return __blsr_u64 (__X); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__tzcnt_u64 (unsigned long long __X) +{ + return __builtin_ctzll (__X); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_tzcnt_u64 (unsigned long long __X) +{ + return __builtin_ctzll (__X); +} + + + + + +#pragma GCC pop_options +# 76 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmi2intrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmi2intrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("bmi2") + + + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_bzhi_u32 (unsigned int __X, unsigned int __Y) +{ + return __builtin_ia32_bzhi_si (__X, __Y); +} + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_pdep_u32 (unsigned int __X, unsigned int __Y) +{ + return __builtin_ia32_pdep_si (__X, __Y); +} + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_pext_u32 (unsigned int __X, unsigned int __Y) +{ + return __builtin_ia32_pext_si (__X, __Y); +} + + + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_bzhi_u64 (unsigned long long __X, unsigned long long __Y) +{ + return __builtin_ia32_bzhi_di (__X, __Y); +} + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_pdep_u64 (unsigned long long __X, unsigned long long __Y) +{ + return __builtin_ia32_pdep_di (__X, __Y); +} + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_pext_u64 (unsigned long long __X, unsigned long long __Y) +{ + return __builtin_ia32_pext_di (__X, __Y); +} + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mulx_u64 (unsigned long long __X, unsigned long long __Y, + unsigned long long *__P) +{ + unsigned __int128 __res = (unsigned __int128) __X * __Y; + *__P = (unsigned long long) (__res >> 64); + return (unsigned long long) __res; +} +# 106 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmi2intrin.h" 3 4 +#pragma GCC pop_options +# 78 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fmaintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fmaintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("fma") + + + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmadd_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B, + (__v2df)__C); +} + +extern __inline __m256d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmadd_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d)__builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B, + (__v4df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmadd_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B, + (__v4sf)__C); +} + +extern __inline __m256 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmadd_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256)__builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B, + (__v8sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmadd_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsd3 ((__v2df)__A, (__v2df)__B, + (__v2df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmadd_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddss3 ((__v4sf)__A, (__v4sf)__B, + (__v4sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmsub_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B, + -(__v2df)__C); +} + +extern __inline __m256d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmsub_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d)__builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B, + -(__v4df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmsub_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B, + -(__v4sf)__C); +} + +extern __inline __m256 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmsub_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256)__builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B, + -(__v8sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmsub_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, (__v2df)__B, + -(__v2df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmsub_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, (__v4sf)__B, + -(__v4sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmadd_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B, + (__v2df)__C); +} + +extern __inline __m256d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fnmadd_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d)__builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B, + (__v4df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmadd_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B, + (__v4sf)__C); +} + +extern __inline __m256 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fnmadd_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256)__builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B, + (__v8sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmadd_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, -(__v2df)__B, + (__v2df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmadd_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, -(__v4sf)__B, + (__v4sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmsub_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B, + -(__v2df)__C); +} + +extern __inline __m256d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fnmsub_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d)__builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B, + -(__v4df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmsub_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B, + -(__v4sf)__C); +} + +extern __inline __m256 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fnmsub_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256)__builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B, + -(__v8sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmsub_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, -(__v2df)__B, + -(__v2df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fnmsub_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, -(__v4sf)__B, + -(__v4sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmaddsub_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B, + (__v2df)__C); +} + +extern __inline __m256d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmaddsub_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d)__builtin_ia32_vfmaddsubpd256 ((__v4df)__A, + (__v4df)__B, + (__v4df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmaddsub_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B, + (__v4sf)__C); +} + +extern __inline __m256 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmaddsub_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256)__builtin_ia32_vfmaddsubps256 ((__v8sf)__A, + (__v8sf)__B, + (__v8sf)__C); +} + +extern __inline __m128d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmsubadd_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d)__builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B, + -(__v2df)__C); +} + +extern __inline __m256d +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmsubadd_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d)__builtin_ia32_vfmaddsubpd256 ((__v4df)__A, + (__v4df)__B, + -(__v4df)__C); +} + +extern __inline __m128 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_fmsubadd_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128)__builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B, + -(__v4sf)__C); +} + +extern __inline __m256 +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_fmsubadd_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256)__builtin_ia32_vfmaddsubps256 ((__v8sf)__A, + (__v8sf)__B, + -(__v8sf)__C); +} + + + +#pragma GCC pop_options +# 80 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/f16cintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/f16cintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("f16c") + + + +extern __inline float __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_cvtsh_ss (unsigned short __S) +{ + __v8hi __H = __extension__ (__v8hi){ (short) __S, 0, 0, 0, 0, 0, 0, 0 }; + __v4sf __A = __builtin_ia32_vcvtph2ps (__H); + return __builtin_ia32_vec_ext_v4sf (__A, 0); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cvtph_ps (__m128i __A) +{ + return (__m128) __builtin_ia32_vcvtph2ps ((__v8hi) __A); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_cvtph_ps (__m128i __A) +{ + return (__m256) __builtin_ia32_vcvtph2ps256 ((__v8hi) __A); +} +# 95 "/usr/lib/gcc/x86_64-linux-gnu/5/include/f16cintrin.h" 3 4 +#pragma GCC pop_options +# 82 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/rtmintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/rtmintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("rtm") +# 48 "/usr/lib/gcc/x86_64-linux-gnu/5/include/rtmintrin.h" 3 4 +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xbegin (void) +{ + return __builtin_ia32_xbegin (); +} + + + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xend (void) +{ + __builtin_ia32_xend (); +} +# 81 "/usr/lib/gcc/x86_64-linux-gnu/5/include/rtmintrin.h" 3 4 +#pragma GCC pop_options +# 84 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xtestintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xtestintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("rtm") + + + + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xtest (void) +{ + return __builtin_ia32_xtest (); +} + + + +#pragma GCC pop_options +# 86 "/usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h" 2 3 4 + + +#pragma GCC push_options +#pragma GCC target("rdrnd") + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_rdrand16_step (unsigned short *__P) +{ + return __builtin_ia32_rdrand16_step (__P); +} + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_rdrand32_step (unsigned int *__P) +{ + return __builtin_ia32_rdrand32_step (__P); +} + + +#pragma GCC pop_options + + + + + +#pragma GCC push_options +#pragma GCC target("fsgsbase") + + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_readfsbase_u32 (void) +{ + return __builtin_ia32_rdfsbase32 (); +} + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_readfsbase_u64 (void) +{ + return __builtin_ia32_rdfsbase64 (); +} + +extern __inline unsigned int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_readgsbase_u32 (void) +{ + return __builtin_ia32_rdgsbase32 (); +} + +extern __inline unsigned long long +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_readgsbase_u64 (void) +{ + return __builtin_ia32_rdgsbase64 (); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_writefsbase_u32 (unsigned int __B) +{ + __builtin_ia32_wrfsbase32 (__B); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_writefsbase_u64 (unsigned long long __B) +{ + __builtin_ia32_wrfsbase64 (__B); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_writegsbase_u32 (unsigned int __B) +{ + __builtin_ia32_wrgsbase32 (__B); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_writegsbase_u64 (unsigned long long __B) +{ + __builtin_ia32_wrgsbase64 (__B); +} + + +#pragma GCC pop_options + + + +#pragma GCC push_options +#pragma GCC target("rdrnd") + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_rdrand64_step (unsigned long long *__P) +{ + return __builtin_ia32_rdrand64_step (__P); +} + + +#pragma GCC pop_options +# 47 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mm3dnow.h" 1 3 4 +# 31 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mm3dnow.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/prfchwintrin.h" 1 3 4 +# 31 "/usr/lib/gcc/x86_64-linux-gnu/5/include/prfchwintrin.h" 3 4 +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_prefetchw (void *__P) +{ + __builtin_prefetch (__P, 1, 3 ); +} +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mm3dnow.h" 2 3 4 + + +#pragma GCC push_options +#pragma GCC target("3dnow") + + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_femms (void) +{ + __builtin_ia32_femms(); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pavgusb (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pavgusb ((__v8qi)__A, (__v8qi)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pf2id (__m64 __A) +{ + return (__m64)__builtin_ia32_pf2id ((__v2sf)__A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfacc (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfacc ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfadd (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfadd ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfcmpeq (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfcmpeq ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfcmpge (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfcmpge ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfcmpgt (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfcmpgt ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfmax (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfmax ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfmin (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfmin ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfmul (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfmul ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfrcp (__m64 __A) +{ + return (__m64)__builtin_ia32_pfrcp ((__v2sf)__A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfrcpit1 (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfrcpit1 ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfrcpit2 (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfrcpit2 ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfrsqrt (__m64 __A) +{ + return (__m64)__builtin_ia32_pfrsqrt ((__v2sf)__A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfrsqit1 (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfrsqit1 ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfsub (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfsub ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pfsubr (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pfsubr ((__v2sf)__A, (__v2sf)__B); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pi2fd (__m64 __A) +{ + return (__m64)__builtin_ia32_pi2fd ((__v2si)__A); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_pmulhrw (__m64 __A, __m64 __B) +{ + return (__m64)__builtin_ia32_pmulhrw ((__v4hi)__A, (__v4hi)__B); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_prefetch (void *__P) +{ + __builtin_prefetch (__P, 0, 3 ); +} + +extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_from_float (float __A) +{ + return __extension__ (__m64)(__v2sf){ __A, 0.0f }; +} + +extern __inline float __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_m_to_float (__m64 __A) +{ + union { __v2sf v; float a[2]; } __tmp; + __tmp.v = (__v2sf)__A; + return __tmp.a[0]; +} +# 215 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mm3dnow.h" 3 4 +#pragma GCC pop_options +# 49 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fma4intrin.h" 1 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fma4intrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("fma4") + + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macc_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macc_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B, (__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macc_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddss ((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macc_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsd ((__v2df)__A, (__v2df)__B, (__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_msub_ps (__m128 __A, __m128 __B, __m128 __C) + +{ + return (__m128) __builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_msub_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B, -(__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_msub_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddss ((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_msub_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsd ((__v2df)__A, (__v2df)__B, -(__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmacc_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmacc_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B, (__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmacc_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddss (-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmacc_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsd (-(__v2df)__A, (__v2df)__B, (__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmsub_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmsub_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B, -(__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmsub_ss (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddss (-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_nmsub_sd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsd (-(__v2df)__A, (__v2df)__B, -(__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maddsub_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maddsub_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B, (__v2df)__C); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_msubadd_ps (__m128 __A, __m128 __B, __m128 __C) +{ + return (__m128) __builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_msubadd_pd (__m128d __A, __m128d __B, __m128d __C) +{ + return (__m128d) __builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B, -(__v2df)__C); +} + + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_macc_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_macc_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B, (__v4df)__C); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_msub_ps (__m256 __A, __m256 __B, __m256 __C) + +{ + return (__m256) __builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_msub_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B, -(__v4df)__C); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_nmacc_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_nmacc_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B, (__v4df)__C); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_nmsub_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_nmsub_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B, -(__v4df)__C); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maddsub_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddsubps256 ((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_maddsub_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256 ((__v4df)__A, (__v4df)__B, (__v4df)__C); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_msubadd_ps (__m256 __A, __m256 __B, __m256 __C) +{ + return (__m256) __builtin_ia32_vfmaddsubps256 ((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_msubadd_pd (__m256d __A, __m256d __B, __m256d __C) +{ + return (__m256d) __builtin_ia32_vfmaddsubpd256 ((__v4df)__A, (__v4df)__B, -(__v4df)__C); +} + + + +#pragma GCC pop_options +# 51 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xopintrin.h" 1 3 4 +# 31 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xopintrin.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fma4intrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xopintrin.h" 2 3 4 + + +#pragma GCC push_options +#pragma GCC target("xop") + + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacssww ((__v8hi)__A,(__v8hi)__B, (__v8hi)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacsww ((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacsswd ((__v8hi)__A, (__v8hi)__B, (__v4si)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacswd ((__v8hi)__A, (__v8hi)__B, (__v4si)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacssdd ((__v4si)__A, (__v4si)__B, (__v4si)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacsdd ((__v4si)__A, (__v4si)__B, (__v4si)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacssdql ((__v4si)__A, (__v4si)__B, (__v2di)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacsdql ((__v4si)__A, (__v4si)__B, (__v2di)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacssdqh ((__v4si)__A, (__v4si)__B, (__v2di)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmacsdqh ((__v4si)__A, (__v4si)__B, (__v2di)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmadcsswd ((__v8hi)__A,(__v8hi)__B,(__v4si)__C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpmadcswd ((__v8hi)__A,(__v8hi)__B,(__v4si)__C); +} + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddw_epi8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddbw ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddd_epi8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddbd ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddq_epi8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddbq ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddd_epi16(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddwd ((__v8hi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddq_epi16(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddwq ((__v8hi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddq_epi32(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphadddq ((__v4si)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddw_epu8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddubw ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddd_epu8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddubd ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddq_epu8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddubq ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddd_epu16(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphadduwd ((__v8hi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddq_epu16(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphadduwq ((__v8hi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_haddq_epu32(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphaddudq ((__v4si)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsubw_epi8(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphsubbw ((__v16qi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsubd_epi16(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphsubwd ((__v8hi)__A); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_hsubq_epi32(__m128i __A) +{ + return (__m128i) __builtin_ia32_vphsubdq ((__v4si)__A); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpcmov (__A, __B, __C); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C) +{ + return (__m128i) __builtin_ia32_vpperm ((__v16qi)__A, (__v16qi)__B, (__v16qi)__C); +} + + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rot_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vprotb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rot_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vprotw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rot_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vprotd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_rot_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vprotq ((__v2di)__A, (__v2di)__B); +} +# 283 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xopintrin.h" 3 4 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_shl_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshlb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_shl_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshlw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_shl_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshld ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_shl_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshlq ((__v2di)__A, (__v2di)__B); +} + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshab ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshaw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshad ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_sha_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpshaq ((__v2di)__A, (__v2di)__B); +} + + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltub ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomleub ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtub ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgeub ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomequb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomnequb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalseub ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epu8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrueub ((__v16qi)__A, (__v16qi)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltuw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomleuw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtuw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgeuw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomequw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomnequw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalseuw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epu16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrueuw ((__v8hi)__A, (__v8hi)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltud ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomleud ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtud ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgeud ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomequd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomnequd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalseud ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epu32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrueud ((__v4si)__A, (__v4si)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltuq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomleuq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtuq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgeuq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomequq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomnequq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalseuq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epu64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrueuq ((__v2di)__A, (__v2di)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomleb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgeb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomeqb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomneqb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalseb ((__v16qi)__A, (__v16qi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epi8(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrueb ((__v16qi)__A, (__v16qi)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomlew ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgew ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomeqw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomneqw ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalsew ((__v8hi)__A, (__v8hi)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epi16(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtruew ((__v8hi)__A, (__v8hi)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomled ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomged ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomeqd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomneqd ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalsed ((__v4si)__A, (__v4si)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epi32(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrued ((__v4si)__A, (__v4si)__B); +} + + + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comlt_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomltq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comle_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomleq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comgt_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgtq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comge_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomgeq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comeq_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomeqq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comneq_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomneqq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comfalse_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomfalseq ((__v2di)__A, (__v2di)__B); +} + +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_comtrue_epi64(__m128i __A, __m128i __B) +{ + return (__m128i) __builtin_ia32_vpcomtrueq ((__v2di)__A, (__v2di)__B); +} + + + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_frcz_ps (__m128 __A) +{ + return (__m128) __builtin_ia32_vfrczps ((__v4sf)__A); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_frcz_pd (__m128d __A) +{ + return (__m128d) __builtin_ia32_vfrczpd ((__v2df)__A); +} + +extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_frcz_ss (__m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_movss ((__v4sf)__A, + (__v4sf) + __builtin_ia32_vfrczss ((__v4sf)__B)); +} + +extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_frcz_sd (__m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_movsd ((__v2df)__A, + (__v2df) + __builtin_ia32_vfrczsd ((__v2df)__B)); +} + +extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_frcz_ps (__m256 __A) +{ + return (__m256) __builtin_ia32_vfrczps256 ((__v8sf)__A); +} + +extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm256_frcz_pd (__m256d __A) +{ + return (__m256d) __builtin_ia32_vfrczpd256 ((__v4df)__A); +} +# 841 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xopintrin.h" 3 4 +#pragma GCC pop_options +# 53 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/lwpintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/lwpintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("lwp") + + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__llwpcb (void *pcbAddress) +{ + __builtin_ia32_llwpcb (pcbAddress); +} + +extern __inline void * __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__slwpcb (void) +{ + return __builtin_ia32_slwpcb (); +} +# 102 "/usr/lib/gcc/x86_64-linux-gnu/5/include/lwpintrin.h" 3 4 +#pragma GCC pop_options +# 55 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmiintrin.h" 1 3 4 +# 57 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/bmi2intrin.h" 1 3 4 +# 59 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tbmintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tbmintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("tbm") +# 49 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tbmintrin.h" 3 4 +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcfill_u32 (unsigned int __X) +{ + return __X & (__X + 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blci_u32 (unsigned int __X) +{ + return __X | ~(__X + 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcic_u32 (unsigned int __X) +{ + return ~__X & (__X + 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcmsk_u32 (unsigned int __X) +{ + return __X ^ (__X + 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcs_u32 (unsigned int __X) +{ + return __X | (__X + 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsfill_u32 (unsigned int __X) +{ + return __X | (__X - 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsic_u32 (unsigned int __X) +{ + return ~__X | (__X - 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__t1mskc_u32 (unsigned int __X) +{ + return ~__X | (__X + 1); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__tzmsk_u32 (unsigned int __X) +{ + return ~__X & (__X - 1); +} +# 118 "/usr/lib/gcc/x86_64-linux-gnu/5/include/tbmintrin.h" 3 4 +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcfill_u64 (unsigned long long __X) +{ + return __X & (__X + 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blci_u64 (unsigned long long __X) +{ + return __X | ~(__X + 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcic_u64 (unsigned long long __X) +{ + return ~__X & (__X + 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcmsk_u64 (unsigned long long __X) +{ + return __X ^ (__X + 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blcs_u64 (unsigned long long __X) +{ + return __X | (__X + 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsfill_u64 (unsigned long long __X) +{ + return __X | (__X - 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__blsic_u64 (unsigned long long __X) +{ + return ~__X | (__X - 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__t1mskc_u64 (unsigned long long __X) +{ + return ~__X | (__X + 1); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +__tzmsk_u64 (unsigned long long __X) +{ + return ~__X & (__X - 1); +} + + + + + + +#pragma GCC pop_options +# 61 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/lzcntintrin.h" 1 3 4 +# 63 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/rdseedintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/rdseedintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("rdseed") + + + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_rdseed16_step (unsigned short *p) +{ + return __builtin_ia32_rdseed_hi_step (p); +} + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_rdseed32_step (unsigned int *p) +{ + return __builtin_ia32_rdseed_si_step (p); +} + + +extern __inline int +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_rdseed64_step (unsigned long long *p) +{ + return __builtin_ia32_rdseed_di_step (p); +} + + + + +#pragma GCC pop_options +# 67 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/prfchwintrin.h" 1 3 4 +# 69 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fxsrintrin.h" 1 3 4 +# 37 "/usr/lib/gcc/x86_64-linux-gnu/5/include/fxsrintrin.h" 3 4 +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_fxsave (void *__P) +{ + return __builtin_ia32_fxsave (__P); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_fxrstor (void *__P) +{ + return __builtin_ia32_fxrstor (__P); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_fxsave64 (void *__P) +{ + return __builtin_ia32_fxsave64 (__P); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_fxrstor64 (void *__P) +{ + return __builtin_ia32_fxrstor64 (__P); +} +# 71 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsaveintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsaveintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("xsave") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsave (void *__P, long long __M) +{ + return __builtin_ia32_xsave (__P, __M); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xrstor (void *__P, long long __M) +{ + return __builtin_ia32_xrstor (__P, __M); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsave64 (void *__P, long long __M) +{ + return __builtin_ia32_xsave64 (__P, __M); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xrstor64 (void *__P, long long __M) +{ + return __builtin_ia32_xrstor64 (__P, __M); +} + + + + +#pragma GCC pop_options +# 73 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsaveoptintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsaveoptintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("xsaveopt") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsaveopt (void *__P, long long __M) +{ + return __builtin_ia32_xsaveopt (__P, __M); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsaveopt64 (void *__P, long long __M) +{ + return __builtin_ia32_xsaveopt64 (__P, __M); +} + + + + +#pragma GCC pop_options +# 75 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/adxintrin.h" 1 3 4 +# 31 "/usr/lib/gcc/x86_64-linux-gnu/5/include/adxintrin.h" 3 4 +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_subborrow_u32 (unsigned char __CF, unsigned int __X, + unsigned int __Y, unsigned int *__P) +{ + return __builtin_ia32_sbb_u32 (__CF, __Y, __X, __P); +} + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_addcarry_u32 (unsigned char __CF, unsigned int __X, + unsigned int __Y, unsigned int *__P) +{ + return __builtin_ia32_addcarryx_u32 (__CF, __X, __Y, __P); +} + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_addcarryx_u32 (unsigned char __CF, unsigned int __X, + unsigned int __Y, unsigned int *__P) +{ + return __builtin_ia32_addcarryx_u32 (__CF, __X, __Y, __P); +} + + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_subborrow_u64 (unsigned char __CF, unsigned long long __X, + unsigned long long __Y, unsigned long long *__P) +{ + return __builtin_ia32_sbb_u64 (__CF, __Y, __X, __P); +} + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_addcarry_u64 (unsigned char __CF, unsigned long long __X, + unsigned long long __Y, unsigned long long *__P) +{ + return __builtin_ia32_addcarryx_u64 (__CF, __X, __Y, __P); +} + +extern __inline unsigned char +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_addcarryx_u64 (unsigned char __CF, unsigned long long __X, + unsigned long long __Y, unsigned long long *__P) +{ + return __builtin_ia32_addcarryx_u64 (__CF, __X, __Y, __P); +} +# 77 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/clwbintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/clwbintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("clwb") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_clwb (void *__A) +{ + __builtin_ia32_clwb (__A); +} + + + +#pragma GCC pop_options +# 79 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/pcommitintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/pcommitintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("pcommit") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_pcommit (void) +{ + __builtin_ia32_pcommit (); +} + + + +#pragma GCC pop_options +# 81 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/clflushoptintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/clflushoptintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("clflushopt") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_clflushopt (void *__A) +{ + __builtin_ia32_clflushopt (__A); +} + + + +#pragma GCC pop_options +# 83 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsavesintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsavesintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("xsaves") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsaves (void *__P, long long __M) +{ + __builtin_ia32_xsaves (__P, __M); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xrstors (void *__P, long long __M) +{ + __builtin_ia32_xrstors (__P, __M); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xrstors64 (void *__P, long long __M) +{ + __builtin_ia32_xrstors64 (__P, __M); +} + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsaves64 (void *__P, long long __M) +{ + __builtin_ia32_xsaves64 (__P, __M); +} + + + + +#pragma GCC pop_options +# 85 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsavecintrin.h" 1 3 4 +# 32 "/usr/lib/gcc/x86_64-linux-gnu/5/include/xsavecintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("xsavec") + + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsavec (void *__P, long long __M) +{ + __builtin_ia32_xsavec (__P, __M); +} + + +extern __inline void +__attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_xsavec64 (void *__P, long long __M) +{ + __builtin_ia32_xsavec64 (__P, __M); +} + + + + +#pragma GCC pop_options +# 87 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h" 1 3 4 +# 28 "/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h" 3 4 +#pragma GCC push_options +#pragma GCC target("mwaitx") + + + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_monitorx (void const * __P, unsigned int __E, unsigned int __H) +{ + __builtin_ia32_monitorx (__P, __E, __H); +} + +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mwaitx (unsigned int __E, unsigned int __H, unsigned int __C) +{ + __builtin_ia32_mwaitx (__E, __H, __C); +} + + + +#pragma GCC pop_options +# 89 "/usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h" 2 3 4 +# 34 "/usr/include/x86_64-linux-gnu/c++/5/bits/opt_random.h" 2 3 + + + +# 37 "/usr/include/x86_64-linux-gnu/c++/5/bits/opt_random.h" 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 215 "/usr/include/x86_64-linux-gnu/c++/5/bits/opt_random.h" 3 + +} +# 51 "/usr/include/c++/5/random" 2 3 +# 1 "/usr/include/c++/5/bits/random.tcc" 1 3 +# 33 "/usr/include/c++/5/bits/random.tcc" 3 +# 1 "/usr/include/c++/5/numeric" 1 3 +# 58 "/usr/include/c++/5/numeric" 3 + +# 59 "/usr/include/c++/5/numeric" 3 + + + +# 1 "/usr/include/c++/5/bits/stl_numeric.h" 1 3 +# 65 "/usr/include/c++/5/bits/stl_numeric.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 80 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + void + iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) + { + + + + + + ; + + for (; __first != __last; ++__first) + { + *__first = __value; + ++__value; + } + } + + +} + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 118 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + inline _Tp + accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) + { + + + ; + + for (; __first != __last; ++__first) + __init = __init + *__first; + return __init; + } +# 144 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + inline _Tp + accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, + _BinaryOperation __binary_op) + { + + + ; + + for (; __first != __last; ++__first) + __init = __binary_op(__init, *__first); + return __init; + } +# 172 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + inline _Tp + inner_product(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _Tp __init) + { + + + + ; + + for (; __first1 != __last1; ++__first1, ++__first2) + __init = __init + (*__first1 * *__first2); + return __init; + } +# 203 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + inline _Tp + inner_product(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _Tp __init, + _BinaryOperation1 __binary_op1, + _BinaryOperation2 __binary_op2) + { + + + + ; + + for (; __first1 != __last1; ++__first1, ++__first2) + __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); + return __init; + } +# 235 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + _OutputIterator + partial_sum(_InputIterator __first, _InputIterator __last, + _OutputIterator __result) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + + + + + ; + + if (__first == __last) + return __result; + _ValueType __value = *__first; + *__result = __value; + while (++__first != __last) + { + __value = __value + *__first; + *++__result = __value; + } + return ++__result; + } +# 275 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + _OutputIterator + partial_sum(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _BinaryOperation __binary_op) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + + + + + ; + + if (__first == __last) + return __result; + _ValueType __value = *__first; + *__result = __value; + while (++__first != __last) + { + __value = __binary_op(__value, *__first); + *++__result = __value; + } + return ++__result; + } +# 315 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + _OutputIterator + adjacent_difference(_InputIterator __first, + _InputIterator __last, _OutputIterator __result) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + + + + + ; + + if (__first == __last) + return __result; + _ValueType __value = *__first; + *__result = __value; + while (++__first != __last) + { + _ValueType __tmp = *__first; + *++__result = __tmp - __value; + __value = std::move(__tmp); + } + return ++__result; + } +# 357 "/usr/include/c++/5/bits/stl_numeric.h" 3 + template + _OutputIterator + adjacent_difference(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _BinaryOperation __binary_op) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + + + + + ; + + if (__first == __last) + return __result; + _ValueType __value = *__first; + *__result = __value; + while (++__first != __last) + { + _ValueType __tmp = *__first; + *++__result = __binary_op(__tmp, __value); + __value = std::move(__tmp); + } + return ++__result; + } + + +} +# 63 "/usr/include/c++/5/numeric" 2 3 +# 34 "/usr/include/c++/5/bits/random.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + namespace __detail + { + + + + + + + + + template + _Tp + _Mod<_Tp, __m, __a, __c, false, true>:: + __calc(_Tp __x) + { + if (__a == 1) + __x %= __m; + else + { + static const _Tp __q = __m / __a; + static const _Tp __r = __m % __a; + + _Tp __t1 = __a * (__x % __q); + _Tp __t2 = __r * (__x / __q); + if (__t1 >= __t2) + __x = __t1 - __t2; + else + __x = __m - __t2 + __t1; + } + + if (__c != 0) + { + const _Tp __d = __m - __x; + if (__d > __c) + __x += __c; + else + __x = __c - __d; + } + return __x; + } + + template + _OutputIterator + __normalize(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, const _Tp& __factor) + { + for (; __first != __last; ++__first, ++__result) + *__result = *__first / __factor; + return __result; + } + + + } + + + + template + constexpr _UIntType + linear_congruential_engine<_UIntType, __a, __c, __m>::multiplier; + + template + constexpr _UIntType + linear_congruential_engine<_UIntType, __a, __c, __m>::increment; + + template + constexpr _UIntType + linear_congruential_engine<_UIntType, __a, __c, __m>::modulus; + + template + constexpr _UIntType + linear_congruential_engine<_UIntType, __a, __c, __m>::default_seed; + + + + + + template + void + linear_congruential_engine<_UIntType, __a, __c, __m>:: + seed(result_type __s) + { + if ((__detail::__mod<_UIntType, __m>(__c) == 0) + && (__detail::__mod<_UIntType, __m>(__s) == 0)) + _M_x = 1; + else + _M_x = __detail::__mod<_UIntType, __m>(__s); + } + + + + + template + template + typename std::enable_if::value>::type + linear_congruential_engine<_UIntType, __a, __c, __m>:: + seed(_Sseq& __q) + { + const _UIntType __k0 = __m == 0 ? std::numeric_limits<_UIntType>::digits + : std::__lg(__m); + const _UIntType __k = (__k0 + 31) / 32; + uint_least32_t __arr[__k + 3]; + __q.generate(__arr + 0, __arr + __k + 3); + _UIntType __factor = 1u; + _UIntType __sum = 0u; + for (size_t __j = 0; __j < __k; ++__j) + { + __sum += __arr[__j + 3] * __factor; + __factor *= __detail::_Shift<_UIntType, 32>::__value; + } + seed(__sum); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const linear_congruential_engine<_UIntType, + __a, __c, __m>& __lcr) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); + __os.fill(__os.widen(' ')); + + __os << __lcr._M_x; + + __os.flags(__flags); + __os.fill(__fill); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + linear_congruential_engine<_UIntType, __a, __c, __m>& __lcr) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec); + + __is >> __lcr._M_x; + + __is.flags(__flags); + return __is; + } + + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::word_size; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::state_size; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::shift_size; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::mask_bits; + + template + constexpr _UIntType + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::xor_mask; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_u; + + template + constexpr _UIntType + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_d; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_s; + + template + constexpr _UIntType + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_b; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_t; + + template + constexpr _UIntType + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_c; + + template + constexpr size_t + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::tempering_l; + + template + constexpr _UIntType + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>:: + initialization_multiplier; + + template + constexpr _UIntType + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::default_seed; + + template + void + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>:: + seed(result_type __sd) + { + _M_x[0] = __detail::__mod<_UIntType, + __detail::_Shift<_UIntType, __w>::__value>(__sd); + + for (size_t __i = 1; __i < state_size; ++__i) + { + _UIntType __x = _M_x[__i - 1]; + __x ^= __x >> (__w - 2); + __x *= __f; + __x += __detail::__mod<_UIntType, __n>(__i); + _M_x[__i] = __detail::__mod<_UIntType, + __detail::_Shift<_UIntType, __w>::__value>(__x); + } + _M_p = state_size; + } + + template + template + typename std::enable_if::value>::type + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>:: + seed(_Sseq& __q) + { + const _UIntType __upper_mask = (~_UIntType()) << __r; + const size_t __k = (__w + 31) / 32; + uint_least32_t __arr[__n * __k]; + __q.generate(__arr + 0, __arr + __n * __k); + + bool __zero = true; + for (size_t __i = 0; __i < state_size; ++__i) + { + _UIntType __factor = 1u; + _UIntType __sum = 0u; + for (size_t __j = 0; __j < __k; ++__j) + { + __sum += __arr[__k * __i + __j] * __factor; + __factor *= __detail::_Shift<_UIntType, 32>::__value; + } + _M_x[__i] = __detail::__mod<_UIntType, + __detail::_Shift<_UIntType, __w>::__value>(__sum); + + if (__zero) + { + if (__i == 0) + { + if ((_M_x[0] & __upper_mask) != 0u) + __zero = false; + } + else if (_M_x[__i] != 0u) + __zero = false; + } + } + if (__zero) + _M_x[0] = __detail::_Shift<_UIntType, __w - 1>::__value; + _M_p = state_size; + } + + template + void + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>:: + _M_gen_rand(void) + { + const _UIntType __upper_mask = (~_UIntType()) << __r; + const _UIntType __lower_mask = ~__upper_mask; + + for (size_t __k = 0; __k < (__n - __m); ++__k) + { + _UIntType __y = ((_M_x[__k] & __upper_mask) + | (_M_x[__k + 1] & __lower_mask)); + _M_x[__k] = (_M_x[__k + __m] ^ (__y >> 1) + ^ ((__y & 0x01) ? __a : 0)); + } + + for (size_t __k = (__n - __m); __k < (__n - 1); ++__k) + { + _UIntType __y = ((_M_x[__k] & __upper_mask) + | (_M_x[__k + 1] & __lower_mask)); + _M_x[__k] = (_M_x[__k + (__m - __n)] ^ (__y >> 1) + ^ ((__y & 0x01) ? __a : 0)); + } + + _UIntType __y = ((_M_x[__n - 1] & __upper_mask) + | (_M_x[0] & __lower_mask)); + _M_x[__n - 1] = (_M_x[__m - 1] ^ (__y >> 1) + ^ ((__y & 0x01) ? __a : 0)); + _M_p = 0; + } + + template + void + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>:: + discard(unsigned long long __z) + { + while (__z > state_size - _M_p) + { + __z -= state_size - _M_p; + _M_gen_rand(); + } + _M_p += __z; + } + + template + typename + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>::result_type + mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, + __s, __b, __t, __c, __l, __f>:: + operator()() + { + + if (_M_p >= state_size) + _M_gen_rand(); + + + result_type __z = _M_x[_M_p++]; + __z ^= (__z >> __u) & __d; + __z ^= (__z << __s) & __b; + __z ^= (__z << __t) & __c; + __z ^= (__z >> __l); + + return __z; + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const mersenne_twister_engine<_UIntType, __w, __n, __m, + __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); + __os.fill(__space); + + for (size_t __i = 0; __i < __n; ++__i) + __os << __x._M_x[__i] << __space; + __os << __x._M_p; + + __os.flags(__flags); + __os.fill(__fill); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + mersenne_twister_engine<_UIntType, __w, __n, __m, + __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + for (size_t __i = 0; __i < __n; ++__i) + __is >> __x._M_x[__i]; + __is >> __x._M_p; + + __is.flags(__flags); + return __is; + } + + + template + constexpr size_t + subtract_with_carry_engine<_UIntType, __w, __s, __r>::word_size; + + template + constexpr size_t + subtract_with_carry_engine<_UIntType, __w, __s, __r>::short_lag; + + template + constexpr size_t + subtract_with_carry_engine<_UIntType, __w, __s, __r>::long_lag; + + template + constexpr _UIntType + subtract_with_carry_engine<_UIntType, __w, __s, __r>::default_seed; + + template + void + subtract_with_carry_engine<_UIntType, __w, __s, __r>:: + seed(result_type __value) + { + std::linear_congruential_engine + __lcg(__value == 0u ? default_seed : __value); + + const size_t __n = (__w + 31) / 32; + + for (size_t __i = 0; __i < long_lag; ++__i) + { + _UIntType __sum = 0u; + _UIntType __factor = 1u; + for (size_t __j = 0; __j < __n; ++__j) + { + __sum += __detail::__mod::__value> + (__lcg()) * __factor; + __factor *= __detail::_Shift<_UIntType, 32>::__value; + } + _M_x[__i] = __detail::__mod<_UIntType, + __detail::_Shift<_UIntType, __w>::__value>(__sum); + } + _M_carry = (_M_x[long_lag - 1] == 0) ? 1 : 0; + _M_p = 0; + } + + template + template + typename std::enable_if::value>::type + subtract_with_carry_engine<_UIntType, __w, __s, __r>:: + seed(_Sseq& __q) + { + const size_t __k = (__w + 31) / 32; + uint_least32_t __arr[__r * __k]; + __q.generate(__arr + 0, __arr + __r * __k); + + for (size_t __i = 0; __i < long_lag; ++__i) + { + _UIntType __sum = 0u; + _UIntType __factor = 1u; + for (size_t __j = 0; __j < __k; ++__j) + { + __sum += __arr[__k * __i + __j] * __factor; + __factor *= __detail::_Shift<_UIntType, 32>::__value; + } + _M_x[__i] = __detail::__mod<_UIntType, + __detail::_Shift<_UIntType, __w>::__value>(__sum); + } + _M_carry = (_M_x[long_lag - 1] == 0) ? 1 : 0; + _M_p = 0; + } + + template + typename subtract_with_carry_engine<_UIntType, __w, __s, __r>:: + result_type + subtract_with_carry_engine<_UIntType, __w, __s, __r>:: + operator()() + { + + long __ps = _M_p - short_lag; + if (__ps < 0) + __ps += long_lag; + + + + + _UIntType __xi; + if (_M_x[__ps] >= _M_x[_M_p] + _M_carry) + { + __xi = _M_x[__ps] - _M_x[_M_p] - _M_carry; + _M_carry = 0; + } + else + { + __xi = (__detail::_Shift<_UIntType, __w>::__value + - _M_x[_M_p] - _M_carry + _M_x[__ps]); + _M_carry = 1; + } + _M_x[_M_p] = __xi; + + + if (++_M_p >= long_lag) + _M_p = 0; + + return __xi; + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const subtract_with_carry_engine<_UIntType, + __w, __s, __r>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); + __os.fill(__space); + + for (size_t __i = 0; __i < __r; ++__i) + __os << __x._M_x[__i] << __space; + __os << __x._M_carry << __space << __x._M_p; + + __os.flags(__flags); + __os.fill(__fill); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + subtract_with_carry_engine<_UIntType, __w, __s, __r>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + for (size_t __i = 0; __i < __r; ++__i) + __is >> __x._M_x[__i]; + __is >> __x._M_carry; + __is >> __x._M_p; + + __is.flags(__flags); + return __is; + } + + + template + constexpr size_t + discard_block_engine<_RandomNumberEngine, __p, __r>::block_size; + + template + constexpr size_t + discard_block_engine<_RandomNumberEngine, __p, __r>::used_block; + + template + typename discard_block_engine<_RandomNumberEngine, + __p, __r>::result_type + discard_block_engine<_RandomNumberEngine, __p, __r>:: + operator()() + { + if (_M_n >= used_block) + { + _M_b.discard(block_size - _M_n); + _M_n = 0; + } + ++_M_n; + return _M_b(); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const discard_block_engine<_RandomNumberEngine, + __p, __r>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); + __os.fill(__space); + + __os << __x.base() << __space << __x._M_n; + + __os.flags(__flags); + __os.fill(__fill); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + discard_block_engine<_RandomNumberEngine, __p, __r>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + __is >> __x._M_b >> __x._M_n; + + __is.flags(__flags); + return __is; + } + + + template + typename independent_bits_engine<_RandomNumberEngine, __w, _UIntType>:: + result_type + independent_bits_engine<_RandomNumberEngine, __w, _UIntType>:: + operator()() + { + typedef typename _RandomNumberEngine::result_type _Eresult_type; + const _Eresult_type __r + = (_M_b.max() - _M_b.min() < std::numeric_limits<_Eresult_type>::max() + ? _M_b.max() - _M_b.min() + 1 : 0); + const unsigned __edig = std::numeric_limits<_Eresult_type>::digits; + const unsigned __m = __r ? std::__lg(__r) : __edig; + + typedef typename std::common_type<_Eresult_type, result_type>::type + __ctype; + const unsigned __cdig = std::numeric_limits<__ctype>::digits; + + unsigned __n, __n0; + __ctype __s0, __s1, __y0, __y1; + + for (size_t __i = 0; __i < 2; ++__i) + { + __n = (__w + __m - 1) / __m + __i; + __n0 = __n - __w % __n; + const unsigned __w0 = __w / __n; + + __s0 = 0; + __s1 = 0; + if (__w0 < __cdig) + { + __s0 = __ctype(1) << __w0; + __s1 = __s0 << 1; + } + + __y0 = 0; + __y1 = 0; + if (__r) + { + __y0 = __s0 * (__r / __s0); + if (__s1) + __y1 = __s1 * (__r / __s1); + + if (__r - __y0 <= __y0 / __n) + break; + } + else + break; + } + + result_type __sum = 0; + for (size_t __k = 0; __k < __n0; ++__k) + { + __ctype __u; + do + __u = _M_b() - _M_b.min(); + while (__y0 && __u >= __y0); + __sum = __s0 * __sum + (__s0 ? __u % __s0 : __u); + } + for (size_t __k = __n0; __k < __n; ++__k) + { + __ctype __u; + do + __u = _M_b() - _M_b.min(); + while (__y1 && __u >= __y1); + __sum = __s1 * __sum + (__s1 ? __u % __s1 : __u); + } + return __sum; + } + + + template + constexpr size_t + shuffle_order_engine<_RandomNumberEngine, __k>::table_size; + + template + typename shuffle_order_engine<_RandomNumberEngine, __k>::result_type + shuffle_order_engine<_RandomNumberEngine, __k>:: + operator()() + { + size_t __j = __k * ((_M_y - _M_b.min()) + / (_M_b.max() - _M_b.min() + 1.0L)); + _M_y = _M_v[__j]; + _M_v[__j] = _M_b(); + + return _M_y; + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const shuffle_order_engine<_RandomNumberEngine, __k>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); + __os.fill(__space); + + __os << __x.base(); + for (size_t __i = 0; __i < __k; ++__i) + __os << __space << __x._M_v[__i]; + __os << __space << __x._M_y; + + __os.flags(__flags); + __os.fill(__fill); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + shuffle_order_engine<_RandomNumberEngine, __k>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + __is >> __x._M_b; + for (size_t __i = 0; __i < __k; ++__i) + __is >> __x._M_v[__i]; + __is >> __x._M_y; + + __is.flags(__flags); + return __is; + } + + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const uniform_int_distribution<_IntType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + + __os << __x.a() << __space << __x.b(); + + __os.flags(__flags); + __os.fill(__fill); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + uniform_int_distribution<_IntType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _IntType __a, __b; + __is >> __a >> __b; + __x.param(typename uniform_int_distribution<_IntType>:: + param_type(__a, __b)); + + __is.flags(__flags); + return __is; + } + + + template + template + void + uniform_real_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + auto __range = __p.b() - __p.a(); + while (__f != __t) + *__f++ = __aurng() * __range + __p.a(); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const uniform_real_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.a() << __space << __x.b(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + uniform_real_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::skipws); + + _RealType __a, __b; + __is >> __a >> __b; + __x.param(typename uniform_real_distribution<_RealType>:: + param_type(__a, __b)); + + __is.flags(__flags); + return __is; + } + + + template + void + std::bernoulli_distribution:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + auto __limit = __p.p() * (__aurng.max() - __aurng.min()); + + while (__f != __t) + *__f++ = (__aurng() - __aurng.min()) < __limit; + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const bernoulli_distribution& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__os.widen(' ')); + __os.precision(std::numeric_limits::max_digits10); + + __os << __x.p(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + + template + template + typename geometric_distribution<_IntType>::result_type + geometric_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + const double __naf = + (1 - std::numeric_limits::epsilon()) / 2; + + const double __thr = + std::numeric_limits<_IntType>::max() + __naf; + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + double __cand; + do + __cand = std::floor(std::log(1.0 - __aurng()) / __param._M_log_1_p); + while (__cand >= __thr); + + return result_type(__cand + __naf); + } + + template + template + void + geometric_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + + const double __naf = + (1 - std::numeric_limits::epsilon()) / 2; + + const double __thr = + std::numeric_limits<_IntType>::max() + __naf; + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + while (__f != __t) + { + double __cand; + do + __cand = std::floor(std::log(1.0 - __aurng()) + / __param._M_log_1_p); + while (__cand >= __thr); + + *__f++ = __cand + __naf; + } + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const geometric_distribution<_IntType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__os.widen(' ')); + __os.precision(std::numeric_limits::max_digits10); + + __os << __x.p(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + geometric_distribution<_IntType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::skipws); + + double __p; + __is >> __p; + __x.param(typename geometric_distribution<_IntType>::param_type(__p)); + + __is.flags(__flags); + return __is; + } + + + template + template + typename negative_binomial_distribution<_IntType>::result_type + negative_binomial_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng) + { + const double __y = _M_gd(__urng); + + + std::poisson_distribution __poisson(__y); + return __poisson(__urng); + } + + template + template + typename negative_binomial_distribution<_IntType>::result_type + negative_binomial_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + typedef typename std::gamma_distribution::param_type + param_type; + + const double __y = + _M_gd(__urng, param_type(__p.k(), (1.0 - __p.p()) / __p.p())); + + std::poisson_distribution __poisson(__y); + return __poisson(__urng); + } + + template + template + void + negative_binomial_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { + + while (__f != __t) + { + const double __y = _M_gd(__urng); + + + std::poisson_distribution __poisson(__y); + *__f++ = __poisson(__urng); + } + } + + template + template + void + negative_binomial_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + typename std::gamma_distribution::param_type + __p2(__p.k(), (1.0 - __p.p()) / __p.p()); + + while (__f != __t) + { + const double __y = _M_gd(__urng, __p2); + + std::poisson_distribution __poisson(__y); + *__f++ = __poisson(__urng); + } + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const negative_binomial_distribution<_IntType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__os.widen(' ')); + __os.precision(std::numeric_limits::max_digits10); + + __os << __x.k() << __space << __x.p() + << __space << __x._M_gd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + negative_binomial_distribution<_IntType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::skipws); + + _IntType __k; + double __p; + __is >> __k >> __p >> __x._M_gd; + __x.param(typename negative_binomial_distribution<_IntType>:: + param_type(__k, __p)); + + __is.flags(__flags); + return __is; + } + + + template + void + poisson_distribution<_IntType>::param_type:: + _M_initialize() + { + + if (_M_mean >= 12) + { + const double __m = std::floor(_M_mean); + _M_lm_thr = std::log(_M_mean); + _M_lfm = std::lgamma(__m + 1); + _M_sm = std::sqrt(__m); + + const double __pi_4 = 0.7853981633974483096156608458198757L; + const double __dx = std::sqrt(2 * __m * std::log(32 * __m + / __pi_4)); + _M_d = std::round(std::max(6.0, std::min(__m, __dx))); + const double __cx = 2 * __m + _M_d; + _M_scx = std::sqrt(__cx / 2); + _M_1cx = 1 / __cx; + + _M_c2b = std::sqrt(__pi_4 * __cx) * std::exp(_M_1cx); + _M_cb = 2 * __cx * std::exp(-_M_d * _M_1cx * (1 + _M_d / 2)) + / _M_d; + } + else + + _M_lm_thr = std::exp(-_M_mean); + } +# 1280 "/usr/include/c++/5/bits/random.tcc" 3 + template + template + typename poisson_distribution<_IntType>::result_type + poisson_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + if (__param.mean() >= 12) + { + double __x; + + + const double __naf = + (1 - std::numeric_limits::epsilon()) / 2; + const double __thr = + std::numeric_limits<_IntType>::max() + __naf; + + const double __m = std::floor(__param.mean()); + + const double __spi_2 = 1.2533141373155002512078826424055226L; + const double __c1 = __param._M_sm * __spi_2; + const double __c2 = __param._M_c2b + __c1; + const double __c3 = __c2 + 1; + const double __c4 = __c3 + 1; + + const double __e178 = 1.0129030479320018583185514777512983L; + const double __c5 = __c4 + __e178; + const double __c = __param._M_cb + __c5; + const double __2cx = 2 * (2 * __m + __param._M_d); + + bool __reject = true; + do + { + const double __u = __c * __aurng(); + const double __e = -std::log(1.0 - __aurng()); + + double __w = 0.0; + + if (__u <= __c1) + { + const double __n = _M_nd(__urng); + const double __y = -std::abs(__n) * __param._M_sm - 1; + __x = std::floor(__y); + __w = -__n * __n / 2; + if (__x < -__m) + continue; + } + else if (__u <= __c2) + { + const double __n = _M_nd(__urng); + const double __y = 1 + std::abs(__n) * __param._M_scx; + __x = std::ceil(__y); + __w = __y * (2 - __y) * __param._M_1cx; + if (__x > __param._M_d) + continue; + } + else if (__u <= __c3) + + + __x = -1; + else if (__u <= __c4) + __x = 0; + else if (__u <= __c5) + __x = 1; + else + { + const double __v = -std::log(1.0 - __aurng()); + const double __y = __param._M_d + + __v * __2cx / __param._M_d; + __x = std::ceil(__y); + __w = -__param._M_d * __param._M_1cx * (1 + __y / 2); + } + + __reject = (__w - __e - __x * __param._M_lm_thr + > __param._M_lfm - std::lgamma(__x + __m + 1)); + + __reject |= __x + __m >= __thr; + + } while (__reject); + + return result_type(__x + __m + __naf); + } + else + + { + _IntType __x = 0; + double __prod = 1.0; + + do + { + __prod *= __aurng(); + __x += 1; + } + while (__prod > __param._M_lm_thr); + + return __x - 1; + } + } + + template + template + void + poisson_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + while (__f != __t) + *__f++ = this->operator()(__urng, __param); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const poisson_distribution<_IntType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits::max_digits10); + + __os << __x.mean() << __space << __x._M_nd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + poisson_distribution<_IntType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::skipws); + + double __mean; + __is >> __mean >> __x._M_nd; + __x.param(typename poisson_distribution<_IntType>::param_type(__mean)); + + __is.flags(__flags); + return __is; + } + + + template + void + binomial_distribution<_IntType>::param_type:: + _M_initialize() + { + const double __p12 = _M_p <= 0.5 ? _M_p : 1.0 - _M_p; + + _M_easy = true; + + + if (_M_t * __p12 >= 8) + { + _M_easy = false; + const double __np = std::floor(_M_t * __p12); + const double __pa = __np / _M_t; + const double __1p = 1 - __pa; + + const double __pi_4 = 0.7853981633974483096156608458198757L; + const double __d1x = + std::sqrt(__np * __1p * std::log(32 * __np + / (81 * __pi_4 * __1p))); + _M_d1 = std::round(std::max(1.0, __d1x)); + const double __d2x = + std::sqrt(__np * __1p * std::log(32 * _M_t * __1p + / (__pi_4 * __pa))); + _M_d2 = std::round(std::max(1.0, __d2x)); + + + const double __spi_2 = 1.2533141373155002512078826424055226L; + _M_s1 = std::sqrt(__np * __1p) * (1 + _M_d1 / (4 * __np)); + _M_s2 = std::sqrt(__np * __1p) * (1 + _M_d2 / (4 * _M_t * __1p)); + _M_c = 2 * _M_d1 / __np; + _M_a1 = std::exp(_M_c) * _M_s1 * __spi_2; + const double __a12 = _M_a1 + _M_s2 * __spi_2; + const double __s1s = _M_s1 * _M_s1; + _M_a123 = __a12 + (std::exp(_M_d1 / (_M_t * __1p)) + * 2 * __s1s / _M_d1 + * std::exp(-_M_d1 * _M_d1 / (2 * __s1s))); + const double __s2s = _M_s2 * _M_s2; + _M_s = (_M_a123 + 2 * __s2s / _M_d2 + * std::exp(-_M_d2 * _M_d2 / (2 * __s2s))); + _M_lf = (std::lgamma(__np + 1) + + std::lgamma(_M_t - __np + 1)); + _M_lp1p = std::log(__pa / __1p); + + _M_q = -std::log(1 - (__p12 - __pa) / __1p); + } + else + + _M_q = -std::log(1 - __p12); + } + + template + template + typename binomial_distribution<_IntType>::result_type + binomial_distribution<_IntType>:: + _M_waiting(_UniformRandomNumberGenerator& __urng, + _IntType __t, double __q) + { + _IntType __x = 0; + double __sum = 0.0; + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + do + { + if (__t == __x) + return __x; + const double __e = -std::log(1.0 - __aurng()); + __sum += __e / (__t - __x); + __x += 1; + } + while (__sum <= __q); + + return __x - 1; + } +# 1530 "/usr/include/c++/5/bits/random.tcc" 3 + template + template + typename binomial_distribution<_IntType>::result_type + binomial_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + result_type __ret; + const _IntType __t = __param.t(); + const double __p = __param.p(); + const double __p12 = __p <= 0.5 ? __p : 1.0 - __p; + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + + if (!__param._M_easy) + { + double __x; + + + const double __naf = + (1 - std::numeric_limits::epsilon()) / 2; + const double __thr = + std::numeric_limits<_IntType>::max() + __naf; + + const double __np = std::floor(__t * __p12); + + + const double __spi_2 = 1.2533141373155002512078826424055226L; + const double __a1 = __param._M_a1; + const double __a12 = __a1 + __param._M_s2 * __spi_2; + const double __a123 = __param._M_a123; + const double __s1s = __param._M_s1 * __param._M_s1; + const double __s2s = __param._M_s2 * __param._M_s2; + + bool __reject; + do + { + const double __u = __param._M_s * __aurng(); + + double __v; + + if (__u <= __a1) + { + const double __n = _M_nd(__urng); + const double __y = __param._M_s1 * std::abs(__n); + __reject = __y >= __param._M_d1; + if (!__reject) + { + const double __e = -std::log(1.0 - __aurng()); + __x = std::floor(__y); + __v = -__e - __n * __n / 2 + __param._M_c; + } + } + else if (__u <= __a12) + { + const double __n = _M_nd(__urng); + const double __y = __param._M_s2 * std::abs(__n); + __reject = __y >= __param._M_d2; + if (!__reject) + { + const double __e = -std::log(1.0 - __aurng()); + __x = std::floor(-__y); + __v = -__e - __n * __n / 2; + } + } + else if (__u <= __a123) + { + const double __e1 = -std::log(1.0 - __aurng()); + const double __e2 = -std::log(1.0 - __aurng()); + + const double __y = __param._M_d1 + + 2 * __s1s * __e1 / __param._M_d1; + __x = std::floor(__y); + __v = (-__e2 + __param._M_d1 * (1 / (__t - __np) + -__y / (2 * __s1s))); + __reject = false; + } + else + { + const double __e1 = -std::log(1.0 - __aurng()); + const double __e2 = -std::log(1.0 - __aurng()); + + const double __y = __param._M_d2 + + 2 * __s2s * __e1 / __param._M_d2; + __x = std::floor(-__y); + __v = -__e2 - __param._M_d2 * __y / (2 * __s2s); + __reject = false; + } + + __reject = __reject || __x < -__np || __x > __t - __np; + if (!__reject) + { + const double __lfx = + std::lgamma(__np + __x + 1) + + std::lgamma(__t - (__np + __x) + 1); + __reject = __v > __param._M_lf - __lfx + + __x * __param._M_lp1p; + } + + __reject |= __x + __np >= __thr; + } + while (__reject); + + __x += __np + __naf; + + const _IntType __z = _M_waiting(__urng, __t - _IntType(__x), + __param._M_q); + __ret = _IntType(__x) + __z; + } + else + + __ret = _M_waiting(__urng, __t, __param._M_q); + + if (__p12 != __p) + __ret = __t - __ret; + return __ret; + } + + template + template + void + binomial_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + while (__f != __t) + *__f++ = this->operator()(__urng, __param); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const binomial_distribution<_IntType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits::max_digits10); + + __os << __x.t() << __space << __x.p() + << __space << __x._M_nd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + binomial_distribution<_IntType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _IntType __t; + double __p; + __is >> __t >> __p >> __x._M_nd; + __x.param(typename binomial_distribution<_IntType>:: + param_type(__t, __p)); + + __is.flags(__flags); + return __is; + } + + + template + template + void + std::exponential_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + while (__f != __t) + *__f++ = -std::log(result_type(1) - __aurng()) / __p.lambda(); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const exponential_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__os.widen(' ')); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.lambda(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + exponential_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __lambda; + __is >> __lambda; + __x.param(typename exponential_distribution<_RealType>:: + param_type(__lambda)); + + __is.flags(__flags); + return __is; + } +# 1779 "/usr/include/c++/5/bits/random.tcc" 3 + template + template + typename normal_distribution<_RealType>::result_type + normal_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + result_type __ret; + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + + if (_M_saved_available) + { + _M_saved_available = false; + __ret = _M_saved; + } + else + { + result_type __x, __y, __r2; + do + { + __x = result_type(2.0) * __aurng() - 1.0; + __y = result_type(2.0) * __aurng() - 1.0; + __r2 = __x * __x + __y * __y; + } + while (__r2 > 1.0 || __r2 == 0.0); + + const result_type __mult = std::sqrt(-2 * std::log(__r2) / __r2); + _M_saved = __x * __mult; + _M_saved_available = true; + __ret = __y * __mult; + } + + __ret = __ret * __param.stddev() + __param.mean(); + return __ret; + } + + template + template + void + normal_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + if (__f == __t) + return; + + if (_M_saved_available) + { + _M_saved_available = false; + *__f++ = _M_saved * __param.stddev() + __param.mean(); + + if (__f == __t) + return; + } + + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + + while (__f + 1 < __t) + { + result_type __x, __y, __r2; + do + { + __x = result_type(2.0) * __aurng() - 1.0; + __y = result_type(2.0) * __aurng() - 1.0; + __r2 = __x * __x + __y * __y; + } + while (__r2 > 1.0 || __r2 == 0.0); + + const result_type __mult = std::sqrt(-2 * std::log(__r2) / __r2); + *__f++ = __y * __mult * __param.stddev() + __param.mean(); + *__f++ = __x * __mult * __param.stddev() + __param.mean(); + } + + if (__f != __t) + { + result_type __x, __y, __r2; + do + { + __x = result_type(2.0) * __aurng() - 1.0; + __y = result_type(2.0) * __aurng() - 1.0; + __r2 = __x * __x + __y * __y; + } + while (__r2 > 1.0 || __r2 == 0.0); + + const result_type __mult = std::sqrt(-2 * std::log(__r2) / __r2); + _M_saved = __x * __mult; + _M_saved_available = true; + *__f = __y * __mult * __param.stddev() + __param.mean(); + } + } + + template + bool + operator==(const std::normal_distribution<_RealType>& __d1, + const std::normal_distribution<_RealType>& __d2) + { + if (__d1._M_param == __d2._M_param + && __d1._M_saved_available == __d2._M_saved_available) + { + if (__d1._M_saved_available + && __d1._M_saved == __d2._M_saved) + return true; + else if(!__d1._M_saved_available) + return true; + else + return false; + } + else + return false; + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const normal_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.mean() << __space << __x.stddev() + << __space << __x._M_saved_available; + if (__x._M_saved_available) + __os << __space << __x._M_saved; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + normal_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + double __mean, __stddev; + __is >> __mean >> __stddev + >> __x._M_saved_available; + if (__x._M_saved_available) + __is >> __x._M_saved; + __x.param(typename normal_distribution<_RealType>:: + param_type(__mean, __stddev)); + + __is.flags(__flags); + return __is; + } + + + template + template + void + lognormal_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + while (__f != __t) + *__f++ = std::exp(__p.s() * _M_nd(__urng) + __p.m()); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const lognormal_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.m() << __space << __x.s() + << __space << __x._M_nd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + lognormal_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __m, __s; + __is >> __m >> __s >> __x._M_nd; + __x.param(typename lognormal_distribution<_RealType>:: + param_type(__m, __s)); + + __is.flags(__flags); + return __is; + } + + template + template + void + std::chi_squared_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { + + while (__f != __t) + *__f++ = 2 * _M_gd(__urng); + } + + template + template + void + std::chi_squared_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const typename + std::gamma_distribution::param_type& __p) + { + + while (__f != __t) + *__f++ = 2 * _M_gd(__urng, __p); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const chi_squared_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.n() << __space << __x._M_gd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + chi_squared_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __n; + __is >> __n >> __x._M_gd; + __x.param(typename chi_squared_distribution<_RealType>:: + param_type(__n)); + + __is.flags(__flags); + return __is; + } + + + template + template + typename cauchy_distribution<_RealType>::result_type + cauchy_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + _RealType __u; + do + __u = __aurng(); + while (__u == 0.5); + + const _RealType __pi = 3.1415926535897932384626433832795029L; + return __p.a() + __p.b() * std::tan(__pi * __u); + } + + template + template + void + cauchy_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + const _RealType __pi = 3.1415926535897932384626433832795029L; + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + while (__f != __t) + { + _RealType __u; + do + __u = __aurng(); + while (__u == 0.5); + + *__f++ = __p.a() + __p.b() * std::tan(__pi * __u); + } + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const cauchy_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.a() << __space << __x.b(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + cauchy_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __a, __b; + __is >> __a >> __b; + __x.param(typename cauchy_distribution<_RealType>:: + param_type(__a, __b)); + + __is.flags(__flags); + return __is; + } + + + template + template + void + std::fisher_f_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { + + while (__f != __t) + *__f++ = ((_M_gd_x(__urng) * n()) / (_M_gd_y(__urng) * m())); + } + + template + template + void + std::fisher_f_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + typedef typename std::gamma_distribution::param_type + param_type; + param_type __p1(__p.m() / 2); + param_type __p2(__p.n() / 2); + while (__f != __t) + *__f++ = ((_M_gd_x(__urng, __p1) * n()) + / (_M_gd_y(__urng, __p2) * m())); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const fisher_f_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.m() << __space << __x.n() + << __space << __x._M_gd_x << __space << __x._M_gd_y; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + fisher_f_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __m, __n; + __is >> __m >> __n >> __x._M_gd_x >> __x._M_gd_y; + __x.param(typename fisher_f_distribution<_RealType>:: + param_type(__m, __n)); + + __is.flags(__flags); + return __is; + } + + + template + template + void + std::student_t_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng) + { + + while (__f != __t) + *__f++ = _M_nd(__urng) * std::sqrt(n() / _M_gd(__urng)); + } + + template + template + void + std::student_t_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + typename std::gamma_distribution::param_type + __p2(__p.n() / 2, 2); + while (__f != __t) + *__f++ = _M_nd(__urng) * std::sqrt(__p.n() / _M_gd(__urng, __p2)); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const student_t_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.n() << __space << __x._M_nd << __space << __x._M_gd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + student_t_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __n; + __is >> __n >> __x._M_nd >> __x._M_gd; + __x.param(typename student_t_distribution<_RealType>::param_type(__n)); + + __is.flags(__flags); + return __is; + } + + + template + void + gamma_distribution<_RealType>::param_type:: + _M_initialize() + { + _M_malpha = _M_alpha < 1.0 ? _M_alpha + _RealType(1.0) : _M_alpha; + + const _RealType __a1 = _M_malpha - _RealType(1.0) / _RealType(3.0); + _M_a2 = _RealType(1.0) / std::sqrt(_RealType(9.0) * __a1); + } + + + + + + + template + template + typename gamma_distribution<_RealType>::result_type + gamma_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + + result_type __u, __v, __n; + const result_type __a1 = (__param._M_malpha + - _RealType(1.0) / _RealType(3.0)); + + do + { + do + { + __n = _M_nd(__urng); + __v = result_type(1.0) + __param._M_a2 * __n; + } + while (__v <= 0.0); + + __v = __v * __v * __v; + __u = __aurng(); + } + while (__u > result_type(1.0) - 0.331 * __n * __n * __n * __n + && (std::log(__u) > (0.5 * __n * __n + __a1 + * (1.0 - __v + std::log(__v))))); + + if (__param.alpha() == __param._M_malpha) + return __a1 * __v * __param.beta(); + else + { + do + __u = __aurng(); + while (__u == 0.0); + + return (std::pow(__u, result_type(1.0) / __param.alpha()) + * __a1 * __v * __param.beta()); + } + } + + template + template + void + gamma_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + + result_type __u, __v, __n; + const result_type __a1 = (__param._M_malpha + - _RealType(1.0) / _RealType(3.0)); + + if (__param.alpha() == __param._M_malpha) + while (__f != __t) + { + do + { + do + { + __n = _M_nd(__urng); + __v = result_type(1.0) + __param._M_a2 * __n; + } + while (__v <= 0.0); + + __v = __v * __v * __v; + __u = __aurng(); + } + while (__u > result_type(1.0) - 0.331 * __n * __n * __n * __n + && (std::log(__u) > (0.5 * __n * __n + __a1 + * (1.0 - __v + std::log(__v))))); + + *__f++ = __a1 * __v * __param.beta(); + } + else + while (__f != __t) + { + do + { + do + { + __n = _M_nd(__urng); + __v = result_type(1.0) + __param._M_a2 * __n; + } + while (__v <= 0.0); + + __v = __v * __v * __v; + __u = __aurng(); + } + while (__u > result_type(1.0) - 0.331 * __n * __n * __n * __n + && (std::log(__u) > (0.5 * __n * __n + __a1 + * (1.0 - __v + std::log(__v))))); + + do + __u = __aurng(); + while (__u == 0.0); + + *__f++ = (std::pow(__u, result_type(1.0) / __param.alpha()) + * __a1 * __v * __param.beta()); + } + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const gamma_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.alpha() << __space << __x.beta() + << __space << __x._M_nd; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + gamma_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __alpha_val, __beta_val; + __is >> __alpha_val >> __beta_val >> __x._M_nd; + __x.param(typename gamma_distribution<_RealType>:: + param_type(__alpha_val, __beta_val)); + + __is.flags(__flags); + return __is; + } + + + template + template + typename weibull_distribution<_RealType>::result_type + weibull_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + return __p.b() * std::pow(-std::log(result_type(1) - __aurng()), + result_type(1) / __p.a()); + } + + template + template + void + weibull_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + auto __inv_a = result_type(1) / __p.a(); + + while (__f != __t) + *__f++ = __p.b() * std::pow(-std::log(result_type(1) - __aurng()), + __inv_a); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const weibull_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.a() << __space << __x.b(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + weibull_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __a, __b; + __is >> __a >> __b; + __x.param(typename weibull_distribution<_RealType>:: + param_type(__a, __b)); + + __is.flags(__flags); + return __is; + } + + + template + template + typename extreme_value_distribution<_RealType>::result_type + extreme_value_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + return __p.a() - __p.b() * std::log(-std::log(result_type(1) + - __aurng())); + } + + template + template + void + extreme_value_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __p) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> + __aurng(__urng); + + while (__f != __t) + *__f++ = __p.a() - __p.b() * std::log(-std::log(result_type(1) + - __aurng())); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const extreme_value_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + __os << __x.a() << __space << __x.b(); + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + extreme_value_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + _RealType __a, __b; + __is >> __a >> __b; + __x.param(typename extreme_value_distribution<_RealType>:: + param_type(__a, __b)); + + __is.flags(__flags); + return __is; + } + + + template + void + discrete_distribution<_IntType>::param_type:: + _M_initialize() + { + if (_M_prob.size() < 2) + { + _M_prob.clear(); + return; + } + + const double __sum = std::accumulate(_M_prob.begin(), + _M_prob.end(), 0.0); + + __detail::__normalize(_M_prob.begin(), _M_prob.end(), _M_prob.begin(), + __sum); + + _M_cp.reserve(_M_prob.size()); + std::partial_sum(_M_prob.begin(), _M_prob.end(), + std::back_inserter(_M_cp)); + + _M_cp[_M_cp.size() - 1] = 1.0; + } + + template + template + discrete_distribution<_IntType>::param_type:: + param_type(size_t __nw, double __xmin, double __xmax, _Func __fw) + : _M_prob(), _M_cp() + { + const size_t __n = __nw == 0 ? 1 : __nw; + const double __delta = (__xmax - __xmin) / __n; + + _M_prob.reserve(__n); + for (size_t __k = 0; __k < __nw; ++__k) + _M_prob.push_back(__fw(__xmin + __k * __delta + 0.5 * __delta)); + + _M_initialize(); + } + + template + template + typename discrete_distribution<_IntType>::result_type + discrete_distribution<_IntType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + if (__param._M_cp.empty()) + return result_type(0); + + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + const double __p = __aurng(); + auto __pos = std::lower_bound(__param._M_cp.begin(), + __param._M_cp.end(), __p); + + return __pos - __param._M_cp.begin(); + } + + template + template + void + discrete_distribution<_IntType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + if (__param._M_cp.empty()) + { + while (__f != __t) + *__f++ = result_type(0); + return; + } + + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + while (__f != __t) + { + const double __p = __aurng(); + auto __pos = std::lower_bound(__param._M_cp.begin(), + __param._M_cp.end(), __p); + + *__f++ = __pos - __param._M_cp.begin(); + } + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const discrete_distribution<_IntType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits::max_digits10); + + std::vector __prob = __x.probabilities(); + __os << __prob.size(); + for (auto __dit = __prob.begin(); __dit != __prob.end(); ++__dit) + __os << __space << *__dit; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + discrete_distribution<_IntType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + size_t __n; + __is >> __n; + + std::vector __prob_vec; + __prob_vec.reserve(__n); + for (; __n != 0; --__n) + { + double __prob; + __is >> __prob; + __prob_vec.push_back(__prob); + } + + __x.param(typename discrete_distribution<_IntType>:: + param_type(__prob_vec.begin(), __prob_vec.end())); + + __is.flags(__flags); + return __is; + } + + + template + void + piecewise_constant_distribution<_RealType>::param_type:: + _M_initialize() + { + if (_M_int.size() < 2 + || (_M_int.size() == 2 + && _M_int[0] == _RealType(0) + && _M_int[1] == _RealType(1))) + { + _M_int.clear(); + _M_den.clear(); + return; + } + + const double __sum = std::accumulate(_M_den.begin(), + _M_den.end(), 0.0); + + __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(), + __sum); + + _M_cp.reserve(_M_den.size()); + std::partial_sum(_M_den.begin(), _M_den.end(), + std::back_inserter(_M_cp)); + + + _M_cp[_M_cp.size() - 1] = 1.0; + + for (size_t __k = 0; __k < _M_den.size(); ++__k) + _M_den[__k] /= _M_int[__k + 1] - _M_int[__k]; + } + + template + template + piecewise_constant_distribution<_RealType>::param_type:: + param_type(_InputIteratorB __bbegin, + _InputIteratorB __bend, + _InputIteratorW __wbegin) + : _M_int(), _M_den(), _M_cp() + { + if (__bbegin != __bend) + { + for (;;) + { + _M_int.push_back(*__bbegin); + ++__bbegin; + if (__bbegin == __bend) + break; + + _M_den.push_back(*__wbegin); + ++__wbegin; + } + } + + _M_initialize(); + } + + template + template + piecewise_constant_distribution<_RealType>::param_type:: + param_type(initializer_list<_RealType> __bl, _Func __fw) + : _M_int(), _M_den(), _M_cp() + { + _M_int.reserve(__bl.size()); + for (auto __biter = __bl.begin(); __biter != __bl.end(); ++__biter) + _M_int.push_back(*__biter); + + _M_den.reserve(_M_int.size() - 1); + for (size_t __k = 0; __k < _M_int.size() - 1; ++__k) + _M_den.push_back(__fw(0.5 * (_M_int[__k + 1] + _M_int[__k]))); + + _M_initialize(); + } + + template + template + piecewise_constant_distribution<_RealType>::param_type:: + param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw) + : _M_int(), _M_den(), _M_cp() + { + const size_t __n = __nw == 0 ? 1 : __nw; + const _RealType __delta = (__xmax - __xmin) / __n; + + _M_int.reserve(__n + 1); + for (size_t __k = 0; __k <= __nw; ++__k) + _M_int.push_back(__xmin + __k * __delta); + + _M_den.reserve(__n); + for (size_t __k = 0; __k < __nw; ++__k) + _M_den.push_back(__fw(_M_int[__k] + 0.5 * __delta)); + + _M_initialize(); + } + + template + template + typename piecewise_constant_distribution<_RealType>::result_type + piecewise_constant_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + const double __p = __aurng(); + if (__param._M_cp.empty()) + return __p; + + auto __pos = std::lower_bound(__param._M_cp.begin(), + __param._M_cp.end(), __p); + const size_t __i = __pos - __param._M_cp.begin(); + + const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0; + + return __param._M_int[__i] + (__p - __pref) / __param._M_den[__i]; + } + + template + template + void + piecewise_constant_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + if (__param._M_cp.empty()) + { + while (__f != __t) + *__f++ = __aurng(); + return; + } + + while (__f != __t) + { + const double __p = __aurng(); + + auto __pos = std::lower_bound(__param._M_cp.begin(), + __param._M_cp.end(), __p); + const size_t __i = __pos - __param._M_cp.begin(); + + const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0; + + *__f++ = (__param._M_int[__i] + + (__p - __pref) / __param._M_den[__i]); + } + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const piecewise_constant_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + std::vector<_RealType> __int = __x.intervals(); + __os << __int.size() - 1; + + for (auto __xit = __int.begin(); __xit != __int.end(); ++__xit) + __os << __space << *__xit; + + std::vector __den = __x.densities(); + for (auto __dit = __den.begin(); __dit != __den.end(); ++__dit) + __os << __space << *__dit; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + piecewise_constant_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + size_t __n; + __is >> __n; + + std::vector<_RealType> __int_vec; + __int_vec.reserve(__n + 1); + for (size_t __i = 0; __i <= __n; ++__i) + { + _RealType __int; + __is >> __int; + __int_vec.push_back(__int); + } + + std::vector __den_vec; + __den_vec.reserve(__n); + for (size_t __i = 0; __i < __n; ++__i) + { + double __den; + __is >> __den; + __den_vec.push_back(__den); + } + + __x.param(typename piecewise_constant_distribution<_RealType>:: + param_type(__int_vec.begin(), __int_vec.end(), __den_vec.begin())); + + __is.flags(__flags); + return __is; + } + + + template + void + piecewise_linear_distribution<_RealType>::param_type:: + _M_initialize() + { + if (_M_int.size() < 2 + || (_M_int.size() == 2 + && _M_int[0] == _RealType(0) + && _M_int[1] == _RealType(1) + && _M_den[0] == _M_den[1])) + { + _M_int.clear(); + _M_den.clear(); + return; + } + + double __sum = 0.0; + _M_cp.reserve(_M_int.size() - 1); + _M_m.reserve(_M_int.size() - 1); + for (size_t __k = 0; __k < _M_int.size() - 1; ++__k) + { + const _RealType __delta = _M_int[__k + 1] - _M_int[__k]; + __sum += 0.5 * (_M_den[__k + 1] + _M_den[__k]) * __delta; + _M_cp.push_back(__sum); + _M_m.push_back((_M_den[__k + 1] - _M_den[__k]) / __delta); + } + + + __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(), + __sum); + + __detail::__normalize(_M_cp.begin(), _M_cp.end(), _M_cp.begin(), __sum); + + __detail::__normalize(_M_m.begin(), _M_m.end(), _M_m.begin(), __sum); + + + _M_cp[_M_cp.size() - 1] = 1.0; + } + + template + template + piecewise_linear_distribution<_RealType>::param_type:: + param_type(_InputIteratorB __bbegin, + _InputIteratorB __bend, + _InputIteratorW __wbegin) + : _M_int(), _M_den(), _M_cp(), _M_m() + { + for (; __bbegin != __bend; ++__bbegin, ++__wbegin) + { + _M_int.push_back(*__bbegin); + _M_den.push_back(*__wbegin); + } + + _M_initialize(); + } + + template + template + piecewise_linear_distribution<_RealType>::param_type:: + param_type(initializer_list<_RealType> __bl, _Func __fw) + : _M_int(), _M_den(), _M_cp(), _M_m() + { + _M_int.reserve(__bl.size()); + _M_den.reserve(__bl.size()); + for (auto __biter = __bl.begin(); __biter != __bl.end(); ++__biter) + { + _M_int.push_back(*__biter); + _M_den.push_back(__fw(*__biter)); + } + + _M_initialize(); + } + + template + template + piecewise_linear_distribution<_RealType>::param_type:: + param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw) + : _M_int(), _M_den(), _M_cp(), _M_m() + { + const size_t __n = __nw == 0 ? 1 : __nw; + const _RealType __delta = (__xmax - __xmin) / __n; + + _M_int.reserve(__n + 1); + _M_den.reserve(__n + 1); + for (size_t __k = 0; __k <= __nw; ++__k) + { + _M_int.push_back(__xmin + __k * __delta); + _M_den.push_back(__fw(_M_int[__k] + __delta)); + } + + _M_initialize(); + } + + template + template + typename piecewise_linear_distribution<_RealType>::result_type + piecewise_linear_distribution<_RealType>:: + operator()(_UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + __detail::_Adaptor<_UniformRandomNumberGenerator, double> + __aurng(__urng); + + const double __p = __aurng(); + if (__param._M_cp.empty()) + return __p; + + auto __pos = std::lower_bound(__param._M_cp.begin(), + __param._M_cp.end(), __p); + const size_t __i = __pos - __param._M_cp.begin(); + + const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0; + + const double __a = 0.5 * __param._M_m[__i]; + const double __b = __param._M_den[__i]; + const double __cm = __p - __pref; + + _RealType __x = __param._M_int[__i]; + if (__a == 0) + __x += __cm / __b; + else + { + const double __d = __b * __b + 4.0 * __a * __cm; + __x += 0.5 * (std::sqrt(__d) - __b) / __a; + } + + return __x; + } + + template + template + void + piecewise_linear_distribution<_RealType>:: + __generate_impl(_ForwardIterator __f, _ForwardIterator __t, + _UniformRandomNumberGenerator& __urng, + const param_type& __param) + { + + + while (__f != __t) + *__f++ = this->operator()(__urng, __param); + } + + template + std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>& __os, + const piecewise_linear_distribution<_RealType>& __x) + { + typedef std::basic_ostream<_CharT, _Traits> __ostream_type; + typedef typename __ostream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __os.flags(); + const _CharT __fill = __os.fill(); + const std::streamsize __precision = __os.precision(); + const _CharT __space = __os.widen(' '); + __os.flags(__ios_base::scientific | __ios_base::left); + __os.fill(__space); + __os.precision(std::numeric_limits<_RealType>::max_digits10); + + std::vector<_RealType> __int = __x.intervals(); + __os << __int.size() - 1; + + for (auto __xit = __int.begin(); __xit != __int.end(); ++__xit) + __os << __space << *__xit; + + std::vector __den = __x.densities(); + for (auto __dit = __den.begin(); __dit != __den.end(); ++__dit) + __os << __space << *__dit; + + __os.flags(__flags); + __os.fill(__fill); + __os.precision(__precision); + return __os; + } + + template + std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>& __is, + piecewise_linear_distribution<_RealType>& __x) + { + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + + const typename __ios_base::fmtflags __flags = __is.flags(); + __is.flags(__ios_base::dec | __ios_base::skipws); + + size_t __n; + __is >> __n; + + std::vector<_RealType> __int_vec; + __int_vec.reserve(__n + 1); + for (size_t __i = 0; __i <= __n; ++__i) + { + _RealType __int; + __is >> __int; + __int_vec.push_back(__int); + } + + std::vector __den_vec; + __den_vec.reserve(__n + 1); + for (size_t __i = 0; __i <= __n; ++__i) + { + double __den; + __is >> __den; + __den_vec.push_back(__den); + } + + __x.param(typename piecewise_linear_distribution<_RealType>:: + param_type(__int_vec.begin(), __int_vec.end(), __den_vec.begin())); + + __is.flags(__flags); + return __is; + } + + + template + seed_seq::seed_seq(std::initializer_list<_IntType> __il) + { + for (auto __iter = __il.begin(); __iter != __il.end(); ++__iter) + _M_v.push_back(__detail::__mod::__value>(*__iter)); + } + + template + seed_seq::seed_seq(_InputIterator __begin, _InputIterator __end) + { + for (_InputIterator __iter = __begin; __iter != __end; ++__iter) + _M_v.push_back(__detail::__mod::__value>(*__iter)); + } + + template + void + seed_seq::generate(_RandomAccessIterator __begin, + _RandomAccessIterator __end) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _Type; + + if (__begin == __end) + return; + + std::fill(__begin, __end, _Type(0x8b8b8b8bu)); + + const size_t __n = __end - __begin; + const size_t __s = _M_v.size(); + const size_t __t = (__n >= 623) ? 11 + : (__n >= 68) ? 7 + : (__n >= 39) ? 5 + : (__n >= 7) ? 3 + : (__n - 1) / 2; + const size_t __p = (__n - __t) / 2; + const size_t __q = __p + __t; + const size_t __m = std::max(size_t(__s + 1), __n); + + for (size_t __k = 0; __k < __m; ++__k) + { + _Type __arg = (__begin[__k % __n] + ^ __begin[(__k + __p) % __n] + ^ __begin[(__k - 1) % __n]); + _Type __r1 = __arg ^ (__arg >> 27); + __r1 = __detail::__mod<_Type, + __detail::_Shift<_Type, 32>::__value>(1664525u * __r1); + _Type __r2 = __r1; + if (__k == 0) + __r2 += __s; + else if (__k <= __s) + __r2 += __k % __n + _M_v[__k - 1]; + else + __r2 += __k % __n; + __r2 = __detail::__mod<_Type, + __detail::_Shift<_Type, 32>::__value>(__r2); + __begin[(__k + __p) % __n] += __r1; + __begin[(__k + __q) % __n] += __r2; + __begin[__k % __n] = __r2; + } + + for (size_t __k = __m; __k < __m + __n; ++__k) + { + _Type __arg = (__begin[__k % __n] + + __begin[(__k + __p) % __n] + + __begin[(__k - 1) % __n]); + _Type __r3 = __arg ^ (__arg >> 27); + __r3 = __detail::__mod<_Type, + __detail::_Shift<_Type, 32>::__value>(1566083941u * __r3); + _Type __r4 = __r3 - __k % __n; + __r4 = __detail::__mod<_Type, + __detail::_Shift<_Type, 32>::__value>(__r4); + __begin[(__k + __p) % __n] ^= __r3; + __begin[(__k + __q) % __n] ^= __r4; + __begin[__k % __n] = __r4; + } + } + + template + _RealType + generate_canonical(_UniformRandomNumberGenerator& __urng) + { + static_assert(std::is_floating_point<_RealType>::value, + "template argument not a floating point type"); + + const size_t __b + = std::min(static_cast(std::numeric_limits<_RealType>::digits), + __bits); + const long double __r = static_cast(__urng.max()) + - static_cast(__urng.min()) + 1.0L; + const size_t __log2r = std::log(__r) / std::log(2.0L); + size_t __k = std::max(1UL, (__b + __log2r - 1UL) / __log2r); + _RealType __sum = _RealType(0); + _RealType __tmp = _RealType(1); + for (; __k != 0; --__k) + { + __sum += _RealType(__urng() - __urng.min()) * __tmp; + __tmp *= __r; + } + return __sum / __tmp; + } + + +} +# 52 "/usr/include/c++/5/random" 2 3 +# 67 "/usr/include/c++/5/bits/stl_algo.h" 2 3 + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + void + __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, + _Iterator __c, _Compare __comp) + { + if (__comp(__a, __b)) + { + if (__comp(__b, __c)) + std::iter_swap(__result, __b); + else if (__comp(__a, __c)) + std::iter_swap(__result, __c); + else + std::iter_swap(__result, __a); + } + else if (__comp(__a, __c)) + std::iter_swap(__result, __a); + else if (__comp(__b, __c)) + std::iter_swap(__result, __c); + else + std::iter_swap(__result, __b); + } + + + template + inline _InputIterator + __find_if(_InputIterator __first, _InputIterator __last, + _Predicate __pred, input_iterator_tag) + { + while (__first != __last && !__pred(__first)) + ++__first; + return __first; + } + + + template + _RandomAccessIterator + __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Predicate __pred, random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIterator>::difference_type + __trip_count = (__last - __first) >> 2; + + for (; __trip_count > 0; --__trip_count) + { + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + } + + switch (__last - __first) + { + case 3: + if (__pred(__first)) + return __first; + ++__first; + case 2: + if (__pred(__first)) + return __first; + ++__first; + case 1: + if (__pred(__first)) + return __first; + ++__first; + case 0: + default: + return __last; + } + } + + template + inline _Iterator + __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) + { + return __find_if(__first, __last, __pred, + std::__iterator_category(__first)); + } + + + template + inline _InputIterator + __find_if_not(_InputIterator __first, _InputIterator __last, + _Predicate __pred) + { + return std::__find_if(__first, __last, + __gnu_cxx::__ops::__negate(__pred), + std::__iterator_category(__first)); + } + + + + + template + _InputIterator + __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) + { + for (; __len; --__len, ++__first) + if (!__pred(__first)) + break; + return __first; + } +# 202 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _ForwardIterator1 + __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + + _ForwardIterator2 __p1(__first2); + if (++__p1 == __last2) + return std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + + _ForwardIterator2 __p; + _ForwardIterator1 __current = __first1; + + for (;;) + { + __first1 = + std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + if (__first1 == __last1) + return __last1; + + __p = __p1; + __current = __first1; + if (++__current == __last1) + return __last1; + + while (__predicate(__current, __p)) + { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + ++__first1; + } + return __first1; + } + + + + + + + template + _ForwardIterator + __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, + _Integer __count, _UnaryPredicate __unary_pred, + std::forward_iterator_tag) + { + __first = std::__find_if(__first, __last, __unary_pred); + while (__first != __last) + { + typename iterator_traits<_ForwardIterator>::difference_type + __n = __count; + _ForwardIterator __i = __first; + ++__i; + while (__i != __last && __n != 1 && __unary_pred(__i)) + { + ++__i; + --__n; + } + if (__n == 1) + return __first; + if (__i == __last) + return __last; + __first = std::__find_if(++__i, __last, __unary_pred); + } + return __last; + } + + + + + + template + _RandomAccessIter + __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, + _Integer __count, _UnaryPredicate __unary_pred, + std::random_access_iterator_tag) + { + typedef typename std::iterator_traits<_RandomAccessIter>::difference_type + _DistanceType; + + _DistanceType __tailSize = __last - __first; + _DistanceType __remainder = __count; + + while (__remainder <= __tailSize) + { + __first += __remainder; + __tailSize -= __remainder; + + + _RandomAccessIter __backTrack = __first; + while (__unary_pred(--__backTrack)) + { + if (--__remainder == 0) + return (__first - __count); + } + __remainder = __count + 1 - (__first - __backTrack); + } + return __last; + } + + template + _ForwardIterator + __search_n(_ForwardIterator __first, _ForwardIterator __last, + _Integer __count, + _UnaryPredicate __unary_pred) + { + if (__count <= 0) + return __first; + + if (__count == 1) + return std::__find_if(__first, __last, __unary_pred); + + return std::__search_n_aux(__first, __last, __count, __unary_pred, + std::__iterator_category(__first)); + } + + + template + _ForwardIterator1 + __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + forward_iterator_tag, forward_iterator_tag, + _BinaryPredicate __comp) + { + if (__first2 == __last2) + return __last1; + + _ForwardIterator1 __result = __last1; + while (1) + { + _ForwardIterator1 __new_result + = std::__search(__first1, __last1, __first2, __last2, __comp); + if (__new_result == __last1) + return __result; + else + { + __result = __new_result; + __first1 = __new_result; + ++__first1; + } + } + } + + + template + _BidirectionalIterator1 + __find_end(_BidirectionalIterator1 __first1, + _BidirectionalIterator1 __last1, + _BidirectionalIterator2 __first2, + _BidirectionalIterator2 __last2, + bidirectional_iterator_tag, bidirectional_iterator_tag, + _BinaryPredicate __comp) + { + + + + + + + typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; + typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; + + _RevIterator1 __rlast1(__first1); + _RevIterator2 __rlast2(__first2); + _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, + _RevIterator2(__last2), __rlast2, + __comp); + + if (__rresult == __rlast1) + return __last1; + else + { + _BidirectionalIterator1 __result = __rresult.base(); + std::advance(__result, -std::distance(__first2, __last2)); + return __result; + } + } +# 423 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator1 + find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2) + { + + + + + + + ; + ; + + return std::__find_end(__first1, __last1, __first2, __last2, + std::__iterator_category(__first1), + std::__iterator_category(__first2), + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 471 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator1 + find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __comp) + { + + + + + + + ; + ; + + return std::__find_end(__first1, __last1, __first2, __last2, + std::__iterator_category(__first1), + std::__iterator_category(__first2), + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 506 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { return __last == std::find_if_not(__first, __last, __pred); } +# 523 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { return __last == std::find_if(__first, __last, __pred); } +# 541 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { return !std::none_of(__first, __last, __pred); } +# 556 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _InputIterator + find_if_not(_InputIterator __first, _InputIterator __last, + _Predicate __pred) + { + + + + + ; + return std::__find_if_not(__first, __last, + __gnu_cxx::__ops::__pred_iter(__pred)); + } +# 580 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + is_partitioned(_InputIterator __first, _InputIterator __last, + _Predicate __pred) + { + __first = std::find_if_not(__first, __last, __pred); + return std::none_of(__first, __last, __pred); + } +# 598 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _ForwardIterator + partition_point(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + + + + + + + ; + + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + _DistanceType __half; + _ForwardIterator __middle; + + while (__len > 0) + { + __half = __len >> 1; + __middle = __first; + std::advance(__middle, __half); + if (__pred(*__middle)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } + + + template + _OutputIterator + __remove_copy_if(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _Predicate __pred) + { + for (; __first != __last; ++__first) + if (!__pred(__first)) + { + *__result = *__first; + ++__result; + } + return __result; + } +# 665 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + remove_copy(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, const _Tp& __value) + { + + + + + + + ; + + return std::__remove_copy_if(__first, __last, __result, + __gnu_cxx::__ops::__iter_equals_val(__value)); + } +# 697 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + remove_copy_if(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _Predicate __pred) + { + + + + + + + ; + + return std::__remove_copy_if(__first, __last, __result, + __gnu_cxx::__ops::__pred_iter(__pred)); + } +# 731 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _OutputIterator + copy_if(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _Predicate __pred) + { + + + + + + + ; + + for (; __first != __last; ++__first) + if (__pred(*__first)) + { + *__result = *__first; + ++__result; + } + return __result; + } + + template + _OutputIterator + __copy_n(_InputIterator __first, _Size __n, + _OutputIterator __result, input_iterator_tag) + { + if (__n > 0) + { + while (true) + { + *__result = *__first; + ++__result; + if (--__n > 0) + ++__first; + else + break; + } + } + return __result; + } + + template + inline _OutputIterator + __copy_n(_RandomAccessIterator __first, _Size __n, + _OutputIterator __result, random_access_iterator_tag) + { return std::copy(__first, __first + __n, __result); } +# 794 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) + { + + + + + + return std::__copy_n(__first, __n, __result, + std::__iterator_category(__first)); + } +# 822 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + pair<_OutputIterator1, _OutputIterator2> + partition_copy(_InputIterator __first, _InputIterator __last, + _OutputIterator1 __out_true, _OutputIterator2 __out_false, + _Predicate __pred) + { + + + + + + + + + ; + + for (; __first != __last; ++__first) + if (__pred(*__first)) + { + *__out_true = *__first; + ++__out_true; + } + else + { + *__out_false = *__first; + ++__out_false; + } + + return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); + } + + + template + _ForwardIterator + __remove_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + __first = std::__find_if(__first, __last, __pred); + if (__first == __last) + return __first; + _ForwardIterator __result = __first; + ++__first; + for (; __first != __last; ++__first) + if (!__pred(__first)) + { + *__result = std::move(*__first); + ++__result; + } + return __result; + } +# 891 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + remove(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + + + + + + ; + + return std::__remove_if(__first, __last, + __gnu_cxx::__ops::__iter_equals_val(__value)); + } +# 924 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + remove_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + + + + + + ; + + return std::__remove_if(__first, __last, + __gnu_cxx::__ops::__pred_iter(__pred)); + } + + template + _ForwardIterator + __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, + _BinaryPredicate __binary_pred) + { + if (__first == __last) + return __last; + _ForwardIterator __next = __first; + while (++__next != __last) + { + if (__binary_pred(__first, __next)) + return __first; + __first = __next; + } + return __last; + } + + template + _ForwardIterator + __unique(_ForwardIterator __first, _ForwardIterator __last, + _BinaryPredicate __binary_pred) + { + + __first = std::__adjacent_find(__first, __last, __binary_pred); + if (__first == __last) + return __last; + + + _ForwardIterator __dest = __first; + ++__first; + while (++__first != __last) + if (!__binary_pred(__dest, __first)) + *++__dest = std::move(*__first); + return ++__dest; + } +# 990 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + unique(_ForwardIterator __first, _ForwardIterator __last) + { + + + + + + ; + + return std::__unique(__first, __last, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1020 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + unique(_ForwardIterator __first, _ForwardIterator __last, + _BinaryPredicate __binary_pred) + { + + + + + + + ; + + return std::__unique(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + + + + + + template + _OutputIterator + __unique_copy(_ForwardIterator __first, _ForwardIterator __last, + _OutputIterator __result, _BinaryPredicate __binary_pred, + forward_iterator_tag, output_iterator_tag) + { + + + + + + _ForwardIterator __next = __first; + *__result = *__first; + while (++__next != __last) + if (!__binary_pred(__first, __next)) + { + __first = __next; + *++__result = *__first; + } + return ++__result; + } + + + + + + + + template + _OutputIterator + __unique_copy(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _BinaryPredicate __binary_pred, + input_iterator_tag, output_iterator_tag) + { + + + + + + typename iterator_traits<_InputIterator>::value_type __value = *__first; + __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) + __rebound_pred + = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); + *__result = __value; + while (++__first != __last) + if (!__rebound_pred(__first, __value)) + { + __value = *__first; + *++__result = __value; + } + return ++__result; + } + + + + + + + + template + _ForwardIterator + __unique_copy(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result, _BinaryPredicate __binary_pred, + input_iterator_tag, forward_iterator_tag) + { + + + + + *__result = *__first; + while (++__first != __last) + if (!__binary_pred(__result, __first)) + *++__result = *__first; + return ++__result; + } + + + + + + + template + void + __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, + bidirectional_iterator_tag) + { + while (true) + if (__first == __last || __first == --__last) + return; + else + { + std::iter_swap(__first, __last); + ++__first; + } + } + + + + + + + template + void + __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + if (__first == __last) + return; + --__last; + while (__first < __last) + { + std::iter_swap(__first, __last); + ++__first; + --__last; + } + } +# 1175 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) + { + + + + ; + std::__reverse(__first, __last, std::__iterator_category(__first)); + } +# 1202 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _OutputIterator + reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, + _OutputIterator __result) + { + + + + + + ; + + while (__first != __last) + { + --__last; + *__result = *__last; + ++__result; + } + return __result; + } + + + + + + template + _EuclideanRingElement + __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) + { + while (__n != 0) + { + _EuclideanRingElement __t = __m % __n; + __m = __n; + __n = __t; + } + return __m; + } + + inline namespace _V2 + { + + + template + _ForwardIterator + __rotate(_ForwardIterator __first, + _ForwardIterator __middle, + _ForwardIterator __last, + forward_iterator_tag) + { + if (__first == __middle) + return __last; + else if (__last == __middle) + return __first; + + _ForwardIterator __first2 = __middle; + do + { + std::iter_swap(__first, __first2); + ++__first; + ++__first2; + if (__first == __middle) + __middle = __first2; + } + while (__first2 != __last); + + _ForwardIterator __ret = __first; + + __first2 = __middle; + + while (__first2 != __last) + { + std::iter_swap(__first, __first2); + ++__first; + ++__first2; + if (__first == __middle) + __middle = __first2; + else if (__first2 == __last) + __first2 = __middle; + } + return __ret; + } + + + template + _BidirectionalIterator + __rotate(_BidirectionalIterator __first, + _BidirectionalIterator __middle, + _BidirectionalIterator __last, + bidirectional_iterator_tag) + { + + + + + if (__first == __middle) + return __last; + else if (__last == __middle) + return __first; + + std::__reverse(__first, __middle, bidirectional_iterator_tag()); + std::__reverse(__middle, __last, bidirectional_iterator_tag()); + + while (__first != __middle && __middle != __last) + { + std::iter_swap(__first, --__last); + ++__first; + } + + if (__first == __middle) + { + std::__reverse(__middle, __last, bidirectional_iterator_tag()); + return __last; + } + else + { + std::__reverse(__first, __middle, bidirectional_iterator_tag()); + return __first; + } + } + + + template + _RandomAccessIterator + __rotate(_RandomAccessIterator __first, + _RandomAccessIterator __middle, + _RandomAccessIterator __last, + random_access_iterator_tag) + { + + + + + if (__first == __middle) + return __last; + else if (__last == __middle) + return __first; + + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _Distance; + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + + _Distance __n = __last - __first; + _Distance __k = __middle - __first; + + if (__k == __n - __k) + { + std::swap_ranges(__first, __middle, __middle); + return __middle; + } + + _RandomAccessIterator __p = __first; + _RandomAccessIterator __ret = __first + (__last - __middle); + + for (;;) + { + if (__k < __n - __k) + { + if (__is_pod(_ValueType) && __k == 1) + { + _ValueType __t = std::move(*__p); + std::move(__p + 1, __p + __n, __p); + *(__p + __n - 1) = std::move(__t); + return __ret; + } + _RandomAccessIterator __q = __p + __k; + for (_Distance __i = 0; __i < __n - __k; ++ __i) + { + std::iter_swap(__p, __q); + ++__p; + ++__q; + } + __n %= __k; + if (__n == 0) + return __ret; + std::swap(__n, __k); + __k = __n - __k; + } + else + { + __k = __n - __k; + if (__is_pod(_ValueType) && __k == 1) + { + _ValueType __t = std::move(*(__p + __n - 1)); + std::move_backward(__p, __p + __n - 1, __p + __n); + *__p = std::move(__t); + return __ret; + } + _RandomAccessIterator __q = __p + __n; + __p = __q - __k; + for (_Distance __i = 0; __i < __n - __k; ++ __i) + { + --__p; + --__q; + std::iter_swap(__p, __q); + } + __n %= __k; + if (__n == 0) + return __ret; + std::swap(__n, __k); + } + } + } +# 1429 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + rotate(_ForwardIterator __first, _ForwardIterator __middle, + _ForwardIterator __last) + { + + + + ; + ; + + return std::__rotate(__first, __middle, __last, + std::__iterator_category(__first)); + } + + } +# 1466 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, + _ForwardIterator __last, _OutputIterator __result) + { + + + + + ; + ; + + return std::copy(__first, __middle, + std::copy(__middle, __last, __result)); + } + + + template + _ForwardIterator + __partition(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred, forward_iterator_tag) + { + if (__first == __last) + return __first; + + while (__pred(*__first)) + if (++__first == __last) + return __first; + + _ForwardIterator __next = __first; + + while (++__next != __last) + if (__pred(*__next)) + { + std::iter_swap(__first, __next); + ++__first; + } + + return __first; + } + + + template + _BidirectionalIterator + __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, + _Predicate __pred, bidirectional_iterator_tag) + { + while (true) + { + while (true) + if (__first == __last) + return __first; + else if (__pred(*__first)) + ++__first; + else + break; + --__last; + while (true) + if (__first == __last) + return __first; + else if (!bool(__pred(*__last))) + --__last; + else + break; + std::iter_swap(__first, __last); + ++__first; + } + } +# 1543 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _ForwardIterator + __stable_partition_adaptive(_ForwardIterator __first, + _ForwardIterator __last, + _Predicate __pred, _Distance __len, + _Pointer __buffer, + _Distance __buffer_size) + { + if (__len == 1) + return __first; + + if (__len <= __buffer_size) + { + _ForwardIterator __result1 = __first; + _Pointer __result2 = __buffer; + + + + + *__result2 = std::move(*__first); + ++__result2; + ++__first; + for (; __first != __last; ++__first) + if (__pred(__first)) + { + *__result1 = std::move(*__first); + ++__result1; + } + else + { + *__result2 = std::move(*__first); + ++__result2; + } + + std::move(__buffer, __result2, __result1); + return __result1; + } + + _ForwardIterator __middle = __first; + std::advance(__middle, __len / 2); + _ForwardIterator __left_split = + std::__stable_partition_adaptive(__first, __middle, __pred, + __len / 2, __buffer, + __buffer_size); + + + + _Distance __right_len = __len - __len / 2; + _ForwardIterator __right_split = + std::__find_if_not_n(__middle, __right_len, __pred); + + if (__right_len) + __right_split = + std::__stable_partition_adaptive(__right_split, __last, __pred, + __right_len, + __buffer, __buffer_size); + + std::rotate(__left_split, __middle, __right_split); + std::advance(__left_split, std::distance(__middle, __right_split)); + return __left_split; + } + + template + _ForwardIterator + __stable_partition(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + __first = std::__find_if_not(__first, __last, __pred); + + if (__first == __last) + return __first; + + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); + return + std::__stable_partition_adaptive(__first, __last, __pred, + _DistanceType(__buf.requested_size()), + __buf.begin(), + _DistanceType(__buf.size())); + } +# 1646 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + stable_partition(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + + + + + + ; + + return std::__stable_partition(__first, __last, + __gnu_cxx::__ops::__pred_iter(__pred)); + } + + + template + void + __heap_select(_RandomAccessIterator __first, + _RandomAccessIterator __middle, + _RandomAccessIterator __last, _Compare __comp) + { + std::__make_heap(__first, __middle, __comp); + for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) + if (__comp(__i, __first)) + std::__pop_heap(__first, __middle, __i, __comp); + } + + + + template + _RandomAccessIterator + __partial_sort_copy(_InputIterator __first, _InputIterator __last, + _RandomAccessIterator __result_first, + _RandomAccessIterator __result_last, + _Compare __comp) + { + typedef typename iterator_traits<_InputIterator>::value_type + _InputValueType; + typedef iterator_traits<_RandomAccessIterator> _RItTraits; + typedef typename _RItTraits::difference_type _DistanceType; + + if (__result_first == __result_last) + return __result_last; + _RandomAccessIterator __result_real_last = __result_first; + while (__first != __last && __result_real_last != __result_last) + { + *__result_real_last = *__first; + ++__result_real_last; + ++__first; + } + + std::__make_heap(__result_first, __result_real_last, __comp); + while (__first != __last) + { + if (__comp(__first, __result_first)) + std::__adjust_heap(__result_first, _DistanceType(0), + _DistanceType(__result_real_last + - __result_first), + _InputValueType(*__first), __comp); + ++__first; + } + std::__sort_heap(__result_first, __result_real_last, __comp); + return __result_real_last; + } +# 1732 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _RandomAccessIterator + partial_sort_copy(_InputIterator __first, _InputIterator __last, + _RandomAccessIterator __result_first, + _RandomAccessIterator __result_last) + { + typedef typename iterator_traits<_InputIterator>::value_type + _InputValueType; + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _OutputValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + + + + + + + + ; + ; + + return std::__partial_sort_copy(__first, __last, + __result_first, __result_last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 1780 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _RandomAccessIterator + partial_sort_copy(_InputIterator __first, _InputIterator __last, + _RandomAccessIterator __result_first, + _RandomAccessIterator __result_last, + _Compare __comp) + { + typedef typename iterator_traits<_InputIterator>::value_type + _InputValueType; + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _OutputValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + + + + + + + + + + + ; + ; + + return std::__partial_sort_copy(__first, __last, + __result_first, __result_last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + + template + void + __unguarded_linear_insert(_RandomAccessIterator __last, + _Compare __comp) + { + typename iterator_traits<_RandomAccessIterator>::value_type + __val = std::move(*__last); + _RandomAccessIterator __next = __last; + --__next; + while (__comp(__val, __next)) + { + *__last = std::move(*__next); + __last = __next; + --__next; + } + *__last = std::move(__val); + } + + + template + void + __insertion_sort(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + if (__first == __last) return; + + for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) + { + if (__comp(__i, __first)) + { + typename iterator_traits<_RandomAccessIterator>::value_type + __val = std::move(*__i); + std::move_backward(__first, __i, __i + 1); + *__first = std::move(__val); + } + else + std::__unguarded_linear_insert(__i, + __gnu_cxx::__ops::__val_comp_iter(__comp)); + } + } + + + template + inline void + __unguarded_insertion_sort(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + for (_RandomAccessIterator __i = __first; __i != __last; ++__i) + std::__unguarded_linear_insert(__i, + __gnu_cxx::__ops::__val_comp_iter(__comp)); + } + + + + + + enum { _S_threshold = 16 }; + + + template + void + __final_insertion_sort(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + if (__last - __first > int(_S_threshold)) + { + std::__insertion_sort(__first, __first + int(_S_threshold), __comp); + std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, + __comp); + } + else + std::__insertion_sort(__first, __last, __comp); + } + + + template + _RandomAccessIterator + __unguarded_partition(_RandomAccessIterator __first, + _RandomAccessIterator __last, + _RandomAccessIterator __pivot, _Compare __comp) + { + while (true) + { + while (__comp(__first, __pivot)) + ++__first; + --__last; + while (__comp(__pivot, __last)) + --__last; + if (!(__first < __last)) + return __first; + std::iter_swap(__first, __last); + ++__first; + } + } + + + template + inline _RandomAccessIterator + __unguarded_partition_pivot(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + _RandomAccessIterator __mid = __first + (__last - __first) / 2; + std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, + __comp); + return std::__unguarded_partition(__first + 1, __last, __first, __comp); + } + + template + inline void + __partial_sort(_RandomAccessIterator __first, + _RandomAccessIterator __middle, + _RandomAccessIterator __last, + _Compare __comp) + { + std::__heap_select(__first, __middle, __last, __comp); + std::__sort_heap(__first, __middle, __comp); + } + + + template + void + __introsort_loop(_RandomAccessIterator __first, + _RandomAccessIterator __last, + _Size __depth_limit, _Compare __comp) + { + while (__last - __first > int(_S_threshold)) + { + if (__depth_limit == 0) + { + std::__partial_sort(__first, __last, __last, __comp); + return; + } + --__depth_limit; + _RandomAccessIterator __cut = + std::__unguarded_partition_pivot(__first, __last, __comp); + std::__introsort_loop(__cut, __last, __depth_limit, __comp); + __last = __cut; + } + } + + + + template + inline void + __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + if (__first != __last) + { + std::__introsort_loop(__first, __last, + std::__lg(__last - __first) * 2, + __comp); + std::__final_insertion_sort(__first, __last, __comp); + } + } + + template + void + __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, + _RandomAccessIterator __last, _Size __depth_limit, + _Compare __comp) + { + while (__last - __first > 3) + { + if (__depth_limit == 0) + { + std::__heap_select(__first, __nth + 1, __last, __comp); + + std::iter_swap(__first, __nth); + return; + } + --__depth_limit; + _RandomAccessIterator __cut = + std::__unguarded_partition_pivot(__first, __last, __comp); + if (__cut <= __nth) + __first = __cut; + else + __last = __cut; + } + std::__insertion_sort(__first, __last, __comp); + } +# 2016 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_comp_val(__comp)); + } + + template + _ForwardIterator + __upper_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp(__val, __middle)) + __len = __half; + else + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + } + return __first; + } +# 2073 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + upper_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + ; + + return std::__upper_bound(__first, __last, __val, + __gnu_cxx::__ops::__val_less_iter()); + } +# 2105 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + upper_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + + + ; + + return std::__upper_bound(__first, __last, __val, + __gnu_cxx::__ops::__val_comp_iter(__comp)); + } + + template + pair<_ForwardIterator, _ForwardIterator> + __equal_range(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, + _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp_it_val(__middle, __val)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else if (__comp_val_it(__val, __middle)) + __len = __half; + else + { + _ForwardIterator __left + = std::__lower_bound(__first, __middle, __val, __comp_it_val); + std::advance(__first, __len); + _ForwardIterator __right + = std::__upper_bound(++__middle, __first, __val, __comp_val_it); + return pair<_ForwardIterator, _ForwardIterator>(__left, __right); + } + } + return pair<_ForwardIterator, _ForwardIterator>(__first, __first); + } +# 2179 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline pair<_ForwardIterator, _ForwardIterator> + equal_range(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + + ; + ; + + return std::__equal_range(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val(), + __gnu_cxx::__ops::__val_less_iter()); + } +# 2216 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline pair<_ForwardIterator, _ForwardIterator> + equal_range(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + + + + + ; + + ; + + return std::__equal_range(__first, __last, __val, + __gnu_cxx::__ops::__iter_comp_val(__comp), + __gnu_cxx::__ops::__val_comp_iter(__comp)); + } +# 2252 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + bool + binary_search(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + ; + ; + + _ForwardIterator __i + = std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + return __i != __last && !(__val < *__i); + } +# 2287 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + bool + binary_search(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _ValueType; + + + + + + + ; + + ; + + _ForwardIterator __i + = std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_comp_val(__comp)); + return __i != __last && !bool(__comp(__val, *__i)); + } + + + + + template + void + __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + { + if (__comp(__first2, __first1)) + { + *__result = std::move(*__first2); + ++__first2; + } + else + { + *__result = std::move(*__first1); + ++__first1; + } + ++__result; + } + if (__first1 != __last1) + std::move(__first1, __last1, __result); + } + + + template + void + __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, + _BidirectionalIterator1 __last1, + _BidirectionalIterator2 __first2, + _BidirectionalIterator2 __last2, + _BidirectionalIterator3 __result, + _Compare __comp) + { + if (__first1 == __last1) + { + std::move_backward(__first2, __last2, __result); + return; + } + else if (__first2 == __last2) + return; + + --__last1; + --__last2; + while (true) + { + if (__comp(__last2, __last1)) + { + *--__result = std::move(*__last1); + if (__first1 == __last1) + { + std::move_backward(__first2, ++__last2, __result); + return; + } + --__last1; + } + else + { + *--__result = std::move(*__last2); + if (__first2 == __last2) + return; + --__last2; + } + } + } + + + template + _BidirectionalIterator1 + __rotate_adaptive(_BidirectionalIterator1 __first, + _BidirectionalIterator1 __middle, + _BidirectionalIterator1 __last, + _Distance __len1, _Distance __len2, + _BidirectionalIterator2 __buffer, + _Distance __buffer_size) + { + _BidirectionalIterator2 __buffer_end; + if (__len1 > __len2 && __len2 <= __buffer_size) + { + if (__len2) + { + __buffer_end = std::move(__middle, __last, __buffer); + std::move_backward(__first, __middle, __last); + return std::move(__buffer, __buffer_end, __first); + } + else + return __first; + } + else if (__len1 <= __buffer_size) + { + if (__len1) + { + __buffer_end = std::move(__first, __middle, __buffer); + std::move(__middle, __last, __first); + return std::move_backward(__buffer, __buffer_end, __last); + } + else + return __last; + } + else + { + std::rotate(__first, __middle, __last); + std::advance(__first, std::distance(__middle, __last)); + return __first; + } + } + + + template + void + __merge_adaptive(_BidirectionalIterator __first, + _BidirectionalIterator __middle, + _BidirectionalIterator __last, + _Distance __len1, _Distance __len2, + _Pointer __buffer, _Distance __buffer_size, + _Compare __comp) + { + if (__len1 <= __len2 && __len1 <= __buffer_size) + { + _Pointer __buffer_end = std::move(__first, __middle, __buffer); + std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, + __first, __comp); + } + else if (__len2 <= __buffer_size) + { + _Pointer __buffer_end = std::move(__middle, __last, __buffer); + std::__move_merge_adaptive_backward(__first, __middle, __buffer, + __buffer_end, __last, __comp); + } + else + { + _BidirectionalIterator __first_cut = __first; + _BidirectionalIterator __second_cut = __middle; + _Distance __len11 = 0; + _Distance __len22 = 0; + if (__len1 > __len2) + { + __len11 = __len1 / 2; + std::advance(__first_cut, __len11); + __second_cut + = std::__lower_bound(__middle, __last, *__first_cut, + __gnu_cxx::__ops::__iter_comp_val(__comp)); + __len22 = std::distance(__middle, __second_cut); + } + else + { + __len22 = __len2 / 2; + std::advance(__second_cut, __len22); + __first_cut + = std::__upper_bound(__first, __middle, *__second_cut, + __gnu_cxx::__ops::__val_comp_iter(__comp)); + __len11 = std::distance(__first, __first_cut); + } + + _BidirectionalIterator __new_middle + = std::__rotate_adaptive(__first_cut, __middle, __second_cut, + __len1 - __len11, __len22, __buffer, + __buffer_size); + std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, + __len22, __buffer, __buffer_size, __comp); + std::__merge_adaptive(__new_middle, __second_cut, __last, + __len1 - __len11, + __len2 - __len22, __buffer, + __buffer_size, __comp); + } + } + + + template + void + __merge_without_buffer(_BidirectionalIterator __first, + _BidirectionalIterator __middle, + _BidirectionalIterator __last, + _Distance __len1, _Distance __len2, + _Compare __comp) + { + if (__len1 == 0 || __len2 == 0) + return; + + if (__len1 + __len2 == 2) + { + if (__comp(__middle, __first)) + std::iter_swap(__first, __middle); + return; + } + + _BidirectionalIterator __first_cut = __first; + _BidirectionalIterator __second_cut = __middle; + _Distance __len11 = 0; + _Distance __len22 = 0; + if (__len1 > __len2) + { + __len11 = __len1 / 2; + std::advance(__first_cut, __len11); + __second_cut + = std::__lower_bound(__middle, __last, *__first_cut, + __gnu_cxx::__ops::__iter_comp_val(__comp)); + __len22 = std::distance(__middle, __second_cut); + } + else + { + __len22 = __len2 / 2; + std::advance(__second_cut, __len22); + __first_cut + = std::__upper_bound(__first, __middle, *__second_cut, + __gnu_cxx::__ops::__val_comp_iter(__comp)); + __len11 = std::distance(__first, __first_cut); + } + + std::rotate(__first_cut, __middle, __second_cut); + _BidirectionalIterator __new_middle = __first_cut; + std::advance(__new_middle, std::distance(__middle, __second_cut)); + std::__merge_without_buffer(__first, __first_cut, __new_middle, + __len11, __len22, __comp); + std::__merge_without_buffer(__new_middle, __second_cut, __last, + __len1 - __len11, __len2 - __len22, __comp); + } + + template + void + __inplace_merge(_BidirectionalIterator __first, + _BidirectionalIterator __middle, + _BidirectionalIterator __last, + _Compare __comp) + { + typedef typename iterator_traits<_BidirectionalIterator>::value_type + _ValueType; + typedef typename iterator_traits<_BidirectionalIterator>::difference_type + _DistanceType; + + if (__first == __middle || __middle == __last) + return; + + const _DistanceType __len1 = std::distance(__first, __middle); + const _DistanceType __len2 = std::distance(__middle, __last); + + typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; + _TmpBuf __buf(__first, __last); + + if (__buf.begin() == 0) + std::__merge_without_buffer + (__first, __middle, __last, __len1, __len2, __comp); + else + std::__merge_adaptive + (__first, __middle, __last, __len1, __len2, __buf.begin(), + _DistanceType(__buf.size()), __comp); + } +# 2584 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + inplace_merge(_BidirectionalIterator __first, + _BidirectionalIterator __middle, + _BidirectionalIterator __last) + { + + + + + + ; + ; + + std::__inplace_merge(__first, __middle, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 2624 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + inplace_merge(_BidirectionalIterator __first, + _BidirectionalIterator __middle, + _BidirectionalIterator __last, + _Compare __comp) + { + + + + + + + ; + ; + + std::__inplace_merge(__first, __middle, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + + + template + _OutputIterator + __move_merge(_InputIterator __first1, _InputIterator __last1, + _InputIterator __first2, _InputIterator __last2, + _OutputIterator __result, _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + { + if (__comp(__first2, __first1)) + { + *__result = std::move(*__first2); + ++__first2; + } + else + { + *__result = std::move(*__first1); + ++__first1; + } + ++__result; + } + return std::move(__first2, __last2, std::move(__first1, __last1, __result)) + + ; + } + + template + void + __merge_sort_loop(_RandomAccessIterator1 __first, + _RandomAccessIterator1 __last, + _RandomAccessIterator2 __result, _Distance __step_size, + _Compare __comp) + { + const _Distance __two_step = 2 * __step_size; + + while (__last - __first >= __two_step) + { + __result = std::__move_merge(__first, __first + __step_size, + __first + __step_size, + __first + __two_step, + __result, __comp); + __first += __two_step; + } + __step_size = std::min(_Distance(__last - __first), __step_size); + + std::__move_merge(__first, __first + __step_size, + __first + __step_size, __last, __result, __comp); + } + + template + void + __chunk_insertion_sort(_RandomAccessIterator __first, + _RandomAccessIterator __last, + _Distance __chunk_size, _Compare __comp) + { + while (__last - __first >= __chunk_size) + { + std::__insertion_sort(__first, __first + __chunk_size, __comp); + __first += __chunk_size; + } + std::__insertion_sort(__first, __last, __comp); + } + + enum { _S_chunk_size = 7 }; + + template + void + __merge_sort_with_buffer(_RandomAccessIterator __first, + _RandomAccessIterator __last, + _Pointer __buffer, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _Distance; + + const _Distance __len = __last - __first; + const _Pointer __buffer_last = __buffer + __len; + + _Distance __step_size = _S_chunk_size; + std::__chunk_insertion_sort(__first, __last, __step_size, __comp); + + while (__step_size < __len) + { + std::__merge_sort_loop(__first, __last, __buffer, + __step_size, __comp); + __step_size *= 2; + std::__merge_sort_loop(__buffer, __buffer_last, __first, + __step_size, __comp); + __step_size *= 2; + } + } + + template + void + __stable_sort_adaptive(_RandomAccessIterator __first, + _RandomAccessIterator __last, + _Pointer __buffer, _Distance __buffer_size, + _Compare __comp) + { + const _Distance __len = (__last - __first + 1) / 2; + const _RandomAccessIterator __middle = __first + __len; + if (__len > __buffer_size) + { + std::__stable_sort_adaptive(__first, __middle, __buffer, + __buffer_size, __comp); + std::__stable_sort_adaptive(__middle, __last, __buffer, + __buffer_size, __comp); + } + else + { + std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); + std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); + } + std::__merge_adaptive(__first, __middle, __last, + _Distance(__middle - __first), + _Distance(__last - __middle), + __buffer, __buffer_size, + __comp); + } + + + template + void + __inplace_stable_sort(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + if (__last - __first < 15) + { + std::__insertion_sort(__first, __last, __comp); + return; + } + _RandomAccessIterator __middle = __first + (__last - __first) / 2; + std::__inplace_stable_sort(__first, __middle, __comp); + std::__inplace_stable_sort(__middle, __last, __comp); + std::__merge_without_buffer(__first, __middle, __last, + __middle - __first, + __last - __middle, + __comp); + } +# 2795 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + bool + __includes(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + if (__comp(__first2, __first1)) + return false; + else if (__comp(__first1, __first2)) + ++__first1; + else + ++__first1, ++__first2; + + return __first2 == __last2; + } +# 2831 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + includes(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2) + { + + + + + + + + + + ; + ; + + return std::__includes(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 2873 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + includes(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _Compare __comp) + { + + + + + + + + + + ; + ; + + return std::__includes(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 2906 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + bool + __next_permutation(_BidirectionalIterator __first, + _BidirectionalIterator __last, _Compare __comp) + { + if (__first == __last) + return false; + _BidirectionalIterator __i = __first; + ++__i; + if (__i == __last) + return false; + __i = __last; + --__i; + + for(;;) + { + _BidirectionalIterator __ii = __i; + --__i; + if (__comp(__i, __ii)) + { + _BidirectionalIterator __j = __last; + while (!__comp(__i, --__j)) + {} + std::iter_swap(__i, __j); + std::__reverse(__ii, __last, + std::__iterator_category(__first)); + return true; + } + if (__i == __first) + { + std::__reverse(__first, __last, + std::__iterator_category(__first)); + return false; + } + } + } +# 2955 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + next_permutation(_BidirectionalIterator __first, + _BidirectionalIterator __last) + { + + + + + + ; + + return std::__next_permutation + (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); + } +# 2986 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + next_permutation(_BidirectionalIterator __first, + _BidirectionalIterator __last, _Compare __comp) + { + + + + + + + ; + + return std::__next_permutation + (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + bool + __prev_permutation(_BidirectionalIterator __first, + _BidirectionalIterator __last, _Compare __comp) + { + if (__first == __last) + return false; + _BidirectionalIterator __i = __first; + ++__i; + if (__i == __last) + return false; + __i = __last; + --__i; + + for(;;) + { + _BidirectionalIterator __ii = __i; + --__i; + if (__comp(__ii, __i)) + { + _BidirectionalIterator __j = __last; + while (!__comp(--__j, __i)) + {} + std::iter_swap(__i, __j); + std::__reverse(__ii, __last, + std::__iterator_category(__first)); + return true; + } + if (__i == __first) + { + std::__reverse(__first, __last, + std::__iterator_category(__first)); + return false; + } + } + } +# 3053 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + prev_permutation(_BidirectionalIterator __first, + _BidirectionalIterator __last) + { + + + + + + ; + + return std::__prev_permutation(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 3084 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + prev_permutation(_BidirectionalIterator __first, + _BidirectionalIterator __last, _Compare __comp) + { + + + + + + + ; + + return std::__prev_permutation(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + + + + template + _OutputIterator + __replace_copy_if(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, + _Predicate __pred, const _Tp& __new_value) + { + for (; __first != __last; ++__first, ++__result) + if (__pred(__first)) + *__result = __new_value; + else + *__result = *__first; + return __result; + } +# 3133 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + replace_copy(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, + const _Tp& __old_value, const _Tp& __new_value) + { + + + + + + + ; + + return std::__replace_copy_if(__first, __last, __result, + __gnu_cxx::__ops::__iter_equals_val(__old_value), + __new_value); + } +# 3167 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + replace_copy_if(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, + _Predicate __pred, const _Tp& __new_value) + { + + + + + + + ; + + return std::__replace_copy_if(__first, __last, __result, + __gnu_cxx::__ops::__pred_iter(__pred), + __new_value); + } + + template + typename iterator_traits<_InputIterator>::difference_type + __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { + typename iterator_traits<_InputIterator>::difference_type __n = 0; + for (; __first != __last; ++__first) + if (__pred(__first)) + ++__n; + return __n; + } +# 3206 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + is_sorted(_ForwardIterator __first, _ForwardIterator __last) + { return std::is_sorted_until(__first, __last) == __last; } +# 3220 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + is_sorted(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { return std::is_sorted_until(__first, __last, __comp) == __last; } + + template + _ForwardIterator + __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + if (__first == __last) + return __last; + + _ForwardIterator __next = __first; + for (++__next; __next != __last; __first = __next, ++__next) + if (__comp(__next, __first)) + return __next; + return __next; + } +# 3249 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) + { + + + + + ; + + return std::__is_sorted_until(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 3272 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + + + + + + ; + + return std::__is_sorted_until(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 3296 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline pair + minmax(const _Tp& __a, const _Tp& __b) + { + + + + return __b < __a ? pair(__b, __a) + : pair(__a, __b); + } +# 3317 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline pair + minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + return __comp(__b, __a) ? pair(__b, __a) + : pair(__a, __b); + } + + template + + pair<_ForwardIterator, _ForwardIterator> + __minmax_element(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + _ForwardIterator __next = __first; + if (__first == __last + || ++__next == __last) + return std::make_pair(__first, __first); + + _ForwardIterator __min{}, __max{}; + if (__comp(__next, __first)) + { + __min = __next; + __max = __first; + } + else + { + __min = __first; + __max = __next; + } + + __first = __next; + ++__first; + + while (__first != __last) + { + __next = __first; + if (++__next == __last) + { + if (__comp(__first, __min)) + __min = __first; + else if (!__comp(__first, __max)) + __max = __first; + break; + } + + if (__comp(__next, __first)) + { + if (__comp(__next, __min)) + __min = __next; + if (!__comp(__first, __max)) + __max = __first; + } + else + { + if (__comp(__first, __min)) + __min = __first; + if (!__comp(__next, __max)) + __max = __next; + } + + __first = __next; + ++__first; + } + + return std::make_pair(__min, __max); + } +# 3397 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline pair<_ForwardIterator, _ForwardIterator> + minmax_element(_ForwardIterator __first, _ForwardIterator __last) + { + + + + + ; + + return std::__minmax_element(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 3424 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline pair<_ForwardIterator, _ForwardIterator> + minmax_element(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + + + + + + ; + + return std::__minmax_element(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + + template + + inline _Tp + min(initializer_list<_Tp> __l) + { return *std::min_element(__l.begin(), __l.end()); } + + template + + inline _Tp + min(initializer_list<_Tp> __l, _Compare __comp) + { return *std::min_element(__l.begin(), __l.end(), __comp); } + + template + + inline _Tp + max(initializer_list<_Tp> __l) + { return *std::max_element(__l.begin(), __l.end()); } + + template + + inline _Tp + max(initializer_list<_Tp> __l, _Compare __comp) + { return *std::max_element(__l.begin(), __l.end(), __comp); } + + template + + inline pair<_Tp, _Tp> + minmax(initializer_list<_Tp> __l) + { + pair __p = + std::minmax_element(__l.begin(), __l.end()); + return std::make_pair(*__p.first, *__p.second); + } + + template + + inline pair<_Tp, _Tp> + minmax(initializer_list<_Tp> __l, _Compare __comp) + { + pair __p = + std::minmax_element(__l.begin(), __l.end(), __comp); + return std::make_pair(*__p.first, *__p.second); + } + + template + bool + __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _BinaryPredicate __pred) + { + + + for (; __first1 != __last1; ++__first1, ++__first2) + if (!__pred(__first1, __first2)) + break; + + if (__first1 == __last1) + return true; + + + + _ForwardIterator2 __last2 = __first2; + std::advance(__last2, std::distance(__first1, __last1)); + for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) + { + if (__scan != std::__find_if(__first1, __scan, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) + continue; + + auto __matches + = std::__count_if(__first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); + if (0 == __matches || + std::__count_if(__scan, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) + != __matches) + return false; + } + return true; + } +# 3535 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + + ; + + return std::__is_permutation(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 3566 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline bool + is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _BinaryPredicate __pred) + { + + + + + + + ; + + return std::__is_permutation(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_comp_iter(__pred)); + } +# 3714 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + void + shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, + _UniformRandomNumberGenerator&& __g) + { + + + + ; + + if (__first == __last) + return; + + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + typedef typename std::make_unsigned<_DistanceType>::type __ud_type; + typedef typename std::uniform_int_distribution<__ud_type> __distr_type; + typedef typename __distr_type::param_type __p_type; + __distr_type __d; + + for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) + std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); + } + + + + + + + +# 3759 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _Function + for_each(_InputIterator __first, _InputIterator __last, _Function __f) + { + + + ; + for (; __first != __last; ++__first) + __f(*__first); + return std::move(__f); + } +# 3780 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _InputIterator + find(_InputIterator __first, _InputIterator __last, + const _Tp& __val) + { + + + + + ; + return std::__find_if(__first, __last, + __gnu_cxx::__ops::__iter_equals_val(__val)); + } +# 3804 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _InputIterator + find_if(_InputIterator __first, _InputIterator __last, + _Predicate __pred) + { + + + + + ; + + return std::__find_if(__first, __last, + __gnu_cxx::__ops::__pred_iter(__pred)); + } +# 3835 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _InputIterator + find_first_of(_InputIterator __first1, _InputIterator __last1, + _ForwardIterator __first2, _ForwardIterator __last2) + { + + + + + + + ; + ; + + for (; __first1 != __last1; ++__first1) + for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) + if (*__first1 == *__iter) + return __first1; + return __last1; + } +# 3875 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _InputIterator + find_first_of(_InputIterator __first1, _InputIterator __last1, + _ForwardIterator __first2, _ForwardIterator __last2, + _BinaryPredicate __comp) + { + + + + + + + ; + ; + + for (; __first1 != __last1; ++__first1) + for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) + if (__comp(*__first1, *__iter)) + return __first1; + return __last1; + } +# 3907 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + adjacent_find(_ForwardIterator __first, _ForwardIterator __last) + { + + + + + ; + + return std::__adjacent_find(__first, __last, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 3932 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + adjacent_find(_ForwardIterator __first, _ForwardIterator __last, + _BinaryPredicate __binary_pred) + { + + + + + + ; + + return std::__adjacent_find(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } +# 3957 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline typename iterator_traits<_InputIterator>::difference_type + count(_InputIterator __first, _InputIterator __last, const _Tp& __value) + { + + + + + ; + + return std::__count_if(__first, __last, + __gnu_cxx::__ops::__iter_equals_val(__value)); + } +# 3980 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline typename iterator_traits<_InputIterator>::difference_type + count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { + + + + + ; + + return std::__count_if(__first, __last, + __gnu_cxx::__ops::__pred_iter(__pred)); + } +# 4020 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator1 + search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2) + { + + + + + + + ; + ; + + return std::__search(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 4059 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator1 + search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + + + + + + ; + ; + + return std::__search(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__predicate)); + } +# 4094 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + search_n(_ForwardIterator __first, _ForwardIterator __last, + _Integer __count, const _Tp& __val) + { + + + + + ; + + return std::__search_n(__first, __last, __count, + __gnu_cxx::__ops::__iter_equals_val(__val)); + } +# 4127 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + search_n(_ForwardIterator __first, _ForwardIterator __last, + _Integer __count, const _Tp& __val, + _BinaryPredicate __binary_pred) + { + + + + + ; + + return std::__search_n(__first, __last, __count, + __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); + } +# 4161 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _OutputIterator + transform(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _UnaryOperation __unary_op) + { + + + + + + ; + + for (; __first != __last; ++__first, ++__result) + *__result = __unary_op(*__first); + return __result; + } +# 4198 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _OutputIterator + transform(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _OutputIterator __result, + _BinaryOperation __binary_op) + { + + + + + + + ; + + for (; __first1 != __last1; ++__first1, ++__first2, ++__result) + *__result = __binary_op(*__first1, *__first2); + return __result; + } +# 4231 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + void + replace(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __old_value, const _Tp& __new_value) + { + + + + + + + + ; + + for (; __first != __last; ++__first) + if (*__first == __old_value) + *__first = __new_value; + } +# 4263 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + void + replace_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred, const _Tp& __new_value) + { + + + + + + + + ; + + for (; __first != __last; ++__first) + if (__pred(*__first)) + *__first = __new_value; + } +# 4295 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + void + generate(_ForwardIterator __first, _ForwardIterator __last, + _Generator __gen) + { + + + + + ; + + for (; __first != __last; ++__first) + *__first = __gen(); + } +# 4326 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + _OutputIterator + generate_n(_OutputIterator __first, _Size __n, _Generator __gen) + { + + + + + + for (__decltype(__n + 0) __niter = __n; + __niter > 0; --__niter, ++__first) + *__first = __gen(); + return __first; + } +# 4362 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + unique_copy(_InputIterator __first, _InputIterator __last, + _OutputIterator __result) + { + + + + + + + ; + + if (__first == __last) + return __result; + return std::__unique_copy(__first, __last, __result, + __gnu_cxx::__ops::__iter_equal_to_iter(), + std::__iterator_category(__first), + std::__iterator_category(__result)); + } +# 4402 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + unique_copy(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, + _BinaryPredicate __binary_pred) + { + + + + + ; + + if (__first == __last) + return __result; + return std::__unique_copy(__first, __last, __result, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), + std::__iterator_category(__first), + std::__iterator_category(__result)); + } +# 4434 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + + + + ; + + if (__first != __last) + for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) + { + + _RandomAccessIterator __j = __first + + std::rand() % ((__i - __first) + 1); + if (__i != __j) + std::iter_swap(__i, __j); + } + } +# 4468 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + void + random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, + + _RandomNumberGenerator&& __rand) + + + + { + + + + ; + + if (__first == __last) + return; + for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) + { + _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); + if (__i != __j) + std::iter_swap(__i, __j); + } + } +# 4508 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _ForwardIterator + partition(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + + + + + + ; + + return std::__partition(__first, __last, __pred, + std::__iterator_category(__first)); + } +# 4541 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + partial_sort(_RandomAccessIterator __first, + _RandomAccessIterator __middle, + _RandomAccessIterator __last) + { + + + + + + ; + ; + + std::__partial_sort(__first, __middle, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 4578 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + partial_sort(_RandomAccessIterator __first, + _RandomAccessIterator __middle, + _RandomAccessIterator __last, + _Compare __comp) + { + + + + + + + ; + ; + + std::__partial_sort(__first, __middle, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 4613 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, + _RandomAccessIterator __last) + { + + + + + + ; + ; + + if (__first == __last || __nth == __last) + return; + + std::__introselect(__first, __nth, __last, + std::__lg(__last - __first) * 2, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 4651 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, + _RandomAccessIterator __last, _Compare __comp) + { + + + + + + + ; + ; + + if (__first == __last || __nth == __last) + return; + + std::__introselect(__first, __nth, __last, + std::__lg(__last - __first) * 2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 4687 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + sort(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + + + + + + ; + + std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); + } +# 4716 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + sort(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + + + + + + + ; + + std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + _OutputIterator + __merge(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + { + if (__comp(__first2, __first1)) + { + *__result = *__first2; + ++__first2; + } + else + { + *__result = *__first1; + ++__first1; + } + ++__result; + } + return std::copy(__first2, __last2, + std::copy(__first1, __last1, __result)); + } +# 4776 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + merge(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result) + { + + + + + + + + + + + ; + ; + + return std::__merge(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 4824 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + merge(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + + + + + + + + + + + ; + ; + + return std::__merge(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + inline void + __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; + _TmpBuf __buf(__first, __last); + + if (__buf.begin() == 0) + std::__inplace_stable_sort(__first, __last, __comp); + else + std::__stable_sort_adaptive(__first, __last, __buf.begin(), + _DistanceType(__buf.size()), __comp); + } +# 4886 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + + + + + + ; + + std::__stable_sort(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 4919 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline void + stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + + + + + + + ; + + std::__stable_sort(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + _OutputIterator + __set_union(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + { + if (__comp(__first1, __first2)) + { + *__result = *__first1; + ++__first1; + } + else if (__comp(__first2, __first1)) + { + *__result = *__first2; + ++__first2; + } + else + { + *__result = *__first1; + ++__first1; + ++__first2; + } + ++__result; + } + return std::copy(__first2, __last2, + std::copy(__first1, __last1, __result)); + } +# 4986 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_union(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result) + { + + + + + + + + + + + + + + ; + ; + + return std::__set_union(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 5033 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_union(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + + + + + + + + + + + + + + ; + ; + + return std::__set_union(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + _OutputIterator + __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + if (__comp(__first1, __first2)) + ++__first1; + else if (__comp(__first2, __first1)) + ++__first2; + else + { + *__result = *__first1; + ++__first1; + ++__first2; + ++__result; + } + return __result; + } +# 5101 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result) + { + + + + + + + + + + + + ; + ; + + return std::__set_intersection(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 5147 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + + + + + + + + + + + + ; + ; + + return std::__set_intersection(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + _OutputIterator + __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + if (__comp(__first1, __first2)) + { + *__result = *__first1; + ++__first1; + ++__result; + } + else if (__comp(__first2, __first1)) + ++__first2; + else + { + ++__first1; + ++__first2; + } + return std::copy(__first1, __last1, __result); + } +# 5217 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_difference(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result) + { + + + + + + + + + + + + ; + ; + + return std::__set_difference(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 5265 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_difference(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, _Compare __comp) + { + + + + + + + + + + + + ; + ; + + return std::__set_difference(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + _OutputIterator + __set_symmetric_difference(_InputIterator1 __first1, + _InputIterator1 __last1, + _InputIterator2 __first2, + _InputIterator2 __last2, + _OutputIterator __result, + _Compare __comp) + { + while (__first1 != __last1 && __first2 != __last2) + if (__comp(__first1, __first2)) + { + *__result = *__first1; + ++__first1; + ++__result; + } + else if (__comp(__first2, __first1)) + { + *__result = *__first2; + ++__first2; + ++__result; + } + else + { + ++__first1; + ++__first2; + } + return std::copy(__first2, __last2, + std::copy(__first1, __last1, __result)); + } +# 5341 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result) + { + + + + + + + + + + + + + + ; + ; + + return std::__set_symmetric_difference(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 5389 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + inline _OutputIterator + set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _OutputIterator __result, + _Compare __comp) + { + + + + + + + + + + + + + + ; + ; + + return std::__set_symmetric_difference(__first1, __last1, + __first2, __last2, __result, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + + _ForwardIterator + __min_element(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + if (__first == __last) + return __first; + _ForwardIterator __result = __first; + while (++__first != __last) + if (__comp(__first, __result)) + __result = __first; + return __result; + } +# 5440 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + _ForwardIterator + inline min_element(_ForwardIterator __first, _ForwardIterator __last) + { + + + + + ; + + return std::__min_element(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 5464 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline _ForwardIterator + min_element(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + + + + + + ; + + return std::__min_element(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + template + + _ForwardIterator + __max_element(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + if (__first == __last) return __first; + _ForwardIterator __result = __first; + while (++__first != __last) + if (__comp(__result, __first)) + __result = __first; + return __result; + } +# 5502 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline _ForwardIterator + max_element(_ForwardIterator __first, _ForwardIterator __last) + { + + + + + ; + + return std::__max_element(__first, __last, + __gnu_cxx::__ops::__iter_less_iter()); + } +# 5526 "/usr/include/c++/5/bits/stl_algo.h" 3 + template + + inline _ForwardIterator + max_element(_ForwardIterator __first, _ForwardIterator __last, + _Compare __comp) + { + + + + + + ; + + return std::__max_element(__first, __last, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } + + +} +# 63 "/usr/include/c++/5/algorithm" 2 3 +# 69 "/usr/include/qt4/QtCore/qglobal.h" 2 +# 1037 "/usr/include/qt4/QtCore/qglobal.h" + + + + + + + + + + +# 1046 "/usr/include/qt4/QtCore/qglobal.h" +typedef signed char qint8; +typedef unsigned char quint8; +typedef short qint16; +typedef unsigned short quint16; +typedef int qint32; +typedef unsigned int quint32; +# 1060 "/usr/include/qt4/QtCore/qglobal.h" +typedef long long qint64; +typedef unsigned long long quint64; + + +typedef qint64 qlonglong; +typedef quint64 qulonglong; +# 1093 "/usr/include/qt4/QtCore/qglobal.h" +template struct QIntegerForSize; +template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; }; +template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; }; +template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; }; +template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; }; +template struct QIntegerForSizeof: QIntegerForSize { }; +typedef QIntegerForSizeof::Unsigned quintptr; +typedef QIntegerForSizeof::Signed qptrdiff; + + + + + + +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; + +# 1294 "/usr/include/qt4/QtCore/qglobal.h" +typedef int QNoImplicitBoolCast; +# 1306 "/usr/include/qt4/QtCore/qglobal.h" +typedef double qreal; + + + + + + +template +constexpr inline T qAbs(const T &t) { return t >= 0 ? t : -t; } + +constexpr inline int qRound(qreal d) +{ return d >= qreal(0.0) ? int(d + qreal(0.5)) : int(d - int(d-1) + qreal(0.5)) + int(d-1); } + + + + + +constexpr inline qint64 qRound64(qreal d) +{ return d >= qreal(0.0) ? qint64(d + qreal(0.5)) : qint64(d - qreal(qint64(d-1)) + qreal(0.5)) + qint64(d-1); } + + +template +constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } +template +constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; } +template +constexpr inline const T &qBound(const T &min, const T &val, const T &max) +{ return qMax(min, qMin(max, val)); } +# 1364 "/usr/include/qt4/QtCore/qglobal.h" +class QDataStream; +# 1389 "/usr/include/qt4/QtCore/qglobal.h" +# 1 "/usr/include/qt4/QtCore/qfeatures.h" 1 +# 1390 "/usr/include/qt4/QtCore/qglobal.h" 2 +# 1626 "/usr/include/qt4/QtCore/qglobal.h" +inline void qt_noop(void) {} +# 1659 "/usr/include/qt4/QtCore/qglobal.h" +class QString; +class QSysInfo { +public: + enum Sizes { + WordSize = (sizeof(void *)<<3) + }; +# 1674 "/usr/include/qt4/QtCore/qglobal.h" + enum Endian { + BigEndian, + LittleEndian + + + + + + + , ByteOrder = LittleEndian + + + + }; +# 1796 "/usr/include/qt4/QtCore/qglobal.h" +}; + + const char *qVersion(); + bool qSharedBuild(); +# 1870 "/usr/include/qt4/QtCore/qglobal.h" + void qDebug(const char *, ...) + + __attribute__ ((format (printf, 1, 2))) + +; + + void qWarning(const char *, ...) + + __attribute__ ((format (printf, 1, 2))) + +; + +class QString; + QString qt_error_string(int errorCode = -1); + void qCritical(const char *, ...) + + __attribute__ ((format (printf, 1, 2))) + +; + void qFatal(const char *, ...) + + __attribute__ ((format (printf, 1, 2))) + +; + + + + + void qErrnoWarning(int code, const char *msg, ...); + void qErrnoWarning(const char *msg, ...); +# 1910 "/usr/include/qt4/QtCore/qglobal.h" +class QDebug; +class QNoDebug; + + inline QDebug qDebug(); + + inline QDebug qWarning(); + + inline QDebug qCritical(); +# 1936 "/usr/include/qt4/QtCore/qglobal.h" + void qt_assert(const char *assertion, const char *file, int line); +# 1950 "/usr/include/qt4/QtCore/qglobal.h" + void qt_assert_x(const char *where, const char *what, const char *file, int line); +# 1960 "/usr/include/qt4/QtCore/qglobal.h" + void qt_check_pointer(const char *, int); + void qBadAlloc(); +# 1973 "/usr/include/qt4/QtCore/qglobal.h" +template +inline T *q_check_ptr(T *p) { do { if (!(p)) qBadAlloc(); } while (0); return p; } +# 1998 "/usr/include/qt4/QtCore/qglobal.h" +enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtSystemMsg = QtCriticalMsg }; + + void qt_message_output(QtMsgType, const char *buf); + +typedef void (*QtMsgHandler)(QtMsgType, const char *); + QtMsgHandler qInstallMsgHandler(QtMsgHandler); +# 2052 "/usr/include/qt4/QtCore/qglobal.h" +template class QBasicAtomicPointer; + + +template +class QGlobalStatic +{ +public: + QBasicAtomicPointer pointer; + bool destroyed; +}; + + +template +class QGlobalStaticDeleter +{ +public: + QGlobalStatic &globalStatic; + QGlobalStaticDeleter(QGlobalStatic &_globalStatic) + : globalStatic(_globalStatic) + { } + + inline ~QGlobalStaticDeleter() + { + delete globalStatic.pointer; + globalStatic.pointer = 0; + globalStatic.destroyed = true; + } +}; +# 2130 "/usr/include/qt4/QtCore/qglobal.h" +class QBool +{ + bool b; + +public: + inline explicit QBool(bool B) : b(B) {} + inline operator const void *() const + { return b ? static_cast(this) : static_cast(0); } +}; + +inline bool operator==(QBool b1, bool b2) { return !b1 == !b2; } +inline bool operator==(bool b1, QBool b2) { return !b1 == !b2; } +inline bool operator==(QBool b1, QBool b2) { return !b1 == !b2; } +inline bool operator!=(QBool b1, bool b2) { return !b1 != !b2; } +inline bool operator!=(bool b1, QBool b2) { return !b1 != !b2; } +inline bool operator!=(QBool b1, QBool b2) { return !b1 != !b2; } + +constexpr static inline bool qFuzzyCompare(double p1, double p2) +{ + return (qAbs(p1 - p2) <= 0.000000000001 * qMin(qAbs(p1), qAbs(p2))); +} + +constexpr static inline bool qFuzzyCompare(float p1, float p2) +{ + return (qAbs(p1 - p2) <= 0.00001f * qMin(qAbs(p1), qAbs(p2))); +} + + + + +constexpr static inline bool qFuzzyIsNull(double d) +{ + return qAbs(d) <= 0.000000000001; +} + + + + +constexpr static inline bool qFuzzyIsNull(float f) +{ + return qAbs(f) <= 0.00001f; +} + + + + + + +static inline bool qIsNull(double d) +{ + union U { + double d; + quint64 u; + }; + U val; + val.d = d; + return val.u == quint64(0); +} + + + + + + +static inline bool qIsNull(float f) +{ + union U { + float f; + quint32 u; + }; + U val; + val.f = f; + return val.u == 0u; +} +# 2234 "/usr/include/qt4/QtCore/qglobal.h" +template inline bool qIsDetached(T &) { return true; } + +template +class QTypeInfo +{ +public: + enum { + isPointer = false, + isComplex = true, + isStatic = true, + isLarge = (sizeof(T)>sizeof(void*)), + isDummy = false + }; +}; + +template +class QTypeInfo +{ +public: + enum { + isPointer = true, + isComplex = false, + isStatic = false, + isLarge = false, + isDummy = false + }; +}; +# 2270 "/usr/include/qt4/QtCore/qglobal.h" +enum { + Q_COMPLEX_TYPE = 0, + Q_PRIMITIVE_TYPE = 0x1, + Q_STATIC_TYPE = 0, + Q_MOVABLE_TYPE = 0x2, + Q_DUMMY_TYPE = 0x4 +}; +# 2297 "/usr/include/qt4/QtCore/qglobal.h" +template +inline void qSwap(T &value1, T &value2) +{ + + + + + + using std::swap; + swap(value1, value2); + +} +# 2340 "/usr/include/qt4/QtCore/qglobal.h" +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(bool)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "bool"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(char)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "char"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(signed char)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "signed char"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(uchar)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "uchar"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(short)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "short"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(ushort)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "ushort"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(int)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "int"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(uint)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "uint"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(long)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "long"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(ulong)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "ulong"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(qint64)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "qint64"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(quint64)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "quint64"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(float)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "float"; } }; +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(double)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "double"; } }; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(long double)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "long double"; } }; + + + + + + + void *qMalloc(size_t size); + void qFree(void *ptr); + void *qRealloc(void *ptr, size_t size); + void *qMallocAligned(size_t size, size_t alignment); + void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment); + void qFreeAligned(void *ptr); + void *qMemCopy(void *dest, const void *src, size_t n); + void *qMemSet(void *dest, int c, size_t n); +# 2406 "/usr/include/qt4/QtCore/qglobal.h" +class QFlag +{ + int i; +public: + inline QFlag(int i); + inline operator int() const { return i; } +}; + +inline QFlag::QFlag(int ai) : i(ai) {} + +class QIncompatibleFlag +{ + int i; +public: + inline explicit QIncompatibleFlag(int i); + inline operator int() const { return i; } +}; + +inline QIncompatibleFlag::QIncompatibleFlag(int ai) : i(ai) {} + + + + +template +class QFlags +{ + typedef void **Zero; + int i; +public: + typedef Enum enum_type; + constexpr inline QFlags(const QFlags &f) : i(f.i) {} + constexpr inline QFlags(Enum f) : i(f) {} + constexpr inline QFlags(Zero = 0) : i(0) {} + inline QFlags(QFlag f) : i(f) {} + + inline QFlags &operator=(const QFlags &f) { i = f.i; return *this; } + inline QFlags &operator&=(int mask) { i &= mask; return *this; } + inline QFlags &operator&=(uint mask) { i &= mask; return *this; } + inline QFlags &operator|=(QFlags f) { i |= f.i; return *this; } + inline QFlags &operator|=(Enum f) { i |= f; return *this; } + inline QFlags &operator^=(QFlags f) { i ^= f.i; return *this; } + inline QFlags &operator^=(Enum f) { i ^= f; return *this; } + + constexpr inline operator int() const { return i; } + + constexpr inline QFlags operator|(QFlags f) const { return QFlags(Enum(i | f.i)); } + constexpr inline QFlags operator|(Enum f) const { return QFlags(Enum(i | f)); } + constexpr inline QFlags operator^(QFlags f) const { return QFlags(Enum(i ^ f.i)); } + constexpr inline QFlags operator^(Enum f) const { return QFlags(Enum(i ^ f)); } + constexpr inline QFlags operator&(int mask) const { return QFlags(Enum(i & mask)); } + constexpr inline QFlags operator&(uint mask) const { return QFlags(Enum(i & mask)); } + constexpr inline QFlags operator&(Enum f) const { return QFlags(Enum(i & f)); } + constexpr inline QFlags operator~() const { return QFlags(Enum(~i)); } + + constexpr inline bool operator!() const { return !i; } + + inline bool testFlag(Enum f) const { return (i & f) == f && (f != 0 || i == int(f) ); } +}; +# 2489 "/usr/include/qt4/QtCore/qglobal.h" +template +class QForeachContainer { +public: + inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } + const T c; + int brk; + typename T::const_iterator i, e; +}; +# 2581 "/usr/include/qt4/QtCore/qglobal.h" +template static inline T *qGetPtrHelper(T *ptr) { return ptr; } +template static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); } +# 2614 "/usr/include/qt4/QtCore/qglobal.h" + QString qtTrId(const char *id, int n = -1); +# 2644 "/usr/include/qt4/QtCore/qglobal.h" +class QByteArray; + QByteArray qgetenv(const char *varName); + bool qputenv(const char *varName, const QByteArray& value); + +inline int qIntCast(double f) { return int(f); } +inline int qIntCast(float f) { return int(f); } + + + + + void qsrand(uint seed); + int qrand(); +# 2843 "/usr/include/qt4/QtCore/qglobal.h" +enum QtValidLicenseForCoreModule { LicensedCore = true }; + + +enum QtValidLicenseForGuiModule { LicensedGui = true }; + + +enum QtValidLicenseForNetworkModule { LicensedNetwork = true }; + + +enum QtValidLicenseForOpenGLModule { LicensedOpenGL = true }; + + +enum QtValidLicenseForOpenVGModule { LicensedOpenVG = true }; + + +enum QtValidLicenseForSqlModule { LicensedSql = true }; + + +enum QtValidLicenseForMultimediaModule { LicensedMultimedia = true }; + + +enum QtValidLicenseForXmlModule { LicensedXml = true }; + + +enum QtValidLicenseForXmlPatternsModule { LicensedXmlPatterns = true }; + + +enum QtValidLicenseForHelpModule { LicensedHelp = true }; + + +enum QtValidLicenseForScriptModule { LicensedScript = true }; + + +enum QtValidLicenseForScriptToolsModule { LicensedScriptTools = true }; + + +enum QtValidLicenseForQt3SupportLightModule { LicensedQt3SupportLight = true }; + + +enum QtValidLicenseForQt3SupportModule { LicensedQt3Support = true }; + + +enum QtValidLicenseForSvgModule { LicensedSvg = true }; + + +enum QtValidLicenseForDeclarativeModule { LicensedDeclarative = true }; + + +enum QtValidLicenseForActiveQtModule { LicensedActiveQt = true }; + + +enum QtValidLicenseForTestModule { LicensedTest = true }; + + +enum QtValidLicenseForDBusModule { LicensedDBus = true }; +# 2927 "/usr/include/qt4/QtCore/qglobal.h" +namespace QtPrivate { + +template struct QEnableIf; +template struct QEnableIf { typedef T Type; }; +} + + + +# 46 "/usr/include/qt4/QtCore/qnamespace.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + +namespace + + + +Qt { +# 104 "/usr/include/qt4/QtCore/qnamespace.h" + enum GlobalColor { + color0, + color1, + black, + white, + darkGray, + gray, + lightGray, + red, + green, + blue, + cyan, + magenta, + yellow, + darkRed, + darkGreen, + darkBlue, + darkCyan, + darkMagenta, + darkYellow, + transparent + }; + + enum KeyboardModifier { + NoModifier = 0x00000000, + ShiftModifier = 0x02000000, + ControlModifier = 0x04000000, + AltModifier = 0x08000000, + MetaModifier = 0x10000000, + KeypadModifier = 0x20000000, + GroupSwitchModifier = 0x40000000, + + KeyboardModifierMask = 0xfe000000 + }; + typedef QFlags KeyboardModifiers; + + + enum Modifier { + META = Qt::MetaModifier, + SHIFT = Qt::ShiftModifier, + CTRL = Qt::ControlModifier, + ALT = Qt::AltModifier, + MODIFIER_MASK = KeyboardModifierMask, + UNICODE_ACCEL = 0x00000000 + }; + + enum MouseButton { + NoButton = 0x00000000, + LeftButton = 0x00000001, + RightButton = 0x00000002, + MidButton = 0x00000004, + MiddleButton = MidButton, + XButton1 = 0x00000008, + XButton2 = 0x00000010, + MouseButtonMask = 0x000000ff + }; + typedef QFlags MouseButtons; +# 174 "/usr/include/qt4/QtCore/qnamespace.h" + enum Orientation { + Horizontal = 0x1, + Vertical = 0x2 + }; + + typedef QFlags Orientations; + + enum FocusPolicy { + NoFocus = 0, + TabFocus = 0x1, + ClickFocus = 0x2, + StrongFocus = TabFocus | ClickFocus | 0x8, + WheelFocus = StrongFocus | 0x4 + }; + + enum SortOrder { + AscendingOrder, + DescendingOrder + + + + + }; + + enum TileRule { + StretchTile, + RepeatTile, + RoundTile + }; + + + + + + enum AlignmentFlag { + AlignLeft = 0x0001, + AlignLeading = AlignLeft, + AlignRight = 0x0002, + AlignTrailing = AlignRight, + AlignHCenter = 0x0004, + AlignJustify = 0x0008, + AlignAbsolute = 0x0010, + AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute, + + AlignTop = 0x0020, + AlignBottom = 0x0040, + AlignVCenter = 0x0080, + AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter, + + AlignCenter = AlignVCenter | AlignHCenter + + + + }; + + typedef QFlags Alignment; + + enum TextFlag { + TextSingleLine = 0x0100, + TextDontClip = 0x0200, + TextExpandTabs = 0x0400, + TextShowMnemonic = 0x0800, + TextWordWrap = 0x1000, + TextWrapAnywhere = 0x2000, + TextDontPrint = 0x4000, + TextIncludeTrailingSpaces = 0x08000000, + TextHideMnemonic = 0x8000, + TextJustificationForced = 0x10000, + TextForceLeftToRight = 0x20000, + TextForceRightToLeft = 0x40000, + TextLongestVariant = 0x80000, + TextBypassShaping = 0x100000 +# 258 "/usr/include/qt4/QtCore/qnamespace.h" + }; + + + + + enum TextElideMode { + ElideLeft, + ElideRight, + ElideMiddle, + ElideNone + }; + + enum WindowType { + Widget = 0x00000000, + Window = 0x00000001, + Dialog = 0x00000002 | Window, + Sheet = 0x00000004 | Window, + Drawer = 0x00000006 | Window, + Popup = 0x00000008 | Window, + Tool = 0x0000000a | Window, + ToolTip = 0x0000000c | Window, + SplashScreen = 0x0000000e | Window, + Desktop = 0x00000010 | Window, + SubWindow = 0x00000012, + + WindowType_Mask = 0x000000ff, + MSWindowsFixedSizeDialogHint = 0x00000100, + MSWindowsOwnDC = 0x00000200, + X11BypassWindowManagerHint = 0x00000400, + FramelessWindowHint = 0x00000800, + WindowTitleHint = 0x00001000, + WindowSystemMenuHint = 0x00002000, + WindowMinimizeButtonHint = 0x00004000, + WindowMaximizeButtonHint = 0x00008000, + WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint, + WindowContextHelpButtonHint = 0x00010000, + WindowShadeButtonHint = 0x00020000, + WindowStaysOnTopHint = 0x00040000, + + + + + + + + CustomizeWindowHint = 0x02000000, + WindowStaysOnBottomHint = 0x04000000, + WindowCloseButtonHint = 0x08000000, + MacWindowToolBarButtonHint = 0x10000000, + BypassGraphicsProxyWidget = 0x20000000, + WindowOkButtonHint = 0x00080000, + WindowCancelButtonHint = 0x00100000, + WindowSoftkeysVisibleHint = 0x40000000, + WindowSoftkeysRespondHint = 0x80000000 +# 362 "/usr/include/qt4/QtCore/qnamespace.h" + }; + + typedef QFlags WindowFlags; + + enum WindowState { + WindowNoState = 0x00000000, + WindowMinimized = 0x00000001, + WindowMaximized = 0x00000002, + WindowFullScreen = 0x00000004, + WindowActive = 0x00000008 + }; + + typedef QFlags WindowStates; + + enum WidgetAttribute { + WA_Disabled = 0, + WA_UnderMouse = 1, + WA_MouseTracking = 2, + WA_ContentsPropagated = 3, + WA_OpaquePaintEvent = 4, + WA_NoBackground = WA_OpaquePaintEvent, + WA_StaticContents = 5, + WA_LaidOut = 7, + WA_PaintOnScreen = 8, + WA_NoSystemBackground = 9, + WA_UpdatesDisabled = 10, + WA_Mapped = 11, + WA_MacNoClickThrough = 12, + WA_PaintOutsidePaintEvent = 13, + WA_InputMethodEnabled = 14, + WA_WState_Visible = 15, + WA_WState_Hidden = 16, + + WA_ForceDisabled = 32, + WA_KeyCompression = 33, + WA_PendingMoveEvent = 34, + WA_PendingResizeEvent = 35, + WA_SetPalette = 36, + WA_SetFont = 37, + WA_SetCursor = 38, + WA_NoChildEventsFromChildren = 39, + WA_WindowModified = 41, + WA_Resized = 42, + WA_Moved = 43, + WA_PendingUpdate = 44, + WA_InvalidSize = 45, + WA_MacBrushedMetal = 46, + WA_MacMetalStyle = WA_MacBrushedMetal, + WA_CustomWhatsThis = 47, + WA_LayoutOnEntireRect = 48, + WA_OutsideWSRange = 49, + WA_GrabbedShortcut = 50, + WA_TransparentForMouseEvents = 51, + WA_PaintUnclipped = 52, + WA_SetWindowIcon = 53, + WA_NoMouseReplay = 54, + WA_DeleteOnClose = 55, + WA_RightToLeft = 56, + WA_SetLayoutDirection = 57, + WA_NoChildEventsForParent = 58, + WA_ForceUpdatesDisabled = 59, + + WA_WState_Created = 60, + WA_WState_CompressKeys = 61, + WA_WState_InPaintEvent = 62, + WA_WState_Reparented = 63, + WA_WState_ConfigPending = 64, + WA_WState_Polished = 66, + WA_WState_DND = 67, + WA_WState_OwnSizePolicy = 68, + WA_WState_ExplicitShowHide = 69, + + WA_ShowModal = 70, + WA_MouseNoMask = 71, + WA_GroupLeader = 72, + WA_NoMousePropagation = 73, + WA_Hover = 74, + WA_InputMethodTransparent = 75, + WA_QuitOnClose = 76, + + WA_KeyboardFocusChange = 77, + + WA_AcceptDrops = 78, + WA_DropSiteRegistered = 79, + WA_ForceAcceptDrops = WA_DropSiteRegistered, + + WA_WindowPropagation = 80, + + WA_NoX11EventCompression = 81, + WA_TintedBackground = 82, + WA_X11OpenGLOverlay = 83, + WA_AlwaysShowToolTips = 84, + WA_MacOpaqueSizeGrip = 85, + WA_SetStyle = 86, + + WA_SetLocale = 87, + WA_MacShowFocusRect = 88, + + WA_MacNormalSize = 89, + WA_MacSmallSize = 90, + WA_MacMiniSize = 91, + + WA_LayoutUsesWidgetRect = 92, + WA_StyledBackground = 93, + WA_MSWindowsUseDirect3D = 94, + WA_CanHostQMdiSubWindowTitleBar = 95, + + WA_MacAlwaysShowToolWindow = 96, + + WA_StyleSheet = 97, + + WA_ShowWithoutActivating = 98, + + WA_X11BypassTransientForHint = 99, + + WA_NativeWindow = 100, + WA_DontCreateNativeAncestors = 101, + + WA_MacVariableSize = 102, + + WA_DontShowOnScreen = 103, + + + WA_X11NetWmWindowTypeDesktop = 104, + WA_X11NetWmWindowTypeDock = 105, + WA_X11NetWmWindowTypeToolBar = 106, + WA_X11NetWmWindowTypeMenu = 107, + WA_X11NetWmWindowTypeUtility = 108, + WA_X11NetWmWindowTypeSplash = 109, + WA_X11NetWmWindowTypeDialog = 110, + WA_X11NetWmWindowTypeDropDownMenu = 111, + WA_X11NetWmWindowTypePopupMenu = 112, + WA_X11NetWmWindowTypeToolTip = 113, + WA_X11NetWmWindowTypeNotification = 114, + WA_X11NetWmWindowTypeCombo = 115, + WA_X11NetWmWindowTypeDND = 116, + + WA_MacFrameworkScaled = 117, + + WA_SetWindowModality = 118, + WA_WState_WindowOpacitySet = 119, + WA_TranslucentBackground = 120, + + WA_AcceptTouchEvents = 121, + WA_WState_AcceptedTouchBeginEvent = 122, + WA_TouchPadAcceptSingleTouchEvents = 123, + + WA_MergeSoftkeys = 124, + WA_MergeSoftkeysRecursively = 125, + + + + + + + WA_LockPortraitOrientation = 128, + WA_LockLandscapeOrientation = 129, + WA_AutoOrientation = 130, +# 528 "/usr/include/qt4/QtCore/qnamespace.h" + WA_X11DoNotAcceptFocus = 132, + WA_SymbianNoSystemRotation = 133, + WA_MacNoShadow = 134, + + + WA_AttributeCount + }; + + enum ApplicationAttribute + { + AA_ImmediateWidgetCreation = 0, + AA_MSWindowsUseDirect3DByDefault = 1, + AA_DontShowIconsInMenus = 2, + AA_NativeWindows = 3, + AA_DontCreateNativeWidgetSiblings = 4, + AA_MacPluginApplication = 5, + AA_DontUseNativeMenuBar = 6, + AA_MacDontSwapCtrlAndMeta = 7, + AA_S60DontConstructApplicationPanes = 8, + AA_S60DisablePartialScreenInputMode = 9, + AA_X11InitThreads = 10, + AA_CaptureMultimediaKeys = 11, + + + AA_AttributeCount + }; + + + + + + enum ImageConversionFlag { + ColorMode_Mask = 0x00000003, + AutoColor = 0x00000000, + ColorOnly = 0x00000003, + MonoOnly = 0x00000002, + + + AlphaDither_Mask = 0x0000000c, + ThresholdAlphaDither = 0x00000000, + OrderedAlphaDither = 0x00000004, + DiffuseAlphaDither = 0x00000008, + NoAlpha = 0x0000000c, + + Dither_Mask = 0x00000030, + DiffuseDither = 0x00000000, + OrderedDither = 0x00000010, + ThresholdDither = 0x00000020, + + + DitherMode_Mask = 0x000000c0, + AutoDither = 0x00000000, + PreferDither = 0x00000040, + AvoidDither = 0x00000080, + + NoOpaqueDetection = 0x00000100, + NoFormatConversion = 0x00000200 + }; + typedef QFlags ImageConversionFlags; + + enum BGMode { + TransparentMode, + OpaqueMode + }; +# 612 "/usr/include/qt4/QtCore/qnamespace.h" + enum Key { + Key_Escape = 0x01000000, + Key_Tab = 0x01000001, + Key_Backtab = 0x01000002, + + + + Key_Backspace = 0x01000003, + + + + Key_Return = 0x01000004, + Key_Enter = 0x01000005, + Key_Insert = 0x01000006, + Key_Delete = 0x01000007, + Key_Pause = 0x01000008, + Key_Print = 0x01000009, + Key_SysReq = 0x0100000a, + Key_Clear = 0x0100000b, + Key_Home = 0x01000010, + Key_End = 0x01000011, + Key_Left = 0x01000012, + Key_Up = 0x01000013, + Key_Right = 0x01000014, + Key_Down = 0x01000015, + Key_PageUp = 0x01000016, + + + + Key_PageDown = 0x01000017, + + + + Key_Shift = 0x01000020, + Key_Control = 0x01000021, + Key_Meta = 0x01000022, + Key_Alt = 0x01000023, + Key_CapsLock = 0x01000024, + Key_NumLock = 0x01000025, + Key_ScrollLock = 0x01000026, + Key_F1 = 0x01000030, + Key_F2 = 0x01000031, + Key_F3 = 0x01000032, + Key_F4 = 0x01000033, + Key_F5 = 0x01000034, + Key_F6 = 0x01000035, + Key_F7 = 0x01000036, + Key_F8 = 0x01000037, + Key_F9 = 0x01000038, + Key_F10 = 0x01000039, + Key_F11 = 0x0100003a, + Key_F12 = 0x0100003b, + Key_F13 = 0x0100003c, + Key_F14 = 0x0100003d, + Key_F15 = 0x0100003e, + Key_F16 = 0x0100003f, + Key_F17 = 0x01000040, + Key_F18 = 0x01000041, + Key_F19 = 0x01000042, + Key_F20 = 0x01000043, + Key_F21 = 0x01000044, + Key_F22 = 0x01000045, + Key_F23 = 0x01000046, + Key_F24 = 0x01000047, + Key_F25 = 0x01000048, + Key_F26 = 0x01000049, + Key_F27 = 0x0100004a, + Key_F28 = 0x0100004b, + Key_F29 = 0x0100004c, + Key_F30 = 0x0100004d, + Key_F31 = 0x0100004e, + Key_F32 = 0x0100004f, + Key_F33 = 0x01000050, + Key_F34 = 0x01000051, + Key_F35 = 0x01000052, + Key_Super_L = 0x01000053, + Key_Super_R = 0x01000054, + Key_Menu = 0x01000055, + Key_Hyper_L = 0x01000056, + Key_Hyper_R = 0x01000057, + Key_Help = 0x01000058, + Key_Direction_L = 0x01000059, + Key_Direction_R = 0x01000060, + Key_Space = 0x20, + Key_Any = Key_Space, + Key_Exclam = 0x21, + Key_QuoteDbl = 0x22, + Key_NumberSign = 0x23, + Key_Dollar = 0x24, + Key_Percent = 0x25, + Key_Ampersand = 0x26, + Key_Apostrophe = 0x27, + Key_ParenLeft = 0x28, + Key_ParenRight = 0x29, + Key_Asterisk = 0x2a, + Key_Plus = 0x2b, + Key_Comma = 0x2c, + Key_Minus = 0x2d, + Key_Period = 0x2e, + Key_Slash = 0x2f, + Key_0 = 0x30, + Key_1 = 0x31, + Key_2 = 0x32, + Key_3 = 0x33, + Key_4 = 0x34, + Key_5 = 0x35, + Key_6 = 0x36, + Key_7 = 0x37, + Key_8 = 0x38, + Key_9 = 0x39, + Key_Colon = 0x3a, + Key_Semicolon = 0x3b, + Key_Less = 0x3c, + Key_Equal = 0x3d, + Key_Greater = 0x3e, + Key_Question = 0x3f, + Key_At = 0x40, + Key_A = 0x41, + Key_B = 0x42, + Key_C = 0x43, + Key_D = 0x44, + Key_E = 0x45, + Key_F = 0x46, + Key_G = 0x47, + Key_H = 0x48, + Key_I = 0x49, + Key_J = 0x4a, + Key_K = 0x4b, + Key_L = 0x4c, + Key_M = 0x4d, + Key_N = 0x4e, + Key_O = 0x4f, + Key_P = 0x50, + Key_Q = 0x51, + Key_R = 0x52, + Key_S = 0x53, + Key_T = 0x54, + Key_U = 0x55, + Key_V = 0x56, + Key_W = 0x57, + Key_X = 0x58, + Key_Y = 0x59, + Key_Z = 0x5a, + Key_BracketLeft = 0x5b, + Key_Backslash = 0x5c, + Key_BracketRight = 0x5d, + Key_AsciiCircum = 0x5e, + Key_Underscore = 0x5f, + Key_QuoteLeft = 0x60, + Key_BraceLeft = 0x7b, + Key_Bar = 0x7c, + Key_BraceRight = 0x7d, + Key_AsciiTilde = 0x7e, + + Key_nobreakspace = 0x0a0, + Key_exclamdown = 0x0a1, + Key_cent = 0x0a2, + Key_sterling = 0x0a3, + Key_currency = 0x0a4, + Key_yen = 0x0a5, + Key_brokenbar = 0x0a6, + Key_section = 0x0a7, + Key_diaeresis = 0x0a8, + Key_copyright = 0x0a9, + Key_ordfeminine = 0x0aa, + Key_guillemotleft = 0x0ab, + Key_notsign = 0x0ac, + Key_hyphen = 0x0ad, + Key_registered = 0x0ae, + Key_macron = 0x0af, + Key_degree = 0x0b0, + Key_plusminus = 0x0b1, + Key_twosuperior = 0x0b2, + Key_threesuperior = 0x0b3, + Key_acute = 0x0b4, + Key_mu = 0x0b5, + Key_paragraph = 0x0b6, + Key_periodcentered = 0x0b7, + Key_cedilla = 0x0b8, + Key_onesuperior = 0x0b9, + Key_masculine = 0x0ba, + Key_guillemotright = 0x0bb, + Key_onequarter = 0x0bc, + Key_onehalf = 0x0bd, + Key_threequarters = 0x0be, + Key_questiondown = 0x0bf, + Key_Agrave = 0x0c0, + Key_Aacute = 0x0c1, + Key_Acircumflex = 0x0c2, + Key_Atilde = 0x0c3, + Key_Adiaeresis = 0x0c4, + Key_Aring = 0x0c5, + Key_AE = 0x0c6, + Key_Ccedilla = 0x0c7, + Key_Egrave = 0x0c8, + Key_Eacute = 0x0c9, + Key_Ecircumflex = 0x0ca, + Key_Ediaeresis = 0x0cb, + Key_Igrave = 0x0cc, + Key_Iacute = 0x0cd, + Key_Icircumflex = 0x0ce, + Key_Idiaeresis = 0x0cf, + Key_ETH = 0x0d0, + Key_Ntilde = 0x0d1, + Key_Ograve = 0x0d2, + Key_Oacute = 0x0d3, + Key_Ocircumflex = 0x0d4, + Key_Otilde = 0x0d5, + Key_Odiaeresis = 0x0d6, + Key_multiply = 0x0d7, + Key_Ooblique = 0x0d8, + Key_Ugrave = 0x0d9, + Key_Uacute = 0x0da, + Key_Ucircumflex = 0x0db, + Key_Udiaeresis = 0x0dc, + Key_Yacute = 0x0dd, + Key_THORN = 0x0de, + Key_ssharp = 0x0df, +# 855 "/usr/include/qt4/QtCore/qnamespace.h" + Key_division = 0x0f7, +# 865 "/usr/include/qt4/QtCore/qnamespace.h" + Key_ydiaeresis = 0x0ff, + + + + + + + Key_AltGr = 0x01001103, + Key_Multi_key = 0x01001120, + Key_Codeinput = 0x01001137, + Key_SingleCandidate = 0x0100113c, + Key_MultipleCandidate = 0x0100113d, + Key_PreviousCandidate = 0x0100113e, + + + Key_Mode_switch = 0x0100117e, + + + + Key_Kanji = 0x01001121, + Key_Muhenkan = 0x01001122, + + Key_Henkan = 0x01001123, + Key_Romaji = 0x01001124, + Key_Hiragana = 0x01001125, + Key_Katakana = 0x01001126, + Key_Hiragana_Katakana = 0x01001127, + Key_Zenkaku = 0x01001128, + Key_Hankaku = 0x01001129, + Key_Zenkaku_Hankaku = 0x0100112a, + Key_Touroku = 0x0100112b, + Key_Massyo = 0x0100112c, + Key_Kana_Lock = 0x0100112d, + Key_Kana_Shift = 0x0100112e, + Key_Eisu_Shift = 0x0100112f, + Key_Eisu_toggle = 0x01001130, +# 910 "/usr/include/qt4/QtCore/qnamespace.h" + Key_Hangul = 0x01001131, + Key_Hangul_Start = 0x01001132, + Key_Hangul_End = 0x01001133, + Key_Hangul_Hanja = 0x01001134, + Key_Hangul_Jamo = 0x01001135, + Key_Hangul_Romaja = 0x01001136, + + Key_Hangul_Jeonja = 0x01001138, + Key_Hangul_Banja = 0x01001139, + Key_Hangul_PreHanja = 0x0100113a, + Key_Hangul_PostHanja = 0x0100113b, + + + + Key_Hangul_Special = 0x0100113f, + + + + Key_Dead_Grave = 0x01001250, + Key_Dead_Acute = 0x01001251, + Key_Dead_Circumflex = 0x01001252, + Key_Dead_Tilde = 0x01001253, + Key_Dead_Macron = 0x01001254, + Key_Dead_Breve = 0x01001255, + Key_Dead_Abovedot = 0x01001256, + Key_Dead_Diaeresis = 0x01001257, + Key_Dead_Abovering = 0x01001258, + Key_Dead_Doubleacute = 0x01001259, + Key_Dead_Caron = 0x0100125a, + Key_Dead_Cedilla = 0x0100125b, + Key_Dead_Ogonek = 0x0100125c, + Key_Dead_Iota = 0x0100125d, + Key_Dead_Voiced_Sound = 0x0100125e, + Key_Dead_Semivoiced_Sound = 0x0100125f, + Key_Dead_Belowdot = 0x01001260, + Key_Dead_Hook = 0x01001261, + Key_Dead_Horn = 0x01001262, + + + Key_Back = 0x01000061, + Key_Forward = 0x01000062, + Key_Stop = 0x01000063, + Key_Refresh = 0x01000064, + Key_VolumeDown = 0x01000070, + Key_VolumeMute = 0x01000071, + Key_VolumeUp = 0x01000072, + Key_BassBoost = 0x01000073, + Key_BassUp = 0x01000074, + Key_BassDown = 0x01000075, + Key_TrebleUp = 0x01000076, + Key_TrebleDown = 0x01000077, + Key_MediaPlay = 0x01000080, + Key_MediaStop = 0x01000081, + Key_MediaPrevious = 0x01000082, + + + + Key_MediaNext = 0x01000083, + Key_MediaRecord = 0x01000084, + Key_MediaPause = 0x1000085, + Key_MediaTogglePlayPause = 0x1000086, + Key_HomePage = 0x01000090, + Key_Favorites = 0x01000091, + Key_Search = 0x01000092, + Key_Standby = 0x01000093, + Key_OpenUrl = 0x01000094, + Key_LaunchMail = 0x010000a0, + Key_LaunchMedia = 0x010000a1, + Key_Launch0 = 0x010000a2, + Key_Launch1 = 0x010000a3, + Key_Launch2 = 0x010000a4, + Key_Launch3 = 0x010000a5, + Key_Launch4 = 0x010000a6, + Key_Launch5 = 0x010000a7, + Key_Launch6 = 0x010000a8, + Key_Launch7 = 0x010000a9, + Key_Launch8 = 0x010000aa, + Key_Launch9 = 0x010000ab, + Key_LaunchA = 0x010000ac, + Key_LaunchB = 0x010000ad, + Key_LaunchC = 0x010000ae, + Key_LaunchD = 0x010000af, + Key_LaunchE = 0x010000b0, + Key_LaunchF = 0x010000b1, + Key_MonBrightnessUp = 0x010000b2, + Key_MonBrightnessDown = 0x010000b3, + Key_KeyboardLightOnOff = 0x010000b4, + Key_KeyboardBrightnessUp = 0x010000b5, + Key_KeyboardBrightnessDown = 0x010000b6, + Key_PowerOff = 0x010000b7, + Key_WakeUp = 0x010000b8, + Key_Eject = 0x010000b9, + Key_ScreenSaver = 0x010000ba, + Key_WWW = 0x010000bb, + Key_Memo = 0x010000bc, + Key_LightBulb = 0x010000bd, + Key_Shop = 0x010000be, + Key_History = 0x010000bf, + Key_AddFavorite = 0x010000c0, + Key_HotLinks = 0x010000c1, + Key_BrightnessAdjust = 0x010000c2, + Key_Finance = 0x010000c3, + Key_Community = 0x010000c4, + Key_AudioRewind = 0x010000c5, + Key_BackForward = 0x010000c6, + Key_ApplicationLeft = 0x010000c7, + Key_ApplicationRight = 0x010000c8, + Key_Book = 0x010000c9, + Key_CD = 0x010000ca, + Key_Calculator = 0x010000cb, + Key_ToDoList = 0x010000cc, + Key_ClearGrab = 0x010000cd, + Key_Close = 0x010000ce, + Key_Copy = 0x010000cf, + Key_Cut = 0x010000d0, + Key_Display = 0x010000d1, + Key_DOS = 0x010000d2, + Key_Documents = 0x010000d3, + Key_Excel = 0x010000d4, + Key_Explorer = 0x010000d5, + Key_Game = 0x010000d6, + Key_Go = 0x010000d7, + Key_iTouch = 0x010000d8, + Key_LogOff = 0x010000d9, + Key_Market = 0x010000da, + Key_Meeting = 0x010000db, + Key_MenuKB = 0x010000dc, + Key_MenuPB = 0x010000dd, + Key_MySites = 0x010000de, + Key_News = 0x010000df, + Key_OfficeHome = 0x010000e0, + Key_Option = 0x010000e1, + Key_Paste = 0x010000e2, + Key_Phone = 0x010000e3, + Key_Calendar = 0x010000e4, + Key_Reply = 0x010000e5, + Key_Reload = 0x010000e6, + Key_RotateWindows = 0x010000e7, + Key_RotationPB = 0x010000e8, + Key_RotationKB = 0x010000e9, + Key_Save = 0x010000ea, + Key_Send = 0x010000eb, + Key_Spell = 0x010000ec, + Key_SplitScreen = 0x010000ed, + Key_Support = 0x010000ee, + Key_TaskPane = 0x010000ef, + Key_Terminal = 0x010000f0, + Key_Tools = 0x010000f1, + Key_Travel = 0x010000f2, + Key_Video = 0x010000f3, + Key_Word = 0x010000f4, + Key_Xfer = 0x010000f5, + Key_ZoomIn = 0x010000f6, + Key_ZoomOut = 0x010000f7, + Key_Away = 0x010000f8, + Key_Messenger = 0x010000f9, + Key_WebCam = 0x010000fa, + Key_MailForward = 0x010000fb, + Key_Pictures = 0x010000fc, + Key_Music = 0x010000fd, + Key_Battery = 0x010000fe, + Key_Bluetooth = 0x010000ff, + Key_WLAN = 0x01000100, + Key_UWB = 0x01000101, + Key_AudioForward = 0x01000102, + Key_AudioRepeat = 0x01000103, + Key_AudioRandomPlay = 0x01000104, + Key_Subtitle = 0x01000105, + Key_AudioCycleTrack = 0x01000106, + Key_Time = 0x01000107, + Key_Hibernate = 0x01000108, + Key_View = 0x01000109, + Key_TopMenu = 0x0100010a, + Key_PowerDown = 0x0100010b, + Key_Suspend = 0x0100010c, + Key_ContrastAdjust = 0x0100010d, + + Key_LaunchG = 0x0100010e, + Key_LaunchH = 0x0100010f, + + Key_MediaLast = 0x0100ffff, + + + Key_Select = 0x01010000, + Key_Yes = 0x01010001, + Key_No = 0x01010002, + + + Key_Cancel = 0x01020001, + Key_Printer = 0x01020002, + Key_Execute = 0x01020003, + Key_Sleep = 0x01020004, + Key_Play = 0x01020005, + Key_Zoom = 0x01020006, + + + + + + Key_Context1 = 0x01100000, + Key_Context2 = 0x01100001, + Key_Context3 = 0x01100002, + Key_Context4 = 0x01100003, + Key_Call = 0x01100004, + Key_Hangup = 0x01100005, + Key_Flip = 0x01100006, + Key_ToggleCallHangup = 0x01100007, + Key_VoiceDial = 0x01100008, + Key_LastNumberRedial = 0x01100009, + + Key_Camera = 0x01100020, + Key_CameraFocus = 0x01100021, + + Key_unknown = 0x01ffffff + }; + + enum ArrowType { + NoArrow, + UpArrow, + DownArrow, + LeftArrow, + RightArrow + }; + + enum PenStyle { + NoPen, + SolidLine, + DashLine, + DotLine, + DashDotLine, + DashDotDotLine, + CustomDashLine + + , MPenStyle = 0x0f + + }; + + enum PenCapStyle { + FlatCap = 0x00, + SquareCap = 0x10, + RoundCap = 0x20, + MPenCapStyle = 0x30 + }; + + enum PenJoinStyle { + MiterJoin = 0x00, + BevelJoin = 0x40, + RoundJoin = 0x80, + SvgMiterJoin = 0x100, + MPenJoinStyle = 0x1c0 + }; + + enum BrushStyle { + NoBrush, + SolidPattern, + Dense1Pattern, + Dense2Pattern, + Dense3Pattern, + Dense4Pattern, + Dense5Pattern, + Dense6Pattern, + Dense7Pattern, + HorPattern, + VerPattern, + CrossPattern, + BDiagPattern, + FDiagPattern, + DiagCrossPattern, + LinearGradientPattern, + RadialGradientPattern, + ConicalGradientPattern, + TexturePattern = 24 + + + + }; + + enum SizeMode { + AbsoluteSize, + RelativeSize + }; +# 1252 "/usr/include/qt4/QtCore/qnamespace.h" + enum UIEffect { + UI_General, + UI_AnimateMenu, + UI_FadeMenu, + UI_AnimateCombo, + UI_AnimateTooltip, + UI_FadeTooltip, + UI_AnimateToolBox + }; + + enum CursorShape { + ArrowCursor, + UpArrowCursor, + CrossCursor, + WaitCursor, + IBeamCursor, + SizeVerCursor, + SizeHorCursor, + SizeBDiagCursor, + SizeFDiagCursor, + SizeAllCursor, + BlankCursor, + SplitVCursor, + SplitHCursor, + PointingHandCursor, + ForbiddenCursor, + WhatsThisCursor, + BusyCursor, + OpenHandCursor, + ClosedHandCursor, + DragCopyCursor, + DragMoveCursor, + DragLinkCursor, + LastCursor = DragLinkCursor, + BitmapCursor = 24, + CustomCursor = 25 +# 1308 "/usr/include/qt4/QtCore/qnamespace.h" + }; + + enum TextFormat { + PlainText, + RichText, + AutoText, + LogText + }; + + enum AspectRatioMode { + IgnoreAspectRatio, + KeepAspectRatio, + KeepAspectRatioByExpanding + + + + + + }; + + + + + + enum AnchorAttribute { + AnchorName, + AnchorHref + }; + + enum DockWidgetArea { + LeftDockWidgetArea = 0x1, + RightDockWidgetArea = 0x2, + TopDockWidgetArea = 0x4, + BottomDockWidgetArea = 0x8, + + DockWidgetArea_Mask = 0xf, + AllDockWidgetAreas = DockWidgetArea_Mask, + NoDockWidgetArea = 0 + }; + enum DockWidgetAreaSizes { + NDockWidgetAreas = 4 + }; + + typedef QFlags DockWidgetAreas; + + enum ToolBarArea { + LeftToolBarArea = 0x1, + RightToolBarArea = 0x2, + TopToolBarArea = 0x4, + BottomToolBarArea = 0x8, + + ToolBarArea_Mask = 0xf, + AllToolBarAreas = ToolBarArea_Mask, + NoToolBarArea = 0 + }; + + enum ToolBarAreaSizes { + NToolBarAreas = 4 + }; + + typedef QFlags ToolBarAreas; +# 1392 "/usr/include/qt4/QtCore/qnamespace.h" + enum DateFormat { + TextDate, + ISODate, + SystemLocaleDate, + LocalDate = SystemLocaleDate, + LocaleDate, + SystemLocaleShortDate, + SystemLocaleLongDate, + DefaultLocaleShortDate, + DefaultLocaleLongDate + }; + + enum TimeSpec { + LocalTime, + UTC, + OffsetFromUTC + }; + + enum DayOfWeek { + Monday = 1, + Tuesday = 2, + Wednesday = 3, + Thursday = 4, + Friday = 5, + Saturday = 6, + Sunday = 7 + }; + + enum ScrollBarPolicy { + ScrollBarAsNeeded, + ScrollBarAlwaysOff, + ScrollBarAlwaysOn + }; +# 1451 "/usr/include/qt4/QtCore/qnamespace.h" + enum CaseSensitivity { + CaseInsensitive, + CaseSensitive + }; + + enum Corner { + TopLeftCorner = 0x00000, + TopRightCorner = 0x00001, + BottomLeftCorner = 0x00002, + BottomRightCorner = 0x00003 + + + + + + + }; + + enum ConnectionType { + AutoConnection, + DirectConnection, + QueuedConnection, + AutoCompatConnection, + BlockingQueuedConnection, + UniqueConnection = 0x80 + }; + + enum ShortcutContext { + WidgetShortcut, + WindowShortcut, + ApplicationShortcut, + WidgetWithChildrenShortcut + }; + + enum FillRule { + OddEvenFill, + WindingFill + }; + + enum MaskMode { + MaskInColor, + MaskOutColor + }; + + enum ClipOperation { + NoClip, + ReplaceClip, + IntersectClip, + UniteClip + }; + + + enum ItemSelectionMode { + ContainsItemShape = 0x0, + IntersectsItemShape = 0x1, + ContainsItemBoundingRect = 0x2, + IntersectsItemBoundingRect = 0x3 + }; + + enum TransformationMode { + FastTransformation, + SmoothTransformation + }; + + enum Axis { + XAxis, + YAxis, + ZAxis + }; + + enum FocusReason { + MouseFocusReason, + TabFocusReason, + BacktabFocusReason, + ActiveWindowFocusReason, + PopupFocusReason, + ShortcutFocusReason, + MenuBarFocusReason, + OtherFocusReason, + NoFocusReason + }; + + enum ContextMenuPolicy { + NoContextMenu, + DefaultContextMenu, + ActionsContextMenu, + CustomContextMenu, + PreventContextMenu + }; + + enum InputMethodQuery { + ImMicroFocus, + ImFont, + ImCursorPosition, + ImSurroundingText, + ImCurrentSelection, + ImMaximumTextLength, + ImAnchorPosition + }; + + enum InputMethodHint { + ImhNone = 0x0, + ImhHiddenText = 0x1, + ImhNoAutoUppercase = 0x2, + ImhPreferNumbers = 0x4, + ImhPreferUppercase = 0x8, + ImhPreferLowercase = 0x10, + ImhNoPredictiveText = 0x20, + + ImhDigitsOnly = 0x10000, + ImhFormattedNumbersOnly = 0x20000, + ImhUppercaseOnly = 0x40000, + ImhLowercaseOnly = 0x80000, + ImhDialableCharactersOnly = 0x100000, + ImhEmailCharactersOnly = 0x200000, + ImhUrlCharactersOnly = 0x400000, + + ImhExclusiveInputMask = 0xffff0000 + }; + typedef QFlags InputMethodHints; + + enum ToolButtonStyle { + ToolButtonIconOnly, + ToolButtonTextOnly, + ToolButtonTextBesideIcon, + ToolButtonTextUnderIcon, + ToolButtonFollowStyle + }; + + enum LayoutDirection { + LeftToRight, + RightToLeft, + LayoutDirectionAuto + }; + + enum AnchorPoint { + AnchorLeft = 0, + AnchorHorizontalCenter, + AnchorRight, + AnchorTop, + AnchorVerticalCenter, + AnchorBottom + }; + + + + enum DropAction { + CopyAction = 0x1, + MoveAction = 0x2, + LinkAction = 0x4, + ActionMask = 0xff, + TargetMoveAction = 0x8002, + IgnoreAction = 0x0 + }; + typedef QFlags DropActions; + + enum CheckState { + Unchecked, + PartiallyChecked, + Checked + }; + + enum ItemDataRole { + DisplayRole = 0, + DecorationRole = 1, + EditRole = 2, + ToolTipRole = 3, + StatusTipRole = 4, + WhatsThisRole = 5, + + FontRole = 6, + TextAlignmentRole = 7, + BackgroundColorRole = 8, + BackgroundRole = 8, + TextColorRole = 9, + ForegroundRole = 9, + CheckStateRole = 10, + + AccessibleTextRole = 11, + AccessibleDescriptionRole = 12, + + SizeHintRole = 13, + InitialSortOrderRole = 14, + + DisplayPropertyRole = 27, + DecorationPropertyRole = 28, + ToolTipPropertyRole = 29, + StatusTipPropertyRole = 30, + WhatsThisPropertyRole = 31, + + UserRole = 32 + }; + + enum ItemFlag { + NoItemFlags = 0, + ItemIsSelectable = 1, + ItemIsEditable = 2, + ItemIsDragEnabled = 4, + ItemIsDropEnabled = 8, + ItemIsUserCheckable = 16, + ItemIsEnabled = 32, + ItemIsTristate = 64 + }; + typedef QFlags ItemFlags; + + enum MatchFlag { + MatchExactly = 0, + MatchContains = 1, + MatchStartsWith = 2, + MatchEndsWith = 3, + MatchRegExp = 4, + MatchWildcard = 5, + MatchFixedString = 8, + MatchCaseSensitive = 16, + MatchWrap = 32, + MatchRecursive = 64 + }; + typedef QFlags MatchFlags; + + + + + + + typedef unsigned long HANDLE; + + + + + + typedef WindowFlags WFlags; + + enum WindowModality { + NonModal, + WindowModal, + ApplicationModal + }; + + enum TextInteractionFlag { + NoTextInteraction = 0, + TextSelectableByMouse = 1, + TextSelectableByKeyboard = 2, + LinksAccessibleByMouse = 4, + LinksAccessibleByKeyboard = 8, + TextEditable = 16, + + TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable, + TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard + }; + typedef QFlags TextInteractionFlags; + + enum EventPriority { + HighEventPriority = 1, + NormalEventPriority = 0, + LowEventPriority = -1 + }; + + enum SizeHint { + MinimumSize, + PreferredSize, + MaximumSize, + MinimumDescent, + NSizeHints + }; + + enum WindowFrameSection { + NoSection, + LeftSection, + TopLeftSection, + TopSection, + TopRightSection, + RightSection, + BottomRightSection, + BottomSection, + BottomLeftSection, + TitleBarArea + }; + + enum Initialization { + Uninitialized + }; + + enum CoordinateSystem { + DeviceCoordinates, + LogicalCoordinates + }; + + enum TouchPointState { + TouchPointPressed = 0x01, + TouchPointMoved = 0x02, + TouchPointStationary = 0x04, + TouchPointReleased = 0x08, + TouchPointStateMask = 0x0f, + + TouchPointPrimary = 0x10 + }; + typedef QFlags TouchPointStates; + + + enum GestureState + { + NoGesture, + GestureStarted = 1, + GestureUpdated = 2, + GestureFinished = 3, + GestureCanceled = 4 + }; + + enum GestureType + { + TapGesture = 1, + TapAndHoldGesture = 2, + PanGesture = 3, + PinchGesture = 4, + SwipeGesture = 5, + + CustomGesture = 0x0100, + + LastGestureType = ~0u + }; + + enum GestureFlag + { + DontStartGestureOnChildren = 0x01, + ReceivePartialGestures = 0x02, + IgnoredGesturesPropagateToParent = 0x04 + }; + typedef QFlags GestureFlags; + + + enum NavigationMode + { + NavigationModeNone, + NavigationModeKeypadTabOrder, + NavigationModeKeypadDirectional, + NavigationModeCursorAuto, + NavigationModeCursorForceVisible + }; + + enum CursorMoveStyle { + LogicalMoveStyle, + VisualMoveStyle + }; +} + + + + +constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, Qt::MouseButtons::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::MouseButtons::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, Qt::Orientations::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::Orientations::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, Qt::KeyboardModifiers::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::KeyboardModifiers::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, Qt::WindowFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::WindowFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, Qt::Alignment::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::Alignment::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, Qt::ImageConversionFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::ImageConversionFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, Qt::DockWidgetAreas::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::DockWidgetAreas::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, Qt::ToolBarAreas::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::ToolBarAreas::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, Qt::WindowStates::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::WindowStates::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, Qt::DropActions::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::DropActions::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, Qt::ItemFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::ItemFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, Qt::MatchFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::MatchFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, Qt::TextInteractionFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::TextInteractionFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, Qt::InputMethodHints::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::InputMethodHints::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, Qt::TouchPointStates::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::TouchPointStates::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, Qt::GestureFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(Qt::GestureFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + +typedef bool (*qInternalCallback)(void **); + +class QInternal { +public: + enum PaintDeviceFlags { + UnknownDevice = 0x00, + Widget = 0x01, + Pixmap = 0x02, + Image = 0x03, + Printer = 0x04, + Picture = 0x05, + Pbuffer = 0x06, + FramebufferObject = 0x07, + CustomRaster = 0x08, + MacQuartz = 0x09, + PaintBuffer = 0x0a, + OpenGL = 0x0b + }; + enum RelayoutType { + RelayoutNormal, + RelayoutDragging, + RelayoutDropped + }; + + + enum Callback { + ConnectCallback, + DisconnectCallback, + AdoptCurrentThread, + EventNotifyCallback, + LastCallback + }; + + enum InternalFunction { + CreateThreadForAdoption, + RefAdoptedThread, + DerefAdoptedThread, + SetCurrentThreadToMainThread, + SetQObjectSender, + GetQObjectSender, + ResetQObjectSender, + LastInternalFunction + }; + + enum DockPosition { + LeftDock, + RightDock, + TopDock, + BottomDock, + DockCount + }; + + static bool registerCallback(Callback, qInternalCallback); + static bool unregisterCallback(Callback, qInternalCallback); + + static bool activateCallbacks(Callback, void **); + static bool callFunction(InternalFunction func, void **); +}; +# 1885 "/usr/include/qt4/QtCore/qnamespace.h" + + + +# 46 "/usr/include/qt4/QtCore/qobjectdefs.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QByteArray; + +class QString; +# 143 "/usr/include/qt4/QtCore/qobjectdefs.h" +template +inline int qYouForgotTheQ_OBJECT_Macro(T, T) { return 0; } + +template +inline void qYouForgotTheQ_OBJECT_Macro(T1, T2) {} +# 217 "/usr/include/qt4/QtCore/qobjectdefs.h" + const char *qFlagLocation(const char *method); +# 249 "/usr/include/qt4/QtCore/qobjectdefs.h" +class QObject; +class QMetaMethod; +class QMetaEnum; +class QMetaProperty; +class QMetaClassInfo; + + +class QGenericArgument +{ +public: + inline QGenericArgument(const char *aName = 0, const void *aData = 0) + : _data(aData), _name(aName) {} + inline void *data() const { return const_cast(_data); } + inline const char *name() const { return _name; } + +private: + const void *_data; + const char *_name; +}; + +class QGenericReturnArgument: public QGenericArgument +{ +public: + inline QGenericReturnArgument(const char *aName = 0, void *aData = 0) + : QGenericArgument(aName, aData) + {} +}; + +template +class QArgument: public QGenericArgument +{ +public: + inline QArgument(const char *aName, const T &aData) + : QGenericArgument(aName, static_cast(&aData)) + {} +}; +template +class QArgument: public QGenericArgument +{ +public: + inline QArgument(const char *aName, T &aData) + : QGenericArgument(aName, static_cast(&aData)) + {} +}; + + +template +class QReturnArgument: public QGenericReturnArgument +{ +public: + inline QReturnArgument(const char *aName, T &aData) + : QGenericReturnArgument(aName, static_cast(&aData)) + {} +}; + +struct QMetaObject +{ + const char *className() const; + const QMetaObject *superClass() const; + + QObject *cast(QObject *obj) const; + const QObject *cast(const QObject *obj) const; + + + + QString tr(const char *s, const char *c) const; + QString trUtf8(const char *s, const char *c) const; + QString tr(const char *s, const char *c, int n) const; + QString trUtf8(const char *s, const char *c, int n) const; + + + int methodOffset() const; + int enumeratorOffset() const; + int propertyOffset() const; + int classInfoOffset() const; + + int constructorCount() const; + int methodCount() const; + int enumeratorCount() const; + int propertyCount() const; + int classInfoCount() const; + + int indexOfConstructor(const char *constructor) const; + int indexOfMethod(const char *method) const; + int indexOfSignal(const char *signal) const; + int indexOfSlot(const char *slot) const; + int indexOfEnumerator(const char *name) const; + int indexOfProperty(const char *name) const; + int indexOfClassInfo(const char *name) const; + + QMetaMethod constructor(int index) const; + QMetaMethod method(int index) const; + QMetaEnum enumerator(int index) const; + QMetaProperty property(int index) const; + QMetaClassInfo classInfo(int index) const; + QMetaProperty userProperty() const; + + static bool checkConnectArgs(const char *signal, const char *method); + static QByteArray normalizedSignature(const char *method); + static QByteArray normalizedType(const char *type); + + + static bool connect(const QObject *sender, int signal_index, + const QObject *receiver, int method_index, + int type = 0, int *types = 0); + + static bool disconnect(const QObject *sender, int signal_index, + const QObject *receiver, int method_index); + static bool disconnectOne(const QObject *sender, int signal_index, + const QObject *receiver, int method_index); + + static void connectSlotsByName(QObject *o); + + + static void activate(QObject *sender, int signal_index, void **argv); + static void activate(QObject *sender, int from_signal_index, int to_signal_index, void **argv); + static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); + static void activate(QObject *sender, const QMetaObject *, int from_local_signal_index, int to_local_signal_index, void **argv); + + + static void addGuard(QObject **ptr); + static void removeGuard(QObject **ptr); + static void changeGuard(QObject **ptr, QObject *o); + + static bool invokeMethod(QObject *obj, const char *member, + Qt::ConnectionType, + QGenericReturnArgument ret, + QGenericArgument val0 = QGenericArgument(0), + QGenericArgument val1 = QGenericArgument(), + QGenericArgument val2 = QGenericArgument(), + QGenericArgument val3 = QGenericArgument(), + QGenericArgument val4 = QGenericArgument(), + QGenericArgument val5 = QGenericArgument(), + QGenericArgument val6 = QGenericArgument(), + QGenericArgument val7 = QGenericArgument(), + QGenericArgument val8 = QGenericArgument(), + QGenericArgument val9 = QGenericArgument()); + + static inline bool invokeMethod(QObject *obj, const char *member, + QGenericReturnArgument ret, + QGenericArgument val0 = QGenericArgument(0), + QGenericArgument val1 = QGenericArgument(), + QGenericArgument val2 = QGenericArgument(), + QGenericArgument val3 = QGenericArgument(), + QGenericArgument val4 = QGenericArgument(), + QGenericArgument val5 = QGenericArgument(), + QGenericArgument val6 = QGenericArgument(), + QGenericArgument val7 = QGenericArgument(), + QGenericArgument val8 = QGenericArgument(), + QGenericArgument val9 = QGenericArgument()) + { + return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, + val4, val5, val6, val7, val8, val9); + } + + static inline bool invokeMethod(QObject *obj, const char *member, + Qt::ConnectionType type, + QGenericArgument val0 = QGenericArgument(0), + QGenericArgument val1 = QGenericArgument(), + QGenericArgument val2 = QGenericArgument(), + QGenericArgument val3 = QGenericArgument(), + QGenericArgument val4 = QGenericArgument(), + QGenericArgument val5 = QGenericArgument(), + QGenericArgument val6 = QGenericArgument(), + QGenericArgument val7 = QGenericArgument(), + QGenericArgument val8 = QGenericArgument(), + QGenericArgument val9 = QGenericArgument()) + { + return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, + val3, val4, val5, val6, val7, val8, val9); + } + + static inline bool invokeMethod(QObject *obj, const char *member, + QGenericArgument val0 = QGenericArgument(0), + QGenericArgument val1 = QGenericArgument(), + QGenericArgument val2 = QGenericArgument(), + QGenericArgument val3 = QGenericArgument(), + QGenericArgument val4 = QGenericArgument(), + QGenericArgument val5 = QGenericArgument(), + QGenericArgument val6 = QGenericArgument(), + QGenericArgument val7 = QGenericArgument(), + QGenericArgument val8 = QGenericArgument(), + QGenericArgument val9 = QGenericArgument()) + { + return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, + val1, val2, val3, val4, val5, val6, val7, val8, val9); + } + + QObject *newInstance(QGenericArgument val0 = QGenericArgument(0), + QGenericArgument val1 = QGenericArgument(), + QGenericArgument val2 = QGenericArgument(), + QGenericArgument val3 = QGenericArgument(), + QGenericArgument val4 = QGenericArgument(), + QGenericArgument val5 = QGenericArgument(), + QGenericArgument val6 = QGenericArgument(), + QGenericArgument val7 = QGenericArgument(), + QGenericArgument val8 = QGenericArgument(), + QGenericArgument val9 = QGenericArgument()) const; + + enum Call { + InvokeMetaMethod, + ReadProperty, + WriteProperty, + ResetProperty, + QueryPropertyDesignable, + QueryPropertyScriptable, + QueryPropertyStored, + QueryPropertyEditable, + QueryPropertyUser, + CreateInstance + }; + + int static_metacall(Call, int, void **) const; + static int metacall(QObject *, Call, int, void **); + + + + + + struct { + const QMetaObject *superdata; + const char *stringdata; + const uint *data; + const void *extradata; + } d; +}; + +typedef const QMetaObject& (*QMetaObjectAccessor)(); + +struct QMetaObjectExtraData +{ + + + + const QMetaObject **objects; + + + typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); + + StaticMetacallFunction static_metacall; +}; + +inline const char *QMetaObject::className() const +{ return d.stringdata; } + +inline const QMetaObject *QMetaObject::superClass() const +{ return d.superdata; } + + + + + + + + + +# 46 "/usr/include/qt4/QtGui/qwindowdefs.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QPaintDevice; +class QWidget; +class QDialog; +class QColor; +class QPalette; + + + +class QCursor; +class QPoint; +class QSize; +class QRect; +class QPolygon; +class QPainter; +class QRegion; +class QFont; +class QFontMetrics; +class QFontInfo; +class QPen; +class QBrush; +class QMatrix; +class QPixmap; +class QBitmap; +class QMovie; +class QImage; +class QPicture; +class QPrinter; +class QTimer; +class QTime; +class QClipboard; +class QString; +class QByteArray; +class QApplication; + +template class QList; +typedef QList QWidgetList; + + + +# 115 "/usr/include/qt4/QtGui/qwindowdefs.h" +typedef struct _XDisplay Display; +typedef union _XEvent XEvent; +typedef struct _XGC *GC; +typedef struct _XRegion *Region; +typedef unsigned long WId; +# 145 "/usr/include/qt4/QtGui/qwindowdefs.h" + + + +template class QHash; +typedef QHash QWidgetMapper; + +template class QSet; +typedef QSet QWidgetSet; + + + +# 47 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtCore/qobject.h" 1 +# 48 "/usr/include/qt4/QtCore/qobject.h" +# 1 "/usr/include/qt4/QtCore/qstring.h" 1 +# 45 "/usr/include/qt4/QtCore/qstring.h" +# 1 "/usr/include/qt4/QtCore/qchar.h" 1 +# 47 "/usr/include/qt4/QtCore/qchar.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QString; + +struct QLatin1Char +{ +public: + inline explicit QLatin1Char(char c) : ch(c) {} + + + + + inline char toLatin1() const { return ch; } + inline ushort unicode() const { return ushort(uchar(ch)); } + + +private: + char ch; +}; + + +class QChar { +public: + QChar(); + + QChar(char c); + QChar(uchar c); + + QChar(QLatin1Char ch); + QChar(uchar c, uchar r); + inline QChar(ushort rc) : ucs(rc){} + QChar(short rc); + QChar(uint rc); + QChar(int rc); + enum SpecialCharacter { + Null = 0x0000, + Nbsp = 0x00a0, + ReplacementCharacter = 0xfffd, + ObjectReplacementCharacter = 0xfffc, + ByteOrderMark = 0xfeff, + ByteOrderSwapped = 0xfffe, + + + + + + + + ParagraphSeparator = 0x2029, + LineSeparator = 0x2028 + }; + QChar(SpecialCharacter sc); + + + + enum Category + { + NoCategory, + + Mark_NonSpacing, + Mark_SpacingCombining, + Mark_Enclosing, + + Number_DecimalDigit, + Number_Letter, + Number_Other, + + Separator_Space, + Separator_Line, + Separator_Paragraph, + + Other_Control, + Other_Format, + Other_Surrogate, + Other_PrivateUse, + Other_NotAssigned, + + Letter_Uppercase, + Letter_Lowercase, + Letter_Titlecase, + Letter_Modifier, + Letter_Other, + + Punctuation_Connector, + Punctuation_Dash, + Punctuation_Open, + Punctuation_Close, + Punctuation_InitialQuote, + Punctuation_FinalQuote, + Punctuation_Other, + + Symbol_Math, + Symbol_Currency, + Symbol_Modifier, + Symbol_Other, + + Punctuation_Dask = Punctuation_Dash + }; + + enum Direction + { + DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, + DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN + }; + + enum Decomposition + { + NoDecomposition, + Canonical, + Font, + NoBreak, + Initial, + Medial, + Final, + Isolated, + Circle, + Super, + Sub, + Vertical, + Wide, + Narrow, + Small, + Square, + Compat, + Fraction + + + + + }; + + enum Joining + { + OtherJoining, Dual, Right, Center + }; + + enum CombiningClass + { + Combining_BelowLeftAttached = 200, + Combining_BelowAttached = 202, + Combining_BelowRightAttached = 204, + Combining_LeftAttached = 208, + Combining_RightAttached = 210, + Combining_AboveLeftAttached = 212, + Combining_AboveAttached = 214, + Combining_AboveRightAttached = 216, + + Combining_BelowLeft = 218, + Combining_Below = 220, + Combining_BelowRight = 222, + Combining_Left = 224, + Combining_Right = 226, + Combining_AboveLeft = 228, + Combining_Above = 230, + Combining_AboveRight = 232, + + Combining_DoubleBelow = 233, + Combining_DoubleAbove = 234, + Combining_IotaSubscript = 240 + }; + + enum UnicodeVersion { + Unicode_Unassigned, + Unicode_1_1, + Unicode_2_0, + Unicode_2_1_2, + Unicode_3_0, + Unicode_3_1, + Unicode_3_2, + Unicode_4_0, + Unicode_4_1, + Unicode_5_0 + }; + + + Category category() const; + Direction direction() const; + Joining joining() const; + bool hasMirrored() const; + unsigned char combiningClass() const; + + QChar mirroredChar() const; + QString decomposition() const; + Decomposition decompositionTag() const; + + int digitValue() const; + QChar toLower() const; + QChar toUpper() const; + QChar toTitleCase() const; + QChar toCaseFolded() const; + + UnicodeVersion unicodeVersion() const; + + + + + + + char toAscii() const; + inline char toLatin1() const; + inline ushort unicode() const { return ucs; } + + + inline ushort &unicode() { return const_cast(ucs); } + + + + + static QChar fromAscii(char c); + static QChar fromLatin1(char c); + + inline bool isNull() const { return ucs == 0; } + bool isPrint() const; + bool isPunct() const; + bool isSpace() const; + bool isMark() const; + bool isLetter() const; + bool isNumber() const; + bool isLetterOrNumber() const; + bool isDigit() const; + bool isSymbol() const; + inline bool isLower() const { return category() == Letter_Lowercase; } + inline bool isUpper() const { return category() == Letter_Uppercase; } + inline bool isTitleCase() const { return category() == Letter_Titlecase; } + + inline bool isHighSurrogate() const { + return ((ucs & 0xfc00) == 0xd800); + } + inline bool isLowSurrogate() const { + return ((ucs & 0xfc00) == 0xdc00); + } + + inline uchar cell() const { return uchar(ucs & 0xff); } + inline uchar row() const { return uchar((ucs>>8)&0xff); } + inline void setCell(uchar cell); + inline void setRow(uchar row); + + static inline bool isHighSurrogate(uint ucs4) { + return ((ucs4 & 0xfffffc00) == 0xd800); + } + static inline bool isLowSurrogate(uint ucs4) { + return ((ucs4 & 0xfffffc00) == 0xdc00); + } + static inline bool requiresSurrogates(uint ucs4) { + return (ucs4 >= 0x10000); + } + static inline uint surrogateToUcs4(ushort high, ushort low) { + return (uint(high)<<10) + low - 0x35fdc00; + } + static inline uint surrogateToUcs4(QChar high, QChar low) { + return (uint(high.ucs)<<10) + low.ucs - 0x35fdc00; + } + static inline ushort highSurrogate(uint ucs4) { + return ushort((ucs4>>10) + 0xd7c0); + } + static inline ushort lowSurrogate(uint ucs4) { + return ushort(ucs4%0x400 + 0xdc00); + } + + static Category category(uint ucs4); + static Category category(ushort ucs2); + static Direction direction(uint ucs4); + static Direction direction(ushort ucs2); + static Joining joining(uint ucs4); + static Joining joining(ushort ucs2); + static unsigned char combiningClass(uint ucs4); + static unsigned char combiningClass(ushort ucs2); + + static uint mirroredChar(uint ucs4); + static ushort mirroredChar(ushort ucs2); + static Decomposition decompositionTag(uint ucs4); + + static int digitValue(uint ucs4); + static int digitValue(ushort ucs2); + static uint toLower(uint ucs4); + static ushort toLower(ushort ucs2); + static uint toUpper(uint ucs4); + static ushort toUpper(ushort ucs2); + static uint toTitleCase(uint ucs4); + static ushort toTitleCase(ushort ucs2); + static uint toCaseFolded(uint ucs4); + static ushort toCaseFolded(ushort ucs2); + + static UnicodeVersion unicodeVersion(uint ucs4); + static UnicodeVersion unicodeVersion(ushort ucs2); + + static UnicodeVersion currentUnicodeVersion(); + + static QString decomposition(uint ucs4); +# 357 "/usr/include/qt4/QtCore/qchar.h" +private: + + + + + ushort ucs; +} + + + +; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QChar)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QChar"; } }; + +inline QChar::QChar() : ucs(0) {} + + + + +inline char QChar::toLatin1() const { return ucs > 0xff ? '\0' : char(ucs); } + +inline QChar QChar::fromLatin1(char c) { return QChar(ushort(uchar(c))); } + +inline QChar::QChar(uchar c, uchar r) : ucs(ushort((r << 8) | c)){} +inline QChar::QChar(short rc) : ucs(ushort(rc)){} +inline QChar::QChar(uint rc) : ucs(ushort(rc & 0xffff)){} +inline QChar::QChar(int rc) : ucs(ushort(rc & 0xffff)){} +inline QChar::QChar(SpecialCharacter s) : ucs(ushort(s)) {} +inline QChar::QChar(QLatin1Char ch) : ucs(ch.unicode()) {} + +inline void QChar::setCell(uchar acell) +{ ucs = ushort((ucs & 0xff00) + acell); } +inline void QChar::setRow(uchar arow) +{ ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); } + +inline bool operator==(QChar c1, QChar c2) { return c1.unicode() == c2.unicode(); } +inline bool operator!=(QChar c1, QChar c2) { return c1.unicode() != c2.unicode(); } +inline bool operator<=(QChar c1, QChar c2) { return c1.unicode() <= c2.unicode(); } +inline bool operator>=(QChar c1, QChar c2) { return c1.unicode() >= c2.unicode(); } +inline bool operator<(QChar c1, QChar c2) { return c1.unicode() < c2.unicode(); } +inline bool operator>(QChar c1, QChar c2) { return c1.unicode() > c2.unicode(); } + + + QDataStream &operator<<(QDataStream &, const QChar &); + QDataStream &operator>>(QDataStream &, QChar &); + + + + + +# 46 "/usr/include/qt4/QtCore/qstring.h" 2 +# 1 "/usr/include/qt4/QtCore/qbytearray.h" 1 +# 45 "/usr/include/qt4/QtCore/qbytearray.h" +# 1 "/usr/include/qt4/QtCore/qatomic.h" 1 +# 46 "/usr/include/qt4/QtCore/qatomic.h" +# 1 "/usr/include/qt4/QtCore/qbasicatomic.h" 1 +# 47 "/usr/include/qt4/QtCore/qbasicatomic.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QBasicAtomicInt +{ +public: + + + + + + volatile int _q_value; + + + + inline bool operator==(int value) const + { + return _q_value == value; + } + + inline bool operator!=(int value) const + { + return _q_value != value; + } + + inline bool operator!() const + { + return _q_value == 0; + } + + inline operator int() const + { + return _q_value; + } + + inline QBasicAtomicInt &operator=(int value) + { + _q_value = value; + return *this; + } + + + + static bool isReferenceCountingNative(); + static bool isReferenceCountingWaitFree(); + + bool ref(); + bool deref(); + + static bool isTestAndSetNative(); + static bool isTestAndSetWaitFree(); + + bool testAndSetRelaxed(int expectedValue, int newValue); + bool testAndSetAcquire(int expectedValue, int newValue); + bool testAndSetRelease(int expectedValue, int newValue); + bool testAndSetOrdered(int expectedValue, int newValue); + + static bool isFetchAndStoreNative(); + static bool isFetchAndStoreWaitFree(); + + int fetchAndStoreRelaxed(int newValue); + int fetchAndStoreAcquire(int newValue); + int fetchAndStoreRelease(int newValue); + int fetchAndStoreOrdered(int newValue); + + static bool isFetchAndAddNative(); + static bool isFetchAndAddWaitFree(); + + int fetchAndAddRelaxed(int valueToAdd); + int fetchAndAddAcquire(int valueToAdd); + int fetchAndAddRelease(int valueToAdd); + int fetchAndAddOrdered(int valueToAdd); +}; + +template +class QBasicAtomicPointer +{ +public: +# 139 "/usr/include/qt4/QtCore/qbasicatomic.h" + T * volatile _q_value; + + + + inline bool operator==(T *value) const + { + return _q_value == value; + } + + inline bool operator!=(T *value) const + { + return !operator==(value); + } + + inline bool operator!() const + { + return operator==(0); + } + + inline operator T *() const + { + return _q_value; + } + + inline T *operator->() const + { + return _q_value; + } + + inline QBasicAtomicPointer &operator=(T *value) + { + _q_value = value; + return *this; + } + + + + static bool isTestAndSetNative(); + static bool isTestAndSetWaitFree(); + + bool testAndSetRelaxed(T *expectedValue, T *newValue); + bool testAndSetAcquire(T *expectedValue, T *newValue); + bool testAndSetRelease(T *expectedValue, T *newValue); + bool testAndSetOrdered(T *expectedValue, T *newValue); + + static bool isFetchAndStoreNative(); + static bool isFetchAndStoreWaitFree(); + + T *fetchAndStoreRelaxed(T *newValue); + T *fetchAndStoreAcquire(T *newValue); + T *fetchAndStoreRelease(T *newValue); + T *fetchAndStoreOrdered(T *newValue); + + static bool isFetchAndAddNative(); + static bool isFetchAndAddWaitFree(); + + T *fetchAndAddRelaxed(qptrdiff valueToAdd); + T *fetchAndAddAcquire(qptrdiff valueToAdd); + T *fetchAndAddRelease(qptrdiff valueToAdd); + T *fetchAndAddOrdered(qptrdiff valueToAdd); +}; + + + + + + + + + + + + + +# 1 "/usr/include/qt4/QtCore/qatomic_arch.h" 1 +# 45 "/usr/include/qt4/QtCore/qatomic_arch.h" + +# 88 "/usr/include/qt4/QtCore/qatomic_arch.h" +# 1 "/usr/include/qt4/QtCore/qatomic_x86_64.h" 1 +# 45 "/usr/include/qt4/QtCore/qatomic_x86_64.h" + + + + + + + +inline bool QBasicAtomicInt::isReferenceCountingNative() +{ return true; } +inline bool QBasicAtomicInt::isReferenceCountingWaitFree() +{ return true; } + + + + +inline bool QBasicAtomicInt::isTestAndSetNative() +{ return true; } +inline bool QBasicAtomicInt::isTestAndSetWaitFree() +{ return true; } + + + + +inline bool QBasicAtomicInt::isFetchAndStoreNative() +{ return true; } +inline bool QBasicAtomicInt::isFetchAndStoreWaitFree() +{ return true; } + + + + +inline bool QBasicAtomicInt::isFetchAndAddNative() +{ return true; } +inline bool QBasicAtomicInt::isFetchAndAddWaitFree() +{ return true; } + + + + +template +inline bool QBasicAtomicPointer::isTestAndSetNative() +{ return true; } +template +inline bool QBasicAtomicPointer::isTestAndSetWaitFree() +{ return true; } + + + + +template +inline bool QBasicAtomicPointer::isFetchAndStoreNative() +{ return true; } +template +inline bool QBasicAtomicPointer::isFetchAndStoreWaitFree() +{ return true; } + + + + +template +inline bool QBasicAtomicPointer::isFetchAndAddNative() +{ return true; } +template +inline bool QBasicAtomicPointer::isFetchAndAddWaitFree() +{ return true; } + + + +inline bool QBasicAtomicInt::ref() +{ + unsigned char ret; + asm volatile("lock\n" + "incl %0\n" + "setne %1" + : "=m" (_q_value), "=qm" (ret) + : "m" (_q_value) + : "memory"); + return ret != 0; +} + +inline bool QBasicAtomicInt::deref() +{ + unsigned char ret; + asm volatile("lock\n" + "decl %0\n" + "setne %1" + : "=m" (_q_value), "=qm" (ret) + : "m" (_q_value) + : "memory"); + return ret != 0; +} + +inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue) +{ + unsigned char ret; + asm volatile("lock\n" + "cmpxchgl %3,%2\n" + "sete %1\n" + : "=a" (newValue), "=qm" (ret), "+m" (_q_value) + : "r" (newValue), "0" (expectedValue) + : "memory"); + return ret != 0; +} + +inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue) +{ + asm volatile("xchgl %0,%1" + : "=r" (newValue), "+m" (_q_value) + : "0" (newValue) + : "memory"); + return newValue; +} + +inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd) +{ + asm volatile("lock\n" + "xaddl %0,%1" + : "=r" (valueToAdd), "+m" (_q_value) + : "0" (valueToAdd) + : "memory"); + return valueToAdd; +} + +template +inline bool QBasicAtomicPointer::testAndSetOrdered(T *expectedValue, T *newValue) +{ + unsigned char ret; + asm volatile("lock\n" + "cmpxchg %3,%2\n" + "sete %1\n" + : "=a" (newValue), "=qm" (ret), "+m" (_q_value) + : "r" (newValue), "0" (expectedValue) + : "memory"); + return ret != 0; +} + +template +inline T *QBasicAtomicPointer::fetchAndStoreOrdered(T *newValue) +{ + asm volatile("xchg %0,%1" + : "=r" (newValue), "+m" (_q_value) + : "0" (newValue) + : "memory"); + return newValue; +} + +template +inline T *QBasicAtomicPointer::fetchAndAddOrdered(qptrdiff valueToAdd) +{ + asm volatile("lock\n" + "xadd %0,%1" + : "=r" (valueToAdd), "+m" (_q_value) + : "0" (valueToAdd * sizeof(T)) + : "memory"); + return reinterpret_cast(valueToAdd); +} +# 260 "/usr/include/qt4/QtCore/qatomic_x86_64.h" +inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) +{ + return testAndSetOrdered(expectedValue, newValue); +} + +inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) +{ + return testAndSetOrdered(expectedValue, newValue); +} + +inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) +{ + return testAndSetOrdered(expectedValue, newValue); +} + +inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) +{ + return fetchAndStoreOrdered(newValue); +} + +inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) +{ + return fetchAndStoreOrdered(newValue); +} + +inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) +{ + return fetchAndStoreOrdered(newValue); +} + +inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) +{ + return fetchAndAddOrdered(valueToAdd); +} + +inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) +{ + return fetchAndAddOrdered(valueToAdd); +} + +inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) +{ + return fetchAndAddOrdered(valueToAdd); +} + +template +inline bool QBasicAtomicPointer::testAndSetRelaxed(T *expectedValue, T *newValue) +{ + return testAndSetOrdered(expectedValue, newValue); +} + +template +inline bool QBasicAtomicPointer::testAndSetAcquire(T *expectedValue, T *newValue) +{ + return testAndSetOrdered(expectedValue, newValue); +} + +template +inline bool QBasicAtomicPointer::testAndSetRelease(T *expectedValue, T *newValue) +{ + return testAndSetOrdered(expectedValue, newValue); +} + +template +inline T *QBasicAtomicPointer::fetchAndStoreRelaxed(T *newValue) +{ + return fetchAndStoreOrdered(newValue); +} + +template +inline T *QBasicAtomicPointer::fetchAndStoreAcquire(T *newValue) +{ + return fetchAndStoreOrdered(newValue); +} + +template +inline T *QBasicAtomicPointer::fetchAndStoreRelease(T *newValue) +{ + return fetchAndStoreOrdered(newValue); +} + +template +inline T *QBasicAtomicPointer::fetchAndAddRelaxed(qptrdiff valueToAdd) +{ + return fetchAndAddOrdered(valueToAdd); +} + +template +inline T *QBasicAtomicPointer::fetchAndAddAcquire(qptrdiff valueToAdd) +{ + return fetchAndAddOrdered(valueToAdd); +} + +template +inline T *QBasicAtomicPointer::fetchAndAddRelease(qptrdiff valueToAdd) +{ + return fetchAndAddOrdered(valueToAdd); +} + + + + +# 89 "/usr/include/qt4/QtCore/qatomic_arch.h" 2 +# 105 "/usr/include/qt4/QtCore/qatomic_arch.h" + +# 214 "/usr/include/qt4/QtCore/qbasicatomic.h" 2 +# 47 "/usr/include/qt4/QtCore/qatomic.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + +class QAtomicInt : public QBasicAtomicInt +{ +public: + inline QAtomicInt(int value = 0) + { + _q_value = value; + } + inline QAtomicInt(const QAtomicInt &other) + { + _q_value = other._q_value; + } + + inline QAtomicInt &operator=(int value) + { + (void) QBasicAtomicInt::operator=(value); + return *this; + } + + inline QAtomicInt &operator=(const QAtomicInt &other) + { + (void) QBasicAtomicInt::operator=(other); + return *this; + } +# 115 "/usr/include/qt4/QtCore/qatomic.h" +}; + + +template +class QAtomicPointer : public QBasicAtomicPointer +{ +public: + inline QAtomicPointer(T *value = 0) + { + QBasicAtomicPointer::_q_value = value; + } + inline QAtomicPointer(const QAtomicPointer &other) + { + QBasicAtomicPointer::_q_value = other._q_value; + } + + inline QAtomicPointer &operator=(T *value) + { + (void) QBasicAtomicPointer::operator=(value); + return *this; + } + + inline QAtomicPointer &operator=(const QAtomicPointer &other) + { + (void) QBasicAtomicPointer::operator=(other); + return *this; + } +# 174 "/usr/include/qt4/QtCore/qatomic.h" +}; + + + + + + + +template +inline void qAtomicAssign(T *&d, T *x) +{ + if (d == x) + return; + x->ref.ref(); + if (!d->ref.deref()) + delete d; + d = x; +} +# 201 "/usr/include/qt4/QtCore/qatomic.h" +template +inline void qAtomicDetach(T *&d) +{ + if (d->ref == 1) + return; + T *x = d; + d = new T(*d); + if (!x->ref.deref()) + delete x; +} + + + +# 46 "/usr/include/qt4/QtCore/qbytearray.h" 2 + + +# 1 "/usr/include/string.h" 1 3 4 +# 27 "/usr/include/string.h" 3 4 + +# 27 "/usr/include/string.h" 3 4 +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4 +# 33 "/usr/include/string.h" 2 3 4 + + + + + + + + + +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 90 "/usr/include/string.h" 3 4 +} + + + + + + + + + + +extern "C++" void *rawmemchr (void *__s, int __c) + throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + + + +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (2))); + +# 162 "/usr/include/string.h" 3 4 +extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); + + + + +extern char *strdup (const char *__s) + throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 206 "/usr/include/string.h" 3 4 + + + +extern "C++" +{ +extern char *strchr (char *__s, int __c) + throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 229 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 256 "/usr/include/string.h" 3 4 +} + + + + + + + + + + +extern "C++" char *strchrnul (char *__s, int __c) + throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + + + +extern size_t strcspn (const char *__s, const char *__reject) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 308 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 335 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + throw () __attribute__ ((__nonnull__ (2))); + + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + throw () __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + throw () __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 377 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern size_t strlen (const char *__s) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern char *strerror (int __errnum) throw (); + +# 433 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))) ; + + + + + +extern char *strerror_l (int __errnum, __locale_t __l) throw (); + + + + + +extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 482 "/usr/include/string.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 510 "/usr/include/string.h" 3 4 +} + + + + + + + +extern int ffs (int __i) throw () __attribute__ ((__const__)); + + + + +extern int ffsl (long int __l) throw () __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + throw () __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, + __locale_t __loc) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, __locale_t __loc) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) throw (); + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" char *basename (char *__filename) + throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 658 "/usr/include/string.h" 3 4 +} +# 49 "/usr/include/qt4/QtCore/qbytearray.h" 2 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4 +# 50 "/usr/include/qt4/QtCore/qbytearray.h" 2 +# 67 "/usr/include/qt4/QtCore/qbytearray.h" + + + + + +# 71 "/usr/include/qt4/QtCore/qbytearray.h" +typedef QtValidLicenseForCoreModule QtCoreModule; + + + + + + char *qstrdup(const char *); + +inline uint qstrlen(const char *str) +{ return str ? uint(strlen(str)) : 0; } + +inline uint qstrnlen(const char *str, uint maxlen) +{ + uint length = 0; + if (str) { + while (length < maxlen && *str++) + length++; + } + return length; +} + + char *qstrcpy(char *dst, const char *src); + char *qstrncpy(char *dst, const char *src, uint len); + + int qstrcmp(const char *str1, const char *str2); + int qstrcmp(const QByteArray &str1, const QByteArray &str2); + int qstrcmp(const QByteArray &str1, const char *str2); +static inline int qstrcmp(const char *str1, const QByteArray &str2) +{ return -qstrcmp(str2, str1); } + +inline int qstrncmp(const char *str1, const char *str2, uint len) +{ + return (str1 && str2) ? strncmp(str1, str2, len) + : (str1 ? 1 : (str2 ? -1 : 0)); +} + int qstricmp(const char *, const char *); + int qstrnicmp(const char *, const char *, uint len); + + + int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); + int qsnprintf(char *str, size_t n, const char *fmt, ...); +# 128 "/usr/include/qt4/QtCore/qbytearray.h" + quint16 qChecksum(const char *s, uint len); + +class QByteRef; +class QString; +class QDataStream; +template class QList; + +class QByteArray +{ +private: + struct Data { + QBasicAtomicInt ref; + int alloc, size; + + + + char *data; + char array[1]; + }; + +public: + inline QByteArray(); + QByteArray(const char *); + QByteArray(const char *, int size); + QByteArray(int size, char c); + QByteArray(int size, Qt::Initialization); + inline QByteArray(const QByteArray &); + inline ~QByteArray(); + + QByteArray &operator=(const QByteArray &); + QByteArray &operator=(const char *str); + + inline QByteArray &operator=(QByteArray &&other) + { qSwap(d, other.d); return *this; } + + + inline void swap(QByteArray &other) { qSwap(d, other.d); } + + inline int size() const; + bool isEmpty() const; + void resize(int size); + + QByteArray &fill(char c, int size = -1); + + int capacity() const; + void reserve(int size); + void squeeze(); + + + operator const char *() const; + operator const void *() const; + + char *data(); + const char *data() const; + inline const char *constData() const; + inline void detach(); + bool isDetached() const; + inline bool isSharedWith(const QByteArray &other) const { return d == other.d; } + void clear(); + + + + + + + char at(int i) const; + char operator[](int i) const; + char operator[](uint i) const; + + QByteRef operator[](int i); + QByteRef operator[](uint i); + + int indexOf(char c, int from = 0) const; + int indexOf(const char *c, int from = 0) const; + int indexOf(const QByteArray &a, int from = 0) const; + int lastIndexOf(char c, int from = -1) const; + int lastIndexOf(const char *c, int from = -1) const; + int lastIndexOf(const QByteArray &a, int from = -1) const; + + QBool contains(char c) const; + QBool contains(const char *a) const; + QBool contains(const QByteArray &a) const; + int count(char c) const; + int count(const char *a) const; + int count(const QByteArray &a) const; + + QByteArray left(int len) const; + QByteArray right(int len) const; + QByteArray mid(int index, int len = -1) const; + + bool startsWith(const QByteArray &a) const; + bool startsWith(char c) const; + bool startsWith(const char *c) const; + + bool endsWith(const QByteArray &a) const; + bool endsWith(char c) const; + bool endsWith(const char *c) const; + + void truncate(int pos); + void chop(int n); + + QByteArray toLower() const; + QByteArray toUpper() const; + + QByteArray trimmed() const; + QByteArray simplified() const; + QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; + QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; +# 244 "/usr/include/qt4/QtCore/qbytearray.h" + QByteArray &prepend(char c); + QByteArray &prepend(const char *s); + QByteArray &prepend(const char *s, int len); + QByteArray &prepend(const QByteArray &a); + QByteArray &append(char c); + QByteArray &append(const char *s); + QByteArray &append(const char *s, int len); + QByteArray &append(const QByteArray &a); + QByteArray &insert(int i, char c); + QByteArray &insert(int i, const char *s); + QByteArray &insert(int i, const char *s, int len); + QByteArray &insert(int i, const QByteArray &a); + QByteArray &remove(int index, int len); + QByteArray &replace(int index, int len, const char *s); + QByteArray &replace(int index, int len, const char *s, int alen); + QByteArray &replace(int index, int len, const QByteArray &s); + QByteArray &replace(char before, const char *after); + QByteArray &replace(char before, const QByteArray &after); + QByteArray &replace(const char *before, const char *after); + QByteArray &replace(const char *before, int bsize, const char *after, int asize); + QByteArray &replace(const QByteArray &before, const QByteArray &after); + QByteArray &replace(const QByteArray &before, const char *after); + QByteArray &replace(const char *before, const QByteArray &after); + QByteArray &replace(char before, char after); + QByteArray &operator+=(char c); + QByteArray &operator+=(const char *s); + QByteArray &operator+=(const QByteArray &a); + + QList split(char sep) const; + + QByteArray repeated(int times) const; + + + QByteArray &append(const QString &s); + QByteArray &insert(int i, const QString &s); + QByteArray &replace(const QString &before, const char *after); + QByteArray &replace(char c, const QString &after); + QByteArray &replace(const QString &before, const QByteArray &after); + + QByteArray &operator+=(const QString &s); + int indexOf(const QString &s, int from = 0) const; + int lastIndexOf(const QString &s, int from = -1) const; + + + inline bool operator==(const QString &s2) const; + inline bool operator!=(const QString &s2) const; + inline bool operator<(const QString &s2) const; + inline bool operator>(const QString &s2) const; + inline bool operator<=(const QString &s2) const; + inline bool operator>=(const QString &s2) const; + + + short toShort(bool *ok = 0, int base = 10) const; + ushort toUShort(bool *ok = 0, int base = 10) const; + int toInt(bool *ok = 0, int base = 10) const; + uint toUInt(bool *ok = 0, int base = 10) const; + long toLong(bool *ok = 0, int base = 10) const; + ulong toULong(bool *ok = 0, int base = 10) const; + qlonglong toLongLong(bool *ok = 0, int base = 10) const; + qulonglong toULongLong(bool *ok = 0, int base = 10) const; + float toFloat(bool *ok = 0) const; + double toDouble(bool *ok = 0) const; + QByteArray toBase64() const; + QByteArray toHex() const; + QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), + const QByteArray &include = QByteArray(), + char percent = '%') const; + + QByteArray &setNum(short, int base = 10); + QByteArray &setNum(ushort, int base = 10); + QByteArray &setNum(int, int base = 10); + QByteArray &setNum(uint, int base = 10); + QByteArray &setNum(qlonglong, int base = 10); + QByteArray &setNum(qulonglong, int base = 10); + QByteArray &setNum(float, char f = 'g', int prec = 6); + QByteArray &setNum(double, char f = 'g', int prec = 6); + QByteArray &setRawData(const char *a, uint n); + + static QByteArray number(int, int base = 10); + static QByteArray number(uint, int base = 10); + static QByteArray number(qlonglong, int base = 10); + static QByteArray number(qulonglong, int base = 10); + static QByteArray number(double, char f = 'g', int prec = 6); + static QByteArray fromRawData(const char *, int size); + static QByteArray fromBase64(const QByteArray &base64); + static QByteArray fromHex(const QByteArray &hexEncoded); + static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent = '%'); + + + typedef char *iterator; + typedef const char *const_iterator; + typedef iterator Iterator; + typedef const_iterator ConstIterator; + iterator begin(); + const_iterator begin() const; + const_iterator constBegin() const; + iterator end(); + const_iterator end() const; + const_iterator constEnd() const; + + + typedef const char & const_reference; + typedef char & reference; + typedef char value_type; + void push_back(char c); + void push_back(const char *c); + void push_back(const QByteArray &a); + void push_front(char c); + void push_front(const char *c); + void push_front(const QByteArray &a); + + inline int count() const { return d->size; } + int length() const { return d->size; } + bool isNull() const; +# 382 "/usr/include/qt4/QtCore/qbytearray.h" +private: + operator QNoImplicitBoolCast() const; + static Data shared_null; + static Data shared_empty; + Data *d; + QByteArray(Data *dd, int , int ) : d(dd) {} + void realloc(int alloc); + void expand(int i); + QByteArray nulTerminated() const; + + friend class QByteRef; + friend class QString; + friend QByteArray qUncompress(const uchar *data, int nbytes); +public: + typedef Data * DataPtr; + inline DataPtr &data_ptr() { return d; } +}; + +inline QByteArray::QByteArray(): d(&shared_null) { d->ref.ref(); } +inline QByteArray::~QByteArray() { if (!d->ref.deref()) qFree(d); } +inline int QByteArray::size() const +{ return d->size; } +# 413 "/usr/include/qt4/QtCore/qbytearray.h" +inline char QByteArray::at(int i) const +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qbytearray.h",414) : qt_noop()); return d->data[i]; } +inline char QByteArray::operator[](int i) const +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qbytearray.h",416) : qt_noop()); return d->data[i]; } +inline char QByteArray::operator[](uint i) const +{ ((!(i < uint(size()))) ? qt_assert("i < uint(size())","/usr/include/qt4/QtCore/qbytearray.h",418) : qt_noop()); return d->data[i]; } + + +inline bool QByteArray::isEmpty() const +{ return d->size == 0; } + +inline QByteArray::operator const char *() const +{ return d->data; } +inline QByteArray::operator const void *() const +{ return d->data; } + +inline char *QByteArray::data() +{ detach(); return d->data; } +inline const char *QByteArray::data() const +{ return d->data; } +inline const char *QByteArray::constData() const +{ return d->data; } +inline void QByteArray::detach() +{ if (d->ref != 1 || d->data != d->array) realloc(d->size); } +inline bool QByteArray::isDetached() const +{ return d->ref == 1; } +inline QByteArray::QByteArray(const QByteArray &a) : d(a.d) +{ d->ref.ref(); } + + + + + +inline int QByteArray::capacity() const +{ return d->alloc; } + +inline void QByteArray::reserve(int asize) +{ if (d->ref != 1 || asize > d->alloc) realloc(asize); } + +inline void QByteArray::squeeze() +{ if (d->size < d->alloc) realloc(d->size); } + +class QByteRef { + QByteArray &a; + int i; + inline QByteRef(QByteArray &array, int idx) + : a(array),i(idx) {} + friend class QByteArray; +public: + + + + + inline operator char() const + { return i < a.d->size ? a.d->data[i] : char(0); } + + inline QByteRef &operator=(char c) + { if (i >= a.d->size) a.expand(i); else a.detach(); + a.d->data[i] = c; return *this; } + inline QByteRef &operator=(const QByteRef &c) + { if (i >= a.d->size) a.expand(i); else a.detach(); + a.d->data[i] = c.a.d->data[c.i]; return *this; } + inline bool operator==(char c) const + { return a.d->data[i] == c; } + inline bool operator!=(char c) const + { return a.d->data[i] != c; } + inline bool operator>(char c) const + { return a.d->data[i] > c; } + inline bool operator>=(char c) const + { return a.d->data[i] >= c; } + inline bool operator<(char c) const + { return a.d->data[i] < c; } + inline bool operator<=(char c) const + { return a.d->data[i] <= c; } +}; + +inline QByteRef QByteArray::operator[](int i) +{ ((!(i >= 0)) ? qt_assert("i >= 0","/usr/include/qt4/QtCore/qbytearray.h",490) : qt_noop()); return QByteRef(*this, i); } +inline QByteRef QByteArray::operator[](uint i) +{ return QByteRef(*this, i); } +inline QByteArray::iterator QByteArray::begin() +{ detach(); return d->data; } +inline QByteArray::const_iterator QByteArray::begin() const +{ return d->data; } +inline QByteArray::const_iterator QByteArray::constBegin() const +{ return d->data; } +inline QByteArray::iterator QByteArray::end() +{ detach(); return d->data + d->size; } +inline QByteArray::const_iterator QByteArray::end() const +{ return d->data + d->size; } +inline QByteArray::const_iterator QByteArray::constEnd() const +{ return d->data + d->size; } +inline QByteArray &QByteArray::operator+=(char c) +{ return append(c); } +inline QByteArray &QByteArray::operator+=(const char *s) +{ return append(s); } +inline QByteArray &QByteArray::operator+=(const QByteArray &a) +{ return append(a); } +inline void QByteArray::push_back(char c) +{ append(c); } +inline void QByteArray::push_back(const char *c) +{ append(c); } +inline void QByteArray::push_back(const QByteArray &a) +{ append(a); } +inline void QByteArray::push_front(char c) +{ prepend(c); } +inline void QByteArray::push_front(const char *c) +{ prepend(c); } +inline void QByteArray::push_front(const QByteArray &a) +{ prepend(a); } +inline QBool QByteArray::contains(const QByteArray &a) const +{ return QBool(indexOf(a) != -1); } +inline QBool QByteArray::contains(char c) const +{ return QBool(indexOf(c) != -1); } +inline bool operator==(const QByteArray &a1, const QByteArray &a2) +{ return (a1.size() == a2.size()) && (memcmp(a1.constData(), a2.constData(), a1.size())==0); } +inline bool operator==(const QByteArray &a1, const char *a2) +{ return a2 ? qstrcmp(a1,a2) == 0 : a1.isEmpty(); } +inline bool operator==(const char *a1, const QByteArray &a2) +{ return a1 ? qstrcmp(a1,a2) == 0 : a2.isEmpty(); } +inline bool operator!=(const QByteArray &a1, const QByteArray &a2) +{ return !(a1==a2); } +inline bool operator!=(const QByteArray &a1, const char *a2) +{ return a2 ? qstrcmp(a1,a2) != 0 : !a1.isEmpty(); } +inline bool operator!=(const char *a1, const QByteArray &a2) +{ return a1 ? qstrcmp(a1,a2) != 0 : !a2.isEmpty(); } +inline bool operator<(const QByteArray &a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) < 0; } + inline bool operator<(const QByteArray &a1, const char *a2) +{ return qstrcmp(a1, a2) < 0; } +inline bool operator<(const char *a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) < 0; } +inline bool operator<=(const QByteArray &a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) <= 0; } +inline bool operator<=(const QByteArray &a1, const char *a2) +{ return qstrcmp(a1, a2) <= 0; } +inline bool operator<=(const char *a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) <= 0; } +inline bool operator>(const QByteArray &a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) > 0; } +inline bool operator>(const QByteArray &a1, const char *a2) +{ return qstrcmp(a1, a2) > 0; } +inline bool operator>(const char *a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) > 0; } +inline bool operator>=(const QByteArray &a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) >= 0; } +inline bool operator>=(const QByteArray &a1, const char *a2) +{ return qstrcmp(a1, a2) >= 0; } +inline bool operator>=(const char *a1, const QByteArray &a2) +{ return qstrcmp(a1, a2) >= 0; } + +inline const QByteArray operator+(const QByteArray &a1, const QByteArray &a2) +{ return QByteArray(a1) += a2; } +inline const QByteArray operator+(const QByteArray &a1, const char *a2) +{ return QByteArray(a1) += a2; } +inline const QByteArray operator+(const QByteArray &a1, char a2) +{ return QByteArray(a1) += a2; } +inline const QByteArray operator+(const char *a1, const QByteArray &a2) +{ return QByteArray(a1) += a2; } +inline const QByteArray operator+(char a1, const QByteArray &a2) +{ return QByteArray(&a1, 1) += a2; } + +inline QBool QByteArray::contains(const char *c) const +{ return QBool(indexOf(c) != -1); } +inline QByteArray &QByteArray::replace(char before, const char *c) +{ return replace(&before, 1, c, qstrlen(c)); } +inline QByteArray &QByteArray::replace(const QByteArray &before, const char *c) +{ return replace(before.constData(), before.size(), c, qstrlen(c)); } +inline QByteArray &QByteArray::replace(const char *before, const char *after) +{ return replace(before, qstrlen(before), after, qstrlen(after)); } + +inline QByteArray &QByteArray::setNum(short n, int base) +{ return setNum(qlonglong(n), base); } +inline QByteArray &QByteArray::setNum(ushort n, int base) +{ return setNum(qulonglong(n), base); } +inline QByteArray &QByteArray::setNum(int n, int base) +{ return setNum(qlonglong(n), base); } +inline QByteArray &QByteArray::setNum(uint n, int base) +{ return setNum(qulonglong(n), base); } +inline QByteArray &QByteArray::setNum(float n, char f, int prec) +{ return setNum(double(n),f,prec); } + + + + QDataStream &operator<<(QDataStream &, const QByteArray &); + QDataStream &operator>>(QDataStream &, QByteArray &); + + + + QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel = -1); + QByteArray qUncompress(const uchar* data, int nbytes); +inline QByteArray qCompress(const QByteArray& data, int compressionLevel = -1) +{ return qCompress(reinterpret_cast(data.constData()), data.size(), compressionLevel); } +inline QByteArray qUncompress(const QByteArray& data) +{ return qUncompress(reinterpret_cast(data.constData()), data.size()); } + + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QByteArray)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QByteArray"; } }; +template <> inline bool qIsDetached(QByteArray &t) { return t.isDetached(); } template <> inline void qSwap(QByteArray &value1, QByteArray &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QByteArray>(::QByteArray &value1, ::QByteArray &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } + + + + +# 47 "/usr/include/qt4/QtCore/qstring.h" 2 +# 58 "/usr/include/qt4/QtCore/qstring.h" +typedef std::basic_string QStdWString; +# 69 "/usr/include/qt4/QtCore/qstring.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QCharRef; +class QRegExp; +class QStringList; +class QTextCodec; +class QLatin1String; +class QStringRef; +template class QVector; + +class QString +{ +public: + inline QString(); + QString(const QChar *unicode, int size); + explicit QString(const QChar *unicode); + QString(QChar c); + QString(int size, QChar c); + inline QString(const QLatin1String &latin1); + inline QString(const QString &); + inline ~QString(); + QString &operator=(QChar c); + QString &operator=(const QString &); + inline QString &operator=(const QLatin1String &); + + inline QString &operator=(QString &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QString &other) { qSwap(d, other.d); } + inline int size() const { return d->size; } + inline int count() const { return d->size; } + inline int length() const; + inline bool isEmpty() const; + void resize(int size); + + QString &fill(QChar c, int size = -1); + void truncate(int pos); + void chop(int n); + + int capacity() const; + inline void reserve(int size); + inline void squeeze() { if (d->size < d->alloc || d->ref != 1) realloc(); d->capacity = 0;} + + inline const QChar *unicode() const; + inline QChar *data(); + inline const QChar *data() const; + inline const QChar *constData() const; + + inline void detach(); + inline bool isDetached() const; + inline bool isSharedWith(const QString &other) const { return d == other.d; } + void clear(); + + inline const QChar at(int i) const; + const QChar operator[](int i) const; + QCharRef operator[](int i); + const QChar operator[](uint i) const; + QCharRef operator[](uint i); + + QString arg(qlonglong a, int fieldwidth=0, int base=10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(qulonglong a, int fieldwidth=0, int base=10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(long a, int fieldwidth=0, int base=10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(ulong a, int fieldwidth=0, int base=10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(int a, int fieldWidth = 0, int base = 10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(uint a, int fieldWidth = 0, int base = 10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(short a, int fieldWidth = 0, int base = 10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(ushort a, int fieldWidth = 0, int base = 10, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(char a, int fieldWidth = 0, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(QChar a, int fieldWidth = 0, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a, int fieldWidth = 0, + const QChar &fillChar = QLatin1Char(' ')) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6, + const QString &a7) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6, + const QString &a7, const QString &a8) const __attribute__ ((warn_unused_result)); + QString arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6, + const QString &a7, const QString &a8, const QString &a9) const __attribute__ ((warn_unused_result)); + + QString &vsprintf(const char *format, va_list ap) + + __attribute__ ((format (printf, 2, 0))) + + ; + QString &sprintf(const char *format, ...) + + __attribute__ ((format (printf, 2, 3))) + + ; + + int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int indexOf(const QLatin1String &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int indexOf(const QStringRef &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(const QLatin1String &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(const QStringRef &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + inline QBool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + inline QBool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + inline QBool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + + int indexOf(const QRegExp &, int from = 0) const; + int lastIndexOf(const QRegExp &, int from = -1) const; + inline QBool contains(const QRegExp &rx) const { return QBool(indexOf(rx) != -1); } + int count(const QRegExp &) const; + + int indexOf(QRegExp &, int from = 0) const; + int lastIndexOf(QRegExp &, int from = -1) const; + inline QBool contains(QRegExp &rx) const { return QBool(indexOf(rx) != -1); } + + + enum SectionFlag { + SectionDefault = 0x00, + SectionSkipEmpty = 0x01, + SectionIncludeLeadingSep = 0x02, + SectionIncludeTrailingSep = 0x04, + SectionCaseInsensitiveSeps = 0x08 + }; + typedef QFlags SectionFlags; + + QString section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; + QString section(const QString &in_sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; + + QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; + + + QString left(int n) const __attribute__ ((warn_unused_result)); + QString right(int n) const __attribute__ ((warn_unused_result)); + QString mid(int position, int n = -1) const __attribute__ ((warn_unused_result)); + QStringRef leftRef(int n) const __attribute__ ((warn_unused_result)); + QStringRef rightRef(int n) const __attribute__ ((warn_unused_result)); + QStringRef midRef(int position, int n = -1) const __attribute__ ((warn_unused_result)); + + bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool startsWith(const QLatin1String &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool startsWith(const QChar &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(const QLatin1String &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(const QChar &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const __attribute__ ((warn_unused_result)); + QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const __attribute__ ((warn_unused_result)); + + QString toLower() const __attribute__ ((warn_unused_result)); + QString toUpper() const __attribute__ ((warn_unused_result)); + QString toCaseFolded() const __attribute__ ((warn_unused_result)); + + QString trimmed() const __attribute__ ((warn_unused_result)); + QString simplified() const __attribute__ ((warn_unused_result)); + + QString &insert(int i, QChar c); + QString &insert(int i, const QChar *uc, int len); + inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); } + QString &insert(int i, const QLatin1String &s); + QString &append(QChar c); + QString &append(const QString &s); + QString &append(const QStringRef &s); + QString &append(const QLatin1String &s); + inline QString &prepend(QChar c) { return insert(0, c); } + inline QString &prepend(const QString &s) { return insert(0, s); } + inline QString &prepend(const QLatin1String &s) { return insert(0, s); } + + inline QString &operator+=(QChar c) { + if (d->ref != 1 || d->size + 1 > d->alloc) + realloc(grow(d->size + 1)); + d->data[d->size++] = c.unicode(); + d->data[d->size] = '\0'; + return *this; + } + + inline QString &operator+=(QChar::SpecialCharacter c) { return append(QChar(c)); } + inline QString &operator+=(const QString &s) { return append(s); } + inline QString &operator+=(const QStringRef &s) { return append(s); } + inline QString &operator+=(const QLatin1String &s) { return append(s); } + + QString &remove(int i, int len); + QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(int i, int len, QChar after); + QString &replace(int i, int len, const QChar *s, int slen); + QString &replace(int i, int len, const QString &after); + QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(const QLatin1String &before, const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(const QLatin1String &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(const QString &before, const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(const QString &before, const QString &after, + Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + QString &replace(QChar c, const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + + QString &replace(const QRegExp &rx, const QString &after); + inline QString &remove(const QRegExp &rx) + { return replace(rx, QString()); } + + + enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; + + QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const __attribute__ ((warn_unused_result)); + QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const __attribute__ ((warn_unused_result)); + + QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const __attribute__ ((warn_unused_result)); + + + enum NormalizationForm { + NormalizationForm_D, + NormalizationForm_C, + NormalizationForm_KD, + NormalizationForm_KC + }; + QString normalized(NormalizationForm mode) const __attribute__ ((warn_unused_result)); + QString normalized(NormalizationForm mode, QChar::UnicodeVersion version) const __attribute__ ((warn_unused_result)); + + QString repeated(int times) const; + + const ushort *utf16() const; + + QByteArray toAscii() const __attribute__ ((warn_unused_result)); + QByteArray toLatin1() const __attribute__ ((warn_unused_result)); + QByteArray toUtf8() const __attribute__ ((warn_unused_result)); + QByteArray toLocal8Bit() const __attribute__ ((warn_unused_result)); + QVector toUcs4() const __attribute__ ((warn_unused_result)); + + static QString fromAscii(const char *, int size = -1); + static QString fromLatin1(const char *, int size = -1); + static QString fromUtf8(const char *, int size = -1); + static QString fromLocal8Bit(const char *, int size = -1); + static QString fromUtf16(const ushort *, int size = -1); + static QString fromUcs4(const uint *, int size = -1); + static QString fromRawData(const QChar *, int size); + + int toWCharArray(wchar_t *array) const; + static QString fromWCharArray(const wchar_t *, int size = -1); + + QString &setRawData(const QChar *unicode, int size); + QString &setUnicode(const QChar *unicode, int size); + inline QString &setUtf16(const ushort *utf16, int size); + + + int compare(const QString &s) const; + int compare(const QString &s, Qt::CaseSensitivity cs) const; + + int compare(const QLatin1String &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + + static inline int compare(const QString &s1, const QString &s2) + { return s1.compare(s2); } + static inline int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs) + { return s1.compare(s2, cs); } + + static inline int compare(const QString& s1, const QLatin1String &s2, + Qt::CaseSensitivity cs = Qt::CaseSensitive) + { return s1.compare(s2, cs); } + static inline int compare(const QLatin1String& s1, const QString &s2, + Qt::CaseSensitivity cs = Qt::CaseSensitive) + { return -s2.compare(s1, cs); } + + int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + static int compare(const QString &s1, const QStringRef &s2, + Qt::CaseSensitivity = Qt::CaseSensitive); + + int localeAwareCompare(const QString& s) const; + static int localeAwareCompare(const QString& s1, const QString& s2) + { return s1.localeAwareCompare(s2); } + + int localeAwareCompare(const QStringRef &s) const; + static int localeAwareCompare(const QString& s1, const QStringRef& s2); + + short toShort(bool *ok=0, int base=10) const; + ushort toUShort(bool *ok=0, int base=10) const; + int toInt(bool *ok=0, int base=10) const; + uint toUInt(bool *ok=0, int base=10) const; + long toLong(bool *ok=0, int base=10) const; + ulong toULong(bool *ok=0, int base=10) const; + qlonglong toLongLong(bool *ok=0, int base=10) const; + qulonglong toULongLong(bool *ok=0, int base=10) const; + float toFloat(bool *ok=0) const; + double toDouble(bool *ok=0) const; + + QString &setNum(short, int base=10); + QString &setNum(ushort, int base=10); + QString &setNum(int, int base=10); + QString &setNum(uint, int base=10); + QString &setNum(long, int base=10); + QString &setNum(ulong, int base=10); + QString &setNum(qlonglong, int base=10); + QString &setNum(qulonglong, int base=10); + QString &setNum(float, char f='g', int prec=6); + QString &setNum(double, char f='g', int prec=6); + + static QString number(int, int base=10); + static QString number(uint, int base=10); + static QString number(long, int base=10); + static QString number(ulong, int base=10); + static QString number(qlonglong, int base=10); + static QString number(qulonglong, int base=10); + static QString number(double, char f='g', int prec=6); + + bool operator==(const QString &s) const; + bool operator<(const QString &s) const; + inline bool operator>(const QString &s) const { return s < *this; } + inline bool operator!=(const QString &s) const { return !operator==(s); } + inline bool operator<=(const QString &s) const { return !operator>(s); } + inline bool operator>=(const QString &s) const { return !operator<(s); } + + bool operator==(const QLatin1String &s) const; + bool operator<(const QLatin1String &s) const; + bool operator>(const QLatin1String &s) const; + inline bool operator!=(const QLatin1String &s) const { return !operator==(s); } + inline bool operator<=(const QLatin1String &s) const { return !operator>(s); } + inline bool operator>=(const QLatin1String &s) const { return !operator<(s); } + + + + inline QString(const char *ch) : d(fromAscii_helper(ch)) + {} + inline QString(const QByteArray &a) + : d(fromAscii_helper(a.constData(), qstrnlen(a.constData(), a.size()))) + {} + inline QString &operator=(const char *ch) + { return (*this = fromAscii(ch)); } + inline QString &operator=(const QByteArray &a) + { return (*this = fromAscii(a.constData(), qstrnlen(a.constData(), a.size()))); } + inline QString &operator=(char c) + { return (*this = QChar::fromAscii(c)); } + + + inline QString &prepend(const char *s) + { return prepend(QString::fromAscii(s)); } + inline QString &prepend(const QByteArray &s) + { return prepend(QString::fromAscii(s.constData(), qstrnlen(s.constData(), s.size()))); } + inline QString &append(const char *s) + { return append(QString::fromAscii(s)); } + inline QString &append(const QByteArray &s) + { return append(QString::fromAscii(s.constData(), qstrnlen(s.constData(), s.size()))); } + inline QString &operator+=(const char *s) + { return append(QString::fromAscii(s)); } + inline QString &operator+=(const QByteArray &s) + { return append(QString::fromAscii(s.constData(), qstrnlen(s.constData(), s.size()))); } + inline QString &operator+=(char c) + { return append(QChar::fromAscii(c)); } + + inline bool operator==(const char *s) const; + inline bool operator!=(const char *s) const; + inline bool operator<(const char *s) const; + inline bool operator<=(const char *s2) const; + inline bool operator>(const char *s2) const; + inline bool operator>=(const char *s2) const; + + inline bool operator==(const QByteArray &s) const; + inline bool operator!=(const QByteArray &s) const; + inline bool operator<(const QByteArray &s) const + { return *this < QString::fromAscii(s.constData(), s.size()); } + inline bool operator>(const QByteArray &s) const + { return *this > QString::fromAscii(s.constData(), s.size()); } + inline bool operator<=(const QByteArray &s) const + { return *this <= QString::fromAscii(s.constData(), s.size()); } + inline bool operator>=(const QByteArray &s) const + { return *this >= QString::fromAscii(s.constData(), s.size()); } + + + typedef QChar *iterator; + typedef const QChar *const_iterator; + typedef iterator Iterator; + typedef const_iterator ConstIterator; + iterator begin(); + const_iterator begin() const; + const_iterator constBegin() const; + iterator end(); + const_iterator end() const; + const_iterator constEnd() const; + + + typedef const QChar & const_reference; + typedef QChar & reference; + typedef QChar value_type; + inline void push_back(QChar c) { append(c); } + inline void push_back(const QString &s) { append(s); } + inline void push_front(QChar c) { prepend(c); } + inline void push_front(const QString &s) { prepend(s); } + + + static inline QString fromStdString(const std::string &s); + inline std::string toStdString() const; + + + + + + static inline QString fromStdWString(const QStdWString &s); + inline QStdWString toStdWString() const; + + + + + + struct Null { }; + static const Null null; + inline QString(const Null &): d(&shared_null) { d->ref.ref(); } + inline QString &operator=(const Null &) { *this = QString(); return *this; } + inline bool isNull() const { return d == &shared_null; } +# 588 "/usr/include/qt4/QtCore/qstring.h" + bool isSimpleText() const { if (!d->clean) updateProperties(); return d->simpletext; } + bool isRightToLeft() const; + + QString(int size, Qt::Initialization); + +private: +# 603 "/usr/include/qt4/QtCore/qstring.h" + struct Data { + QBasicAtomicInt ref; + int alloc, size; + ushort *data; + ushort clean : 1; + ushort simpletext : 1; + ushort righttoleft : 1; + ushort asciiCache : 1; + ushort capacity : 1; + ushort reserved : 11; + + ushort array[1]; + }; + static Data shared_null; + static Data shared_empty; + Data *d; + QString(Data *dd, int ) : d(dd) {} + + static QTextCodec *codecForCStrings; + + static int grow(int); + static void free(Data *); + void realloc(); + void realloc(int alloc); + void expand(int i); + void updateProperties() const; + QString multiArg(int numArgs, const QString **args) const; + static int compare_helper(const QChar *data1, int length1, + const QChar *data2, int length2, + Qt::CaseSensitivity cs = Qt::CaseSensitive); + static int compare_helper(const QChar *data1, int length1, + QLatin1String s2, + Qt::CaseSensitivity cs = Qt::CaseSensitive); + static int localeAwareCompare_helper(const QChar *data1, int length1, + const QChar *data2, int length2); + static Data *fromLatin1_helper(const char *str, int size = -1); + static Data *fromAscii_helper(const char *str, int size = -1); + void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); + friend class QCharRef; + friend class QCFString; + friend class QTextCodec; + friend class QStringRef; + friend struct QAbstractConcatenable; + friend inline bool qStringComparisonHelper(const QString &s1, const char *s2); + friend inline bool qStringComparisonHelper(const QStringRef &s1, const char *s2); +public: + typedef Data * DataPtr; + inline DataPtr &data_ptr() { return d; } +}; + + +class QLatin1String +{ +public: + inline explicit QLatin1String(const char *s) : chars(s) {} + inline QLatin1String &operator=(const QLatin1String &other) + { chars = other.chars; return *this; } + + inline const char *latin1() const { return chars; } + + inline bool operator==(const QString &s) const + { return s == *this; } + inline bool operator!=(const QString &s) const + { return s != *this; } + inline bool operator>(const QString &s) const + { return s < *this; } + inline bool operator<(const QString &s) const + { return s > *this; } + inline bool operator>=(const QString &s) const + { return s <= *this; } + inline bool operator<=(const QString &s) const + { return s >= *this; } + + inline bool operator==(const char *s) const + { return QString::fromAscii(s) == *this; } + inline bool operator!=(const char *s) const + { return QString::fromAscii(s) != *this; } + inline bool operator<(const char *s) const + { return QString::fromAscii(s) > *this; } + inline bool operator>(const char *s) const + { return QString::fromAscii(s) < *this; } + inline bool operator<=(const char *s) const + { return QString::fromAscii(s) >= *this; } + inline bool operator>=(const char *s) const + { return QString::fromAscii(s) <= *this; } +private: + const char *chars; +}; + + + +inline QString::QString(const QLatin1String &aLatin1) : d(fromLatin1_helper(aLatin1.latin1())) +{ } +inline int QString::length() const +{ return d->size; } +inline const QChar QString::at(int i) const +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qstring.h",699) : qt_noop()); return d->data[i]; } +inline const QChar QString::operator[](int i) const +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qstring.h",701) : qt_noop()); return d->data[i]; } +inline const QChar QString::operator[](uint i) const +{ ((!(i < uint(size()))) ? qt_assert("i < uint(size())","/usr/include/qt4/QtCore/qstring.h",703) : qt_noop()); return d->data[i]; } +inline bool QString::isEmpty() const +{ return d->size == 0; } +inline const QChar *QString::unicode() const +{ return reinterpret_cast(d->data); } +inline const QChar *QString::data() const +{ return reinterpret_cast(d->data); } +inline QChar *QString::data() +{ detach(); return reinterpret_cast(d->data); } +inline const QChar *QString::constData() const +{ return reinterpret_cast(d->data); } +inline void QString::detach() +{ if (d->ref != 1 || d->data != d->array) realloc(); } +inline bool QString::isDetached() const +{ return d->ref == 1; } +inline QString &QString::operator=(const QLatin1String &s) +{ + *this = fromLatin1(s.latin1()); + return *this; +} +inline void QString::clear() +{ if (!isNull()) *this = QString(); } +inline QString::QString(const QString &other) : d(other.d) +{ ((!(&other != this)) ? qt_assert("&other != this","/usr/include/qt4/QtCore/qstring.h",726) : qt_noop()); d->ref.ref(); } +inline int QString::capacity() const +{ return d->alloc; } +inline QString &QString::setNum(short n, int base) +{ return setNum(qlonglong(n), base); } +inline QString &QString::setNum(ushort n, int base) +{ return setNum(qulonglong(n), base); } +inline QString &QString::setNum(int n, int base) +{ return setNum(qlonglong(n), base); } +inline QString &QString::setNum(uint n, int base) +{ return setNum(qulonglong(n), base); } +inline QString &QString::setNum(long n, int base) +{ return setNum(qlonglong(n), base); } +inline QString &QString::setNum(ulong n, int base) +{ return setNum(qulonglong(n), base); } +inline QString &QString::setNum(float n, char f, int prec) +{ return setNum(double(n),f,prec); } +inline QString QString::arg(int a, int fieldWidth, int base, const QChar &fillChar) const +{ return arg(qlonglong(a), fieldWidth, base, fillChar); } +inline QString QString::arg(uint a, int fieldWidth, int base, const QChar &fillChar) const +{ return arg(qulonglong(a), fieldWidth, base, fillChar); } +inline QString QString::arg(long a, int fieldWidth, int base, const QChar &fillChar) const +{ return arg(qlonglong(a), fieldWidth, base, fillChar); } +inline QString QString::arg(ulong a, int fieldWidth, int base, const QChar &fillChar) const +{ return arg(qulonglong(a), fieldWidth, base, fillChar); } +inline QString QString::arg(short a, int fieldWidth, int base, const QChar &fillChar) const +{ return arg(qlonglong(a), fieldWidth, base, fillChar); } +inline QString QString::arg(ushort a, int fieldWidth, int base, const QChar &fillChar) const +{ return arg(qulonglong(a), fieldWidth, base, fillChar); } +inline QString QString::arg(const QString &a1, const QString &a2) const +{ const QString *args[2] = { &a1, &a2 }; return multiArg(2, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const +{ const QString *args[3] = { &a1, &a2, &a3 }; return multiArg(3, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4) const +{ const QString *args[4] = { &a1, &a2, &a3, &a4 }; return multiArg(4, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5) const +{ const QString *args[5] = { &a1, &a2, &a3, &a4, &a5 }; return multiArg(5, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6) const +{ const QString *args[6] = { &a1, &a2, &a3, &a4, &a5, &a6 }; return multiArg(6, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6, + const QString &a7) const +{ const QString *args[7] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; return multiArg(7, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6, + const QString &a7, const QString &a8) const +{ const QString *args[8] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; return multiArg(8, args); } +inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, + const QString &a4, const QString &a5, const QString &a6, + const QString &a7, const QString &a8, const QString &a9) const +{ const QString *args[9] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &a9 }; return multiArg(9, args); } + +inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const +{ return section(QString(asep), astart, aend, aflags); } + + +class QCharRef { + QString &s; + int i; + inline QCharRef(QString &str, int idx) + : s(str),i(idx) {} + friend class QString; +public: + + + + + inline operator QChar() const + { return i < s.d->size ? s.d->data[i] : 0; } + inline QCharRef &operator=(const QChar &c) + { if (i >= s.d->size) s.expand(i); else s.detach(); + s.d->data[i] = c.unicode(); return *this; } + + + + inline QCharRef &operator=(char c) + { return operator=(QChar::fromAscii(c)); } + inline QCharRef &operator=(uchar c) + { return operator=(QChar::fromAscii(c)); } + + inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); } + inline QCharRef &operator=(ushort rc) { return operator=(QChar(rc)); } + inline QCharRef &operator=(short rc) { return operator=(QChar(rc)); } + inline QCharRef &operator=(uint rc) { return operator=(QChar(rc)); } + inline QCharRef &operator=(int rc) { return operator=(QChar(rc)); } + + + inline bool isNull() const { return QChar(*this).isNull(); } + inline bool isPrint() const { return QChar(*this).isPrint(); } + inline bool isPunct() const { return QChar(*this).isPunct(); } + inline bool isSpace() const { return QChar(*this).isSpace(); } + inline bool isMark() const { return QChar(*this).isMark(); } + inline bool isLetter() const { return QChar(*this).isLetter(); } + inline bool isNumber() const { return QChar(*this).isNumber(); } + inline bool isLetterOrNumber() { return QChar(*this).isLetterOrNumber(); } + inline bool isDigit() const { return QChar(*this).isDigit(); } + inline bool isLower() const { return QChar(*this).isLower(); } + inline bool isUpper() const { return QChar(*this).isUpper(); } + inline bool isTitleCase() const { return QChar(*this).isTitleCase(); } + + inline int digitValue() const { return QChar(*this).digitValue(); } + QChar toLower() const { return QChar(*this).toLower(); } + QChar toUpper() const { return QChar(*this).toUpper(); } + QChar toTitleCase () const { return QChar(*this).toTitleCase(); } + + QChar::Category category() const { return QChar(*this).category(); } + QChar::Direction direction() const { return QChar(*this).direction(); } + QChar::Joining joining() const { return QChar(*this).joining(); } + bool hasMirrored() const { return QChar(*this).hasMirrored(); } + QChar mirroredChar() const { return QChar(*this).mirroredChar(); } + QString decomposition() const { return QChar(*this).decomposition(); } + QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } + uchar combiningClass() const { return QChar(*this).combiningClass(); } + + QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } + + inline uchar cell() const { return QChar(*this).cell(); } + inline uchar row() const { return QChar(*this).row(); } + inline void setCell(uchar cell); + inline void setRow(uchar row); + + + + + + + char toAscii() const { return QChar(*this).toAscii(); } + char toLatin1() const { return QChar(*this).toLatin1(); } + ushort unicode() const { return QChar(*this).unicode(); } + + ushort& unicode() { return s.data()[i].unicode(); } +# 873 "/usr/include/qt4/QtCore/qstring.h" +}; + +inline void QCharRef::setRow(uchar arow) { QChar(*this).setRow(arow); } +inline void QCharRef::setCell(uchar acell) { QChar(*this).setCell(acell); } + + +inline QString::QString() : d(&shared_null) { d->ref.ref(); } +inline QString::~QString() { if (!d->ref.deref()) free(d); } +inline void QString::reserve(int asize) { if (d->ref != 1 || asize > d->alloc) realloc(asize); d->capacity = 1;} +inline QString &QString::setUtf16(const ushort *autf16, int asize) +{ return setUnicode(reinterpret_cast(autf16), asize); } +inline QCharRef QString::operator[](int i) +{ ((!(i >= 0)) ? qt_assert("i >= 0","/usr/include/qt4/QtCore/qstring.h",885) : qt_noop()); return QCharRef(*this, i); } +inline QCharRef QString::operator[](uint i) +{ return QCharRef(*this, i); } +inline QString::iterator QString::begin() +{ detach(); return reinterpret_cast(d->data); } +inline QString::const_iterator QString::begin() const +{ return reinterpret_cast(d->data); } +inline QString::const_iterator QString::constBegin() const +{ return reinterpret_cast(d->data); } +inline QString::iterator QString::end() +{ detach(); return reinterpret_cast(d->data + d->size); } +inline QString::const_iterator QString::end() const +{ return reinterpret_cast(d->data + d->size); } +inline QString::const_iterator QString::constEnd() const +{ return reinterpret_cast(d->data + d->size); } +inline QBool QString::contains(const QString &s, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(s, 0, cs) != -1); } +inline QBool QString::contains(const QStringRef &s, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(s, 0, cs) != -1); } +inline QBool QString::contains(QChar c, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(c, 0, cs) != -1); } + + +inline bool operator==(QString::Null, QString::Null) { return true; } +inline bool operator==(QString::Null, const QString &s) { return s.isNull(); } +inline bool operator==(const QString &s, QString::Null) { return s.isNull(); } +inline bool operator!=(QString::Null, QString::Null) { return false; } +inline bool operator!=(QString::Null, const QString &s) { return !s.isNull(); } +inline bool operator!=(const QString &s, QString::Null) { return !s.isNull(); } + + +inline bool qStringComparisonHelper(const QString &s1, const char *s2) +{ + + if (QString::codecForCStrings) return (s1 == QString::fromAscii(s2)); + + return (s1 == QLatin1String(s2)); +} +inline bool QString::operator==(const char *s) const +{ return qStringComparisonHelper(*this, s); } +inline bool QString::operator!=(const char *s) const +{ return !qStringComparisonHelper(*this, s); } +inline bool QString::operator<(const char *s) const +{ return *this < QString::fromAscii(s); } +inline bool QString::operator>(const char *s) const +{ return *this > QString::fromAscii(s); } +inline bool QString::operator<=(const char *s) const +{ return *this <= QString::fromAscii(s); } +inline bool QString::operator>=(const char *s) const +{ return *this >= QString::fromAscii(s); } + +inline bool operator==(const char *s1, const QString &s2) +{ return qStringComparisonHelper(s2, s1); } +inline bool operator!=(const char *s1, const QString &s2) +{ return !qStringComparisonHelper(s2, s1); } +inline bool operator<(const char *s1, const QString &s2) +{ return (QString::fromAscii(s1) < s2); } +inline bool operator>(const char *s1, const QString &s2) +{ return (QString::fromAscii(s1) > s2); } +inline bool operator<=(const char *s1, const QString &s2) +{ return (QString::fromAscii(s1) <= s2); } +inline bool operator>=(const char *s1, const QString &s2) +{ return (QString::fromAscii(s1) >= s2); } + +inline bool operator==(const char *s1, const QLatin1String &s2) +{ return QString::fromAscii(s1) == s2; } +inline bool operator!=(const char *s1, const QLatin1String &s2) +{ return QString::fromAscii(s1) != s2; } +inline bool operator<(const char *s1, const QLatin1String &s2) +{ return (QString::fromAscii(s1) < s2); } +inline bool operator>(const char *s1, const QLatin1String &s2) +{ return (QString::fromAscii(s1) > s2); } +inline bool operator<=(const char *s1, const QLatin1String &s2) +{ return (QString::fromAscii(s1) <= s2); } +inline bool operator>=(const char *s1, const QLatin1String &s2) +{ return (QString::fromAscii(s1) >= s2); } + +inline bool operator==(const QLatin1String &s1, const QLatin1String &s2) +{ return (qstrcmp(s1.latin1(), s2.latin1()) == 0); } +inline bool operator!=(const QLatin1String &s1, const QLatin1String &s2) +{ return (qstrcmp(s1.latin1(), s2.latin1()) != 0); } +inline bool operator<(const QLatin1String &s1, const QLatin1String &s2) +{ return (qstrcmp(s1.latin1(), s2.latin1()) < 0); } +inline bool operator<=(const QLatin1String &s1, const QLatin1String &s2) +{ return (qstrcmp(s1.latin1(), s2.latin1()) <= 0); } +inline bool operator>(const QLatin1String &s1, const QLatin1String &s2) +{ return (qstrcmp(s1.latin1(), s2.latin1()) > 0); } +inline bool operator>=(const QLatin1String &s1, const QLatin1String &s2) +{ return (qstrcmp(s1.latin1(), s2.latin1()) >= 0); } + + +inline bool QString::operator==(const QByteArray &s) const +{ return qStringComparisonHelper(*this, s.constData()); } +inline bool QString::operator!=(const QByteArray &s) const +{ return !qStringComparisonHelper(*this, s.constData()); } + +inline bool QByteArray::operator==(const QString &s) const +{ return qStringComparisonHelper(s, constData()); } +inline bool QByteArray::operator!=(const QString &s) const +{ return !qStringComparisonHelper(s, constData()); } +inline bool QByteArray::operator<(const QString &s) const +{ return QString::fromAscii(constData(), size()) < s; } +inline bool QByteArray::operator>(const QString &s) const +{ return QString::fromAscii(constData(), size()) > s; } +inline bool QByteArray::operator<=(const QString &s) const +{ return QString::fromAscii(constData(), size()) <= s; } +inline bool QByteArray::operator>=(const QString &s) const +{ return QString::fromAscii(constData(), size()) >= s; } + + + +inline QByteArray &QByteArray::append(const QString &s) +{ return append(s.toAscii()); } +inline QByteArray &QByteArray::insert(int i, const QString &s) +{ return insert(i, s.toAscii()); } +inline QByteArray &QByteArray::replace(char c, const QString &after) +{ return replace(c, after.toAscii()); } +inline QByteArray &QByteArray::replace(const QString &before, const char *after) +{ return replace(before.toAscii(), after); } +inline QByteArray &QByteArray::replace(const QString &before, const QByteArray &after) +{ return replace(before.toAscii(), after); } +inline QByteArray &QByteArray::operator+=(const QString &s) +{ return operator+=(s.toAscii()); } +inline int QByteArray::indexOf(const QString &s, int from) const +{ return indexOf(s.toAscii(), from); } +inline int QByteArray::lastIndexOf(const QString &s, int from) const +{ return lastIndexOf(s.toAscii(), from); } +# 1021 "/usr/include/qt4/QtCore/qstring.h" +inline const QString operator+(const QString &s1, const QString &s2) +{ QString t(s1); t += s2; return t; } +inline const QString operator+(const QString &s1, QChar s2) +{ QString t(s1); t += s2; return t; } +inline const QString operator+(QChar s1, const QString &s2) +{ QString t(s1); t += s2; return t; } + +inline const QString operator+(const QString &s1, const char *s2) +{ QString t(s1); t += QString::fromAscii(s2); return t; } +inline const QString operator+(const char *s1, const QString &s2) +{ QString t = QString::fromAscii(s1); t += s2; return t; } +inline const QString operator+(char c, const QString &s) +{ QString t = s; t.prepend(QChar::fromAscii(c)); return t; } +inline const QString operator+(const QString &s, char c) +{ QString t = s; t += QChar::fromAscii(c); return t; } +inline const QString operator+(const QByteArray &ba, const QString &s) +{ QString t = QString::fromAscii(ba.constData(), qstrnlen(ba.constData(), ba.size())); t += s; return t; } +inline const QString operator+(const QString &s, const QByteArray &ba) +{ QString t(s); t += QString::fromAscii(ba.constData(), qstrnlen(ba.constData(), ba.size())); return t; } + + + + +inline std::string QString::toStdString() const +{ const QByteArray asc = toAscii(); return std::string(asc.constData(), asc.length()); } + +inline QString QString::fromStdString(const std::string &s) +{ return fromAscii(s.data(), int(s.size())); } + + +inline QStdWString QString::toStdWString() const +{ + QStdWString str; + str.resize(length()); + + + + + + + + str.resize(toWCharArray(&(*str.begin()))); + return str; +} +inline QString QString::fromStdWString(const QStdWString &s) +{ return fromWCharArray(s.data(), int(s.size())); } +# 1080 "/usr/include/qt4/QtCore/qstring.h" + QDataStream &operator<<(QDataStream &, const QString &); + QDataStream &operator>>(QDataStream &, QString &); +# 1094 "/usr/include/qt4/QtCore/qstring.h" +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QString)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QString"; } }; +template <> inline bool qIsDetached(QString &t) { return t.isDetached(); } template <> inline void qSwap(QString &value1, QString &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QString>(::QString &value1, ::QString &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } +constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QString::SectionFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QString::SectionFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + +class QStringRef { + const QString *m_string; + int m_position; + int m_size; +public: + inline QStringRef():m_string(0), m_position(0), m_size(0){} + inline QStringRef(const QString *string, int position, int size); + inline QStringRef(const QString *string); + inline QStringRef(const QStringRef &other) + :m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) + {} + + inline ~QStringRef(){} + inline const QString *string() const { return m_string; } + inline int position() const { return m_position; } + inline int size() const { return m_size; } + inline int count() const { return m_size; } + inline int length() const { return m_size; } + + inline QStringRef &operator=(const QStringRef &other) { + m_string = other.m_string; m_position = other.m_position; + m_size = other.m_size; return *this; + } + + int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + inline QBool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + inline QBool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + inline QBool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + inline QBool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + inline QStringRef &operator=(const QString *string); + + inline const QChar *unicode() const { + if (!m_string) + return reinterpret_cast(QString::shared_null.data); + return m_string->unicode() + m_position; + } + inline const QChar *data() const { return unicode(); } + inline const QChar *constData() const { return unicode(); } + + QByteArray toAscii() const __attribute__ ((warn_unused_result)); + QByteArray toLatin1() const __attribute__ ((warn_unused_result)); + QByteArray toUtf8() const __attribute__ ((warn_unused_result)); + QByteArray toLocal8Bit() const __attribute__ ((warn_unused_result)); + QVector toUcs4() const __attribute__ ((warn_unused_result)); + + inline void clear() { m_string = 0; m_position = m_size = 0; } + QString toString() const; + inline bool isEmpty() const { return m_size == 0; } + inline bool isNull() const { return m_string == 0 || m_string->isNull(); } + + QStringRef appendTo(QString *string) const; + + inline const QChar at(int i) const + { ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qstring.h",1175) : qt_noop()); return m_string->at(i + m_position); } + + int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + int compare(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + static int compare(const QStringRef &s1, const QString &s2, + Qt::CaseSensitivity = Qt::CaseSensitive); + static int compare(const QStringRef &s1, const QStringRef &s2, + Qt::CaseSensitivity = Qt::CaseSensitive); + static int compare(const QStringRef &s1, QLatin1String s2, + Qt::CaseSensitivity cs = Qt::CaseSensitive); + + int localeAwareCompare(const QString &s) const; + int localeAwareCompare(const QStringRef &s) const; + static int localeAwareCompare(const QStringRef &s1, const QString &s2); + static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); +}; + +inline QStringRef &QStringRef::operator=(const QString *aString) +{ m_string = aString; m_position = 0; m_size = aString?aString->size():0; return *this; } + +inline QStringRef::QStringRef(const QString *aString, int aPosition, int aSize) + :m_string(aString), m_position(aPosition), m_size(aSize){} + +inline QStringRef::QStringRef(const QString *aString) + :m_string(aString), m_position(0), m_size(aString?aString->size() : 0){} + + bool operator==(const QStringRef &s1,const QStringRef &s2); +inline bool operator!=(const QStringRef &s1,const QStringRef &s2) +{ return !(s1 == s2); } + bool operator==(const QString &s1,const QStringRef &s2); +inline bool operator!=(const QString &s1,const QStringRef &s2) +{ return !(s1 == s2); } +inline bool operator==(const QStringRef &s1,const QString &s2) +{ return s2 == s1; } +inline bool operator!=(const QStringRef &s1,const QString &s2) +{ return s2 != s1; } + bool operator==(const QLatin1String &s1, const QStringRef &s2); +inline bool operator!=(const QLatin1String &s1,const QStringRef &s2) +{ return !(s1 == s2); } +inline bool operator==(const QStringRef &s1,const QLatin1String &s2) +{ return s2 == s1; } +inline bool operator!=(const QStringRef &s1,const QLatin1String &s2) +{ return s2 != s1; } + + bool operator<(const QStringRef &s1,const QStringRef &s2); +inline bool operator>(const QStringRef &s1, const QStringRef &s2) +{ return s2 < s1; } +inline bool operator<=(const QStringRef &s1, const QStringRef &s2) +{ return !(s1 > s2); } +inline bool operator>=(const QStringRef &s1, const QStringRef &s2) +{ return !(s1 < s2); } + +inline bool qStringComparisonHelper(const QStringRef &s1, const char *s2) +{ + + if (QString::codecForCStrings) return (s1 == QString::fromAscii(s2)); + + return (s1 == QLatin1String(s2)); +} + +inline bool operator==(const char *s1, const QStringRef &s2) +{ return qStringComparisonHelper(s2, s1); } +inline bool operator==(const QStringRef &s1, const char *s2) +{ return qStringComparisonHelper(s1, s2); } +inline bool operator!=(const char *s1, const QStringRef &s2) +{ return !qStringComparisonHelper(s2, s1); } +inline bool operator!=(const QStringRef &s1, const char *s2) +{ return !qStringComparisonHelper(s1, s2); } + +inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const +{ return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } +inline int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs) +{ return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } +inline int QStringRef::compare(const QString &s, Qt::CaseSensitivity cs) const +{ return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } +inline int QStringRef::compare(const QStringRef &s, Qt::CaseSensitivity cs) const +{ return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } +inline int QStringRef::compare(QLatin1String s, Qt::CaseSensitivity cs) const +{ return QString::compare_helper(constData(), length(), s, cs); } +inline int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs) +{ return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } +inline int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs) +{ return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } +inline int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs) +{ return QString::compare_helper(s1.constData(), s1.length(), s2, cs); } + +inline int QString::localeAwareCompare(const QStringRef &s) const +{ return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } +inline int QString::localeAwareCompare(const QString& s1, const QStringRef& s2) +{ return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } +inline int QStringRef::localeAwareCompare(const QString &s) const +{ return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } +inline int QStringRef::localeAwareCompare(const QStringRef &s) const +{ return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } +inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QString &s2) +{ return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } +inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QStringRef &s2) +{ return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } + +inline QBool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(s, 0, cs) != -1); } +inline QBool QStringRef::contains(QLatin1String s, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(s, 0, cs) != -1); } +inline QBool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(c, 0, cs) != -1); } +inline QBool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const +{ return QBool(indexOf(s, 0, cs) != -1); } + + + + + + +# 49 "/usr/include/qt4/QtCore/qobject.h" 2 + +# 1 "/usr/include/qt4/QtCore/qlist.h" 1 +# 45 "/usr/include/qt4/QtCore/qlist.h" +# 1 "/usr/include/qt4/QtCore/qiterator.h" 1 +# 47 "/usr/include/qt4/QtCore/qiterator.h" + +# 79 "/usr/include/qt4/QtCore/qiterator.h" + + +typedef QtValidLicenseForCoreModule QtCoreModule; +# 223 "/usr/include/qt4/QtCore/qiterator.h" + + + +# 46 "/usr/include/qt4/QtCore/qlist.h" 2 + +# 1 "/usr/include/qt4/QtCore/qalgorithms.h" 1 +# 47 "/usr/include/qt4/QtCore/qalgorithms.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + + + +namespace QAlgorithmsPrivate { + +template + void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); +template +inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy); + +template + void qStableSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); +template +inline void qStableSortHelper(RandomAccessIterator, RandomAccessIterator, const T &); + +template + RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); +template + RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); +template + RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); + +} + +template +inline OutputIterator qCopy(InputIterator begin, InputIterator end, OutputIterator dest) +{ + while (begin != end) + *dest++ = *begin++; + return dest; +} + +template +inline BiIterator2 qCopyBackward(BiIterator1 begin, BiIterator1 end, BiIterator2 dest) +{ + while (begin != end) + *--dest = *--end; + return dest; +} + +template +inline bool qEqual(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) +{ + for (; first1 != last1; ++first1, ++first2) + if (!(*first1 == *first2)) + return false; + return true; +} + +template +inline void qFill(ForwardIterator first, ForwardIterator last, const T &val) +{ + for (; first != last; ++first) + *first = val; +} + +template +inline void qFill(Container &container, const T &val) +{ + qFill(container.begin(), container.end(), val); +} + +template +inline InputIterator qFind(InputIterator first, InputIterator last, const T &val) +{ + while (first != last && !(*first == val)) + ++first; + return first; +} + +template +inline typename Container::const_iterator qFind(const Container &container, const T &val) +{ + return qFind(container.constBegin(), container.constEnd(), val); +} + +template +inline void qCount(InputIterator first, InputIterator last, const T &value, Size &n) +{ + for (; first != last; ++first) + if (*first == value) + ++n; +} + +template +inline void qCount(const Container &container, const T &value, Size &n) +{ + qCount(container.constBegin(), container.constEnd(), value, n); +} +# 155 "/usr/include/qt4/QtCore/qalgorithms.h" +template +class qLess +{ +public: + inline bool operator()(const T &t1, const T &t2) const + { + return (t1 < t2); + } +}; + +template +class qGreater +{ +public: + inline bool operator()(const T &t1, const T &t2) const + { + return (t2 < t1); + } +}; + + +template +inline void qSort(RandomAccessIterator start, RandomAccessIterator end) +{ + if (start != end) + QAlgorithmsPrivate::qSortHelper(start, end, *start); +} + +template +inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) +{ + if (start != end) + QAlgorithmsPrivate::qSortHelper(start, end, *start, lessThan); +} + +template +inline void qSort(Container &c) +{ + + + + + if (!c.empty()) + QAlgorithmsPrivate::qSortHelper(c.begin(), c.end(), *c.begin()); +} + +template +inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end) +{ + if (start != end) + QAlgorithmsPrivate::qStableSortHelper(start, end, *start); +} + +template +inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) +{ + if (start != end) + QAlgorithmsPrivate::qStableSortHelper(start, end, *start, lessThan); +} + +template +inline void qStableSort(Container &c) +{ + + + + + if (!c.empty()) + QAlgorithmsPrivate::qStableSortHelper(c.begin(), c.end(), *c.begin()); +} + +template + RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) +{ + + + + RandomAccessIterator middle; + int n = end - begin; + int half; + + while (n > 0) { + half = n >> 1; + middle = begin + half; + if (*middle < value) { + begin = middle + 1; + n -= half + 1; + } else { + n = half; + } + } + return begin; +} + +template + RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) +{ + return QAlgorithmsPrivate::qLowerBoundHelper(begin, end, value, lessThan); +} + +template + typename Container::const_iterator qLowerBound(const Container &container, const T &value) +{ + return QAlgorithmsPrivate::qLowerBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); +} + +template + RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) +{ + + RandomAccessIterator middle; + int n = end - begin; + int half; + + while (n > 0) { + half = n >> 1; + middle = begin + half; + if (value < *middle) { + n = half; + } else { + begin = middle + 1; + n -= half + 1; + } + } + return begin; +} + +template + RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) +{ + return QAlgorithmsPrivate::qUpperBoundHelper(begin, end, value, lessThan); +} + +template + typename Container::const_iterator qUpperBound(const Container &container, const T &value) +{ + return QAlgorithmsPrivate::qUpperBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); +} + +template + RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) +{ + + RandomAccessIterator it = qLowerBound(begin, end, value); + + if (it == end || value < *it) + return end; + + return it; +} + +template + RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) +{ + return QAlgorithmsPrivate::qBinaryFindHelper(begin, end, value, lessThan); +} + +template + typename Container::const_iterator qBinaryFind(const Container &container, const T &value) +{ + return QAlgorithmsPrivate::qBinaryFindHelper(container.constBegin(), container.constEnd(), value, qLess()); +} + +template + void qDeleteAll(ForwardIterator begin, ForwardIterator end) +{ + while (begin != end) { + delete *begin; + ++begin; + } +} + +template +inline void qDeleteAll(const Container &c) +{ + qDeleteAll(c.begin(), c.end()); +} + + + + + +namespace QAlgorithmsPrivate { + +template + void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan) +{ +top: + int span = int(end - start); + if (span < 2) + return; + + --end; + RandomAccessIterator low = start, high = end - 1; + RandomAccessIterator pivot = start + span / 2; + + if (lessThan(*end, *start)) + qSwap(*end, *start); + if (span == 2) + return; + + if (lessThan(*pivot, *start)) + qSwap(*pivot, *start); + if (lessThan(*end, *pivot)) + qSwap(*end, *pivot); + if (span == 3) + return; + + qSwap(*pivot, *end); + + while (low < high) { + while (low < high && lessThan(*low, *end)) + ++low; + + while (high > low && lessThan(*end, *high)) + --high; + + if (low < high) { + qSwap(*low, *high); + ++low; + --high; + } else { + break; + } + } + + if (lessThan(*low, *end)) + ++low; + + qSwap(*end, *low); + qSortHelper(start, low, t, lessThan); + + start = low + 1; + ++end; + goto top; +} + +template +inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) +{ + qSortHelper(begin, end, dummy, qLess()); +} + +template + void qReverse(RandomAccessIterator begin, RandomAccessIterator end) +{ + --end; + while (begin < end) + qSwap(*begin++, *end--); +} + +template + void qRotate(RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end) +{ + qReverse(begin, middle); + qReverse(middle, end); + qReverse(begin, end); +} + +template + void qMerge(RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &t, LessThan lessThan) +{ + const int len1 = pivot - begin; + const int len2 = end - pivot; + + if (len1 == 0 || len2 == 0) + return; + + if (len1 + len2 == 2) { + if (lessThan(*(begin + 1), *(begin))) + qSwap(*begin, *(begin + 1)); + return; + } + + RandomAccessIterator firstCut; + RandomAccessIterator secondCut; + int len2Half; + if (len1 > len2) { + const int len1Half = len1 / 2; + firstCut = begin + len1Half; + secondCut = qLowerBound(pivot, end, *firstCut, lessThan); + len2Half = secondCut - pivot; + } else { + len2Half = len2 / 2; + secondCut = pivot + len2Half; + firstCut = qUpperBound(begin, pivot, *secondCut, lessThan); + } + + qRotate(firstCut, pivot, secondCut); + const RandomAccessIterator newPivot = firstCut + len2Half; + qMerge(begin, firstCut, newPivot, t, lessThan); + qMerge(newPivot, secondCut, end, t, lessThan); +} + +template + void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &t, LessThan lessThan) +{ + const int span = end - begin; + if (span < 2) + return; + + const RandomAccessIterator middle = begin + span / 2; + qStableSortHelper(begin, middle, t, lessThan); + qStableSortHelper(middle, end, t, lessThan); + qMerge(begin, middle, end, t, lessThan); +} + +template +inline void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) +{ + qStableSortHelper(begin, end, dummy, qLess()); +} + +template + RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) +{ + RandomAccessIterator middle; + int n = int(end - begin); + int half; + + while (n > 0) { + half = n >> 1; + middle = begin + half; + if (lessThan(*middle, value)) { + begin = middle + 1; + n -= half + 1; + } else { + n = half; + } + } + return begin; +} + + +template + RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) +{ + RandomAccessIterator middle; + int n = end - begin; + int half; + + while (n > 0) { + half = n >> 1; + middle = begin + half; + if (lessThan(value, *middle)) { + n = half; + } else { + begin = middle + 1; + n -= half + 1; + } + } + return begin; +} + +template + RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) +{ + RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); + + if (it == end || lessThan(value, *it)) + return end; + + return it; +} + +} + + + + +# 48 "/usr/include/qt4/QtCore/qlist.h" 2 + + +# 1 "/usr/include/c++/5/iterator" 1 3 +# 58 "/usr/include/c++/5/iterator" 3 + +# 59 "/usr/include/c++/5/iterator" 3 + + + + + +# 1 "/usr/include/c++/5/ostream" 1 3 +# 36 "/usr/include/c++/5/ostream" 3 + +# 37 "/usr/include/c++/5/ostream" 3 + +# 1 "/usr/include/c++/5/ios" 1 3 +# 36 "/usr/include/c++/5/ios" 3 + +# 37 "/usr/include/c++/5/ios" 3 + + + + + +# 1 "/usr/include/c++/5/bits/ios_base.h" 1 3 +# 37 "/usr/include/c++/5/bits/ios_base.h" 3 + +# 38 "/usr/include/c++/5/bits/ios_base.h" 3 + + + +# 1 "/usr/include/c++/5/bits/locale_classes.h" 1 3 +# 37 "/usr/include/c++/5/bits/locale_classes.h" 3 + +# 38 "/usr/include/c++/5/bits/locale_classes.h" 3 + + + + + + +# 43 "/usr/include/c++/5/bits/locale_classes.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 62 "/usr/include/c++/5/bits/locale_classes.h" 3 + class locale + { + public: + + + typedef int category; + + + class facet; + class id; + class _Impl; + + friend class facet; + friend class _Impl; + + template + friend bool + has_facet(const locale&) throw(); + + template + friend const _Facet& + use_facet(const locale&); + + template + friend struct __use_cache; +# 98 "/usr/include/c++/5/bits/locale_classes.h" 3 + static const category none = 0; + static const category ctype = 1L << 0; + static const category numeric = 1L << 1; + static const category collate = 1L << 2; + static const category time = 1L << 3; + static const category monetary = 1L << 4; + static const category messages = 1L << 5; + static const category all = (ctype | numeric | collate | + time | monetary | messages); +# 117 "/usr/include/c++/5/bits/locale_classes.h" 3 + locale() throw(); +# 126 "/usr/include/c++/5/bits/locale_classes.h" 3 + locale(const locale& __other) throw(); +# 136 "/usr/include/c++/5/bits/locale_classes.h" 3 + explicit + locale(const char* __s); +# 151 "/usr/include/c++/5/bits/locale_classes.h" 3 + locale(const locale& __base, const char* __s, category __cat); +# 162 "/usr/include/c++/5/bits/locale_classes.h" 3 + explicit + locale(const std::string& __s) : locale(__s.c_str()) { } +# 177 "/usr/include/c++/5/bits/locale_classes.h" 3 + locale(const locale& __base, const std::string& __s, category __cat) + : locale(__base, __s.c_str(), __cat) { } +# 192 "/usr/include/c++/5/bits/locale_classes.h" 3 + locale(const locale& __base, const locale& __add, category __cat); +# 205 "/usr/include/c++/5/bits/locale_classes.h" 3 + template + locale(const locale& __other, _Facet* __f); + + + ~locale() throw(); +# 219 "/usr/include/c++/5/bits/locale_classes.h" 3 + const locale& + operator=(const locale& __other) throw(); +# 234 "/usr/include/c++/5/bits/locale_classes.h" 3 + template + locale + combine(const locale& __other) const; + + + + + + + __attribute ((__abi_tag__ ("cxx11"))) + string + name() const; +# 254 "/usr/include/c++/5/bits/locale_classes.h" 3 + bool + operator==(const locale& __other) const throw(); + + + + + + + + bool + operator!=(const locale& __other) const throw() + { return !(this->operator==(__other)); } +# 282 "/usr/include/c++/5/bits/locale_classes.h" 3 + template + bool + operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, + const basic_string<_Char, _Traits, _Alloc>& __s2) const; +# 298 "/usr/include/c++/5/bits/locale_classes.h" 3 + static locale + global(const locale& __loc); + + + + + static const locale& + classic(); + + private: + + _Impl* _M_impl; + + + static _Impl* _S_classic; + + + static _Impl* _S_global; + + + + + + static const char* const* const _S_categories; +# 333 "/usr/include/c++/5/bits/locale_classes.h" 3 + enum { _S_categories_size = 6 + 6 }; + + + static __gthread_once_t _S_once; + + + explicit + locale(_Impl*) throw(); + + static void + _S_initialize(); + + static void + _S_initialize_once() throw(); + + static category + _S_normalize_category(category); + + void + _M_coalesce(const locale& __base, const locale& __add, category __cat); + + + static const id* const _S_twinned_facets[]; + + }; +# 371 "/usr/include/c++/5/bits/locale_classes.h" 3 + class locale::facet + { + private: + friend class locale; + friend class locale::_Impl; + + mutable _Atomic_word _M_refcount; + + + static __c_locale _S_c_locale; + + + static const char _S_c_name[2]; + + + static __gthread_once_t _S_once; + + + static void + _S_initialize_once(); + + protected: +# 402 "/usr/include/c++/5/bits/locale_classes.h" 3 + explicit + facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) + { } + + + virtual + ~facet(); + + static void + _S_create_c_locale(__c_locale& __cloc, const char* __s, + __c_locale __old = 0); + + static __c_locale + _S_clone_c_locale(__c_locale& __cloc) throw(); + + static void + _S_destroy_c_locale(__c_locale& __cloc); + + static __c_locale + _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); + + + + static __c_locale + _S_get_c_locale(); + + __attribute__ ((__const__)) static const char* + _S_get_c_name() throw(); + + private: + void + _M_add_reference() const throw() + { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } + + void + _M_remove_reference() const throw() + { + + ; + if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) + { + ; + try + { delete this; } + catch(...) + { } + } + } + + facet(const facet&); + + facet& + operator=(const facet&); + + class __shim; + + const facet* _M_sso_shim(const id*) const; + const facet* _M_cow_shim(const id*) const; + }; +# 474 "/usr/include/c++/5/bits/locale_classes.h" 3 + class locale::id + { + private: + friend class locale; + friend class locale::_Impl; + + template + friend const _Facet& + use_facet(const locale&); + + template + friend bool + has_facet(const locale&) throw(); + + + + + mutable size_t _M_index; + + + static _Atomic_word _S_refcount; + + void + operator=(const id&); + + id(const id&); + + public: + + + + id() { } + + size_t + _M_id() const throw(); + }; + + + + class locale::_Impl + { + public: + + friend class locale; + friend class locale::facet; + + template + friend bool + has_facet(const locale&) throw(); + + template + friend const _Facet& + use_facet(const locale&); + + template + friend struct __use_cache; + + private: + + _Atomic_word _M_refcount; + const facet** _M_facets; + size_t _M_facets_size; + const facet** _M_caches; + char** _M_names; + static const locale::id* const _S_id_ctype[]; + static const locale::id* const _S_id_numeric[]; + static const locale::id* const _S_id_collate[]; + static const locale::id* const _S_id_time[]; + static const locale::id* const _S_id_monetary[]; + static const locale::id* const _S_id_messages[]; + static const locale::id* const* const _S_facet_categories[]; + + void + _M_add_reference() throw() + { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } + + void + _M_remove_reference() throw() + { + + ; + if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) + { + ; + try + { delete this; } + catch(...) + { } + } + } + + _Impl(const _Impl&, size_t); + _Impl(const char*, size_t); + _Impl(size_t) throw(); + + ~_Impl() throw(); + + _Impl(const _Impl&); + + void + operator=(const _Impl&); + + bool + _M_check_same_name() + { + bool __ret = true; + if (_M_names[1]) + + for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) + __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; + return __ret; + } + + void + _M_replace_categories(const _Impl*, category); + + void + _M_replace_category(const _Impl*, const locale::id* const*); + + void + _M_replace_facet(const _Impl*, const locale::id*); + + void + _M_install_facet(const locale::id*, const facet*); + + template + void + _M_init_facet(_Facet* __facet) + { _M_install_facet(&_Facet::id, __facet); } + + template + void + _M_init_facet_unchecked(_Facet* __facet) + { + __facet->_M_add_reference(); + _M_facets[_Facet::id._M_id()] = __facet; + } + + void + _M_install_cache(const facet*, size_t); + + void _M_init_extra(facet**); + void _M_init_extra(void*, void*, const char*, const char*); + }; +# 632 "/usr/include/c++/5/bits/locale_classes.h" 3 + template + class __cxx11:: collate : public locale::facet + { + public: + + + + typedef _CharT char_type; + typedef basic_string<_CharT> string_type; + + + protected: + + + __c_locale _M_c_locale_collate; + + public: + + static locale::id id; +# 659 "/usr/include/c++/5/bits/locale_classes.h" 3 + explicit + collate(size_t __refs = 0) + : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) + { } +# 673 "/usr/include/c++/5/bits/locale_classes.h" 3 + explicit + collate(__c_locale __cloc, size_t __refs = 0) + : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) + { } +# 690 "/usr/include/c++/5/bits/locale_classes.h" 3 + int + compare(const _CharT* __lo1, const _CharT* __hi1, + const _CharT* __lo2, const _CharT* __hi2) const + { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } +# 709 "/usr/include/c++/5/bits/locale_classes.h" 3 + string_type + transform(const _CharT* __lo, const _CharT* __hi) const + { return this->do_transform(__lo, __hi); } +# 723 "/usr/include/c++/5/bits/locale_classes.h" 3 + long + hash(const _CharT* __lo, const _CharT* __hi) const + { return this->do_hash(__lo, __hi); } + + + int + _M_compare(const _CharT*, const _CharT*) const throw(); + + size_t + _M_transform(_CharT*, const _CharT*, size_t) const throw(); + + protected: + + virtual + ~collate() + { _S_destroy_c_locale(_M_c_locale_collate); } +# 752 "/usr/include/c++/5/bits/locale_classes.h" 3 + virtual int + do_compare(const _CharT* __lo1, const _CharT* __hi1, + const _CharT* __lo2, const _CharT* __hi2) const; +# 766 "/usr/include/c++/5/bits/locale_classes.h" 3 + virtual string_type + do_transform(const _CharT* __lo, const _CharT* __hi) const; +# 779 "/usr/include/c++/5/bits/locale_classes.h" 3 + virtual long + do_hash(const _CharT* __lo, const _CharT* __hi) const; + }; + + template + locale::id collate<_CharT>::id; + + + template<> + int + collate::_M_compare(const char*, const char*) const throw(); + + template<> + size_t + collate::_M_transform(char*, const char*, size_t) const throw(); + + + template<> + int + collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); + + template<> + size_t + collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); + + + + template + class __cxx11:: collate_byname : public collate<_CharT> + { + public: + + + typedef _CharT char_type; + typedef basic_string<_CharT> string_type; + + + explicit + collate_byname(const char* __s, size_t __refs = 0) + : collate<_CharT>(__refs) + { + if (__builtin_strcmp(__s, "C") != 0 + && __builtin_strcmp(__s, "POSIX") != 0) + { + this->_S_destroy_c_locale(this->_M_c_locale_collate); + this->_S_create_c_locale(this->_M_c_locale_collate, __s); + } + } + + + explicit + collate_byname(const string& __s, size_t __refs = 0) + : collate_byname(__s.c_str(), __refs) { } + + + protected: + virtual + ~collate_byname() { } + }; + + +} + +# 1 "/usr/include/c++/5/bits/locale_classes.tcc" 1 3 +# 37 "/usr/include/c++/5/bits/locale_classes.tcc" 3 + +# 38 "/usr/include/c++/5/bits/locale_classes.tcc" 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + locale:: + locale(const locale& __other, _Facet* __f) + { + _M_impl = new _Impl(*__other._M_impl, 1); + + try + { _M_impl->_M_install_facet(&_Facet::id, __f); } + catch(...) + { + _M_impl->_M_remove_reference(); + throw; + } + delete [] _M_impl->_M_names[0]; + _M_impl->_M_names[0] = 0; + } + + template + locale + locale:: + combine(const locale& __other) const + { + _Impl* __tmp = new _Impl(*_M_impl, 1); + try + { + __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); + } + catch(...) + { + __tmp->_M_remove_reference(); + throw; + } + return locale(__tmp); + } + + template + bool + locale:: + operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, + const basic_string<_CharT, _Traits, _Alloc>& __s2) const + { + typedef std::collate<_CharT> __collate_type; + const __collate_type& __collate = use_facet<__collate_type>(*this); + return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), + __s2.data(), __s2.data() + __s2.length()) < 0); + } +# 102 "/usr/include/c++/5/bits/locale_classes.tcc" 3 + template + bool + has_facet(const locale& __loc) throw() + { + const size_t __i = _Facet::id._M_id(); + const locale::facet** __facets = __loc._M_impl->_M_facets; + return (__i < __loc._M_impl->_M_facets_size + + && dynamic_cast(__facets[__i])); + + + + } +# 130 "/usr/include/c++/5/bits/locale_classes.tcc" 3 + template + const _Facet& + use_facet(const locale& __loc) + { + const size_t __i = _Facet::id._M_id(); + const locale::facet** __facets = __loc._M_impl->_M_facets; + if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) + __throw_bad_cast(); + + return dynamic_cast(*__facets[__i]); + + + + } + + + + template + int + collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () + { return 0; } + + + template + size_t + collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () + { return 0; } + + template + int + collate<_CharT>:: + do_compare(const _CharT* __lo1, const _CharT* __hi1, + const _CharT* __lo2, const _CharT* __hi2) const + { + + + const string_type __one(__lo1, __hi1); + const string_type __two(__lo2, __hi2); + + const _CharT* __p = __one.c_str(); + const _CharT* __pend = __one.data() + __one.length(); + const _CharT* __q = __two.c_str(); + const _CharT* __qend = __two.data() + __two.length(); + + + + + for (;;) + { + const int __res = _M_compare(__p, __q); + if (__res) + return __res; + + __p += char_traits<_CharT>::length(__p); + __q += char_traits<_CharT>::length(__q); + if (__p == __pend && __q == __qend) + return 0; + else if (__p == __pend) + return -1; + else if (__q == __qend) + return 1; + + __p++; + __q++; + } + } + + template + typename collate<_CharT>::string_type + collate<_CharT>:: + do_transform(const _CharT* __lo, const _CharT* __hi) const + { + string_type __ret; + + + const string_type __str(__lo, __hi); + + const _CharT* __p = __str.c_str(); + const _CharT* __pend = __str.data() + __str.length(); + + size_t __len = (__hi - __lo) * 2; + + _CharT* __c = new _CharT[__len]; + + try + { + + + + for (;;) + { + + size_t __res = _M_transform(__c, __p, __len); + + + if (__res >= __len) + { + __len = __res + 1; + delete [] __c, __c = 0; + __c = new _CharT[__len]; + __res = _M_transform(__c, __p, __len); + } + + __ret.append(__c, __res); + __p += char_traits<_CharT>::length(__p); + if (__p == __pend) + break; + + __p++; + __ret.push_back(_CharT()); + } + } + catch(...) + { + delete [] __c; + throw; + } + + delete [] __c; + + return __ret; + } + + template + long + collate<_CharT>:: + do_hash(const _CharT* __lo, const _CharT* __hi) const + { + unsigned long __val = 0; + for (; __lo < __hi; ++__lo) + __val = + *__lo + ((__val << 7) + | (__val >> (__gnu_cxx::__numeric_traits:: + __digits - 7))); + return static_cast(__val); + } + + + + + extern template class collate; + extern template class collate_byname; + + extern template + const collate& + use_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + + extern template class collate; + extern template class collate_byname; + + extern template + const collate& + use_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + + + +} +# 843 "/usr/include/c++/5/bits/locale_classes.h" 2 3 +# 42 "/usr/include/c++/5/bits/ios_base.h" 2 3 + + + + +# 1 "/usr/include/c++/5/system_error" 1 3 +# 32 "/usr/include/c++/5/system_error" 3 + +# 33 "/usr/include/c++/5/system_error" 3 + + + + + + +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/error_constants.h" 1 3 +# 34 "/usr/include/x86_64-linux-gnu/c++/5/bits/error_constants.h" 3 +# 1 "/usr/include/c++/5/cerrno" 1 3 +# 39 "/usr/include/c++/5/cerrno" 3 + +# 40 "/usr/include/c++/5/cerrno" 3 + +# 1 "/usr/include/errno.h" 1 3 4 +# 42 "/usr/include/c++/5/cerrno" 2 3 +# 35 "/usr/include/x86_64-linux-gnu/c++/5/bits/error_constants.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + enum class errc + { + address_family_not_supported = 97, + address_in_use = 98, + address_not_available = 99, + already_connected = 106, + argument_list_too_long = 7, + argument_out_of_domain = 33, + bad_address = 14, + bad_file_descriptor = 9, + + + bad_message = 74, + + + broken_pipe = 32, + connection_aborted = 103, + connection_already_in_progress = 114, + connection_refused = 111, + connection_reset = 104, + cross_device_link = 18, + destination_address_required = 89, + device_or_resource_busy = 16, + directory_not_empty = 39, + executable_format_error = 8, + file_exists = 17, + file_too_large = 27, + filename_too_long = 36, + function_not_supported = 38, + host_unreachable = 113, + + + identifier_removed = 43, + + + illegal_byte_sequence = 84, + inappropriate_io_control_operation = 25, + interrupted = 4, + invalid_argument = 22, + invalid_seek = 29, + io_error = 5, + is_a_directory = 21, + message_size = 90, + network_down = 100, + network_reset = 102, + network_unreachable = 101, + no_buffer_space = 105, + no_child_process = 10, + + + no_link = 67, + + + no_lock_available = 37, + + + no_message_available = 61, + + + no_message = 42, + no_protocol_option = 92, + no_space_on_device = 28, + + + no_stream_resources = 63, + + + no_such_device_or_address = 6, + no_such_device = 19, + no_such_file_or_directory = 2, + no_such_process = 3, + not_a_directory = 20, + not_a_socket = 88, + + + not_a_stream = 60, + + + not_connected = 107, + not_enough_memory = 12, + + + not_supported = 95, + + + + operation_canceled = 125, + + + operation_in_progress = 115, + operation_not_permitted = 1, + operation_not_supported = 95, + operation_would_block = 11, + + + owner_dead = 130, + + + permission_denied = 13, + + + protocol_error = 71, + + + protocol_not_supported = 93, + read_only_file_system = 30, + resource_deadlock_would_occur = 35, + resource_unavailable_try_again = 11, + result_out_of_range = 34, + + + state_not_recoverable = 131, + + + + stream_timeout = 62, + + + + text_file_busy = 26, + + + timed_out = 110, + too_many_files_open_in_system = 23, + too_many_files_open = 24, + too_many_links = 31, + too_many_symbolic_link_levels = 40, + + + value_too_large = 75, + + + wrong_protocol_type = 91 + }; + + +} +# 40 "/usr/include/c++/5/system_error" 2 3 + +# 1 "/usr/include/c++/5/stdexcept" 1 3 +# 36 "/usr/include/c++/5/stdexcept" 3 + +# 37 "/usr/include/c++/5/stdexcept" 3 + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + struct __cow_string + { + union { + const char* _M_p; + char _M_bytes[sizeof(const char*)]; + }; + + __cow_string(); + __cow_string(const std::string&); + __cow_string(const char*, size_t); + __cow_string(const __cow_string&) noexcept; + __cow_string& operator=(const __cow_string&) noexcept; + ~__cow_string(); + + __cow_string(__cow_string&&) noexcept; + __cow_string& operator=(__cow_string&&) noexcept; + + }; + + typedef basic_string __sso_string; +# 113 "/usr/include/c++/5/stdexcept" 3 + class logic_error : public exception + { + __cow_string _M_msg; + + public: + + explicit + logic_error(const string& __arg); + + + explicit + logic_error(const char*); + + + + logic_error(const logic_error&) noexcept; + logic_error& operator=(const logic_error&) noexcept; + + + virtual ~logic_error() noexcept; + + + + virtual const char* + what() const noexcept; + }; + + + + class domain_error : public logic_error + { + public: + explicit domain_error(const string& __arg); + + explicit domain_error(const char*); + + virtual ~domain_error() noexcept; + }; + + + class invalid_argument : public logic_error + { + public: + explicit invalid_argument(const string& __arg); + + explicit invalid_argument(const char*); + + virtual ~invalid_argument() noexcept; + }; + + + + class length_error : public logic_error + { + public: + explicit length_error(const string& __arg); + + explicit length_error(const char*); + + virtual ~length_error() noexcept; + }; + + + + class out_of_range : public logic_error + { + public: + explicit out_of_range(const string& __arg); + + explicit out_of_range(const char*); + + virtual ~out_of_range() noexcept; + }; + + + + + + + class runtime_error : public exception + { + __cow_string _M_msg; + + public: + + explicit + runtime_error(const string& __arg); + + + explicit + runtime_error(const char*); + + + + runtime_error(const runtime_error&) noexcept; + runtime_error& operator=(const runtime_error&) noexcept; + + + virtual ~runtime_error() noexcept; + + + + virtual const char* + what() const noexcept; + }; + + + class range_error : public runtime_error + { + public: + explicit range_error(const string& __arg); + + explicit range_error(const char*); + + virtual ~range_error() noexcept; + }; + + + class overflow_error : public runtime_error + { + public: + explicit overflow_error(const string& __arg); + + explicit overflow_error(const char*); + + virtual ~overflow_error() noexcept; + }; + + + class underflow_error : public runtime_error + { + public: + explicit underflow_error(const string& __arg); + + explicit underflow_error(const char*); + + virtual ~underflow_error() noexcept; + }; + + + + +} +# 42 "/usr/include/c++/5/system_error" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + class error_code; + class error_condition; + class system_error; + + + template + struct is_error_code_enum : public false_type { }; + + + template + struct is_error_condition_enum : public false_type { }; + + template<> + struct is_error_condition_enum + : public true_type { }; + + inline namespace _V2 { + + + class error_category + { + public: + constexpr error_category() noexcept = default; + + virtual ~error_category(); + + error_category(const error_category&) = delete; + error_category& operator=(const error_category&) = delete; + + virtual const char* + name() const noexcept = 0; + + + + + + + private: + __attribute ((__abi_tag__ ("cxx11"))) + virtual __cow_string + _M_message(int) const; + + public: + __attribute ((__abi_tag__ ("cxx11"))) + virtual string + message(int) const = 0; +# 102 "/usr/include/c++/5/system_error" 3 + public: + virtual error_condition + default_error_condition(int __i) const noexcept; + + virtual bool + equivalent(int __i, const error_condition& __cond) const noexcept; + + virtual bool + equivalent(const error_code& __code, int __i) const noexcept; + + bool + operator<(const error_category& __other) const noexcept + { return less()(this, &__other); } + + bool + operator==(const error_category& __other) const noexcept + { return this == &__other; } + + bool + operator!=(const error_category& __other) const noexcept + { return this != &__other; } + }; + + + __attribute__ ((__const__)) const error_category& system_category() noexcept; + __attribute__ ((__const__)) const error_category& generic_category() noexcept; + + } + + error_code make_error_code(errc) noexcept; + + template + struct hash; + + + + struct error_code + { + error_code() noexcept + : _M_value(0), _M_cat(&system_category()) { } + + error_code(int __v, const error_category& __cat) noexcept + : _M_value(__v), _M_cat(&__cat) { } + + template::value>::type> + error_code(_ErrorCodeEnum __e) noexcept + { *this = make_error_code(__e); } + + void + assign(int __v, const error_category& __cat) noexcept + { + _M_value = __v; + _M_cat = &__cat; + } + + void + clear() noexcept + { assign(0, system_category()); } + + + template + typename enable_if::value, + error_code&>::type + operator=(_ErrorCodeEnum __e) noexcept + { return *this = make_error_code(__e); } + + int + value() const noexcept { return _M_value; } + + const error_category& + category() const noexcept { return *_M_cat; } + + error_condition + default_error_condition() const noexcept; + + __attribute ((__abi_tag__ ("cxx11"))) + string + message() const + { return category().message(value()); } + + explicit operator bool() const noexcept + { return _M_value != 0 ? true : false; } + + + private: + friend class hash; + + int _M_value; + const error_category* _M_cat; + }; + + + inline error_code + make_error_code(errc __e) noexcept + { return error_code(static_cast(__e), generic_category()); } + + inline bool + operator<(const error_code& __lhs, const error_code& __rhs) noexcept + { + return (__lhs.category() < __rhs.category() + || (__lhs.category() == __rhs.category() + && __lhs.value() < __rhs.value())); + } + + template + basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) + { return (__os << __e.category().name() << ':' << __e.value()); } + + error_condition make_error_condition(errc) noexcept; + + + + struct error_condition + { + error_condition() noexcept + : _M_value(0), _M_cat(&generic_category()) { } + + error_condition(int __v, const error_category& __cat) noexcept + : _M_value(__v), _M_cat(&__cat) { } + + template::value>::type> + error_condition(_ErrorConditionEnum __e) noexcept + { *this = make_error_condition(__e); } + + void + assign(int __v, const error_category& __cat) noexcept + { + _M_value = __v; + _M_cat = &__cat; + } + + + template + typename enable_if::value, error_condition&>::type + operator=(_ErrorConditionEnum __e) noexcept + { return *this = make_error_condition(__e); } + + void + clear() noexcept + { assign(0, generic_category()); } + + + int + value() const noexcept { return _M_value; } + + const error_category& + category() const noexcept { return *_M_cat; } + + __attribute ((__abi_tag__ ("cxx11"))) + string + message() const + { return category().message(value()); } + + explicit operator bool() const noexcept + { return _M_value != 0 ? true : false; } + + + private: + int _M_value; + const error_category* _M_cat; + }; + + + inline error_condition + make_error_condition(errc __e) noexcept + { return error_condition(static_cast(__e), generic_category()); } + + inline bool + operator<(const error_condition& __lhs, + const error_condition& __rhs) noexcept + { + return (__lhs.category() < __rhs.category() + || (__lhs.category() == __rhs.category() + && __lhs.value() < __rhs.value())); + } + + + inline bool + operator==(const error_code& __lhs, const error_code& __rhs) noexcept + { return (__lhs.category() == __rhs.category() + && __lhs.value() == __rhs.value()); } + + inline bool + operator==(const error_code& __lhs, const error_condition& __rhs) noexcept + { + return (__lhs.category().equivalent(__lhs.value(), __rhs) + || __rhs.category().equivalent(__lhs, __rhs.value())); + } + + inline bool + operator==(const error_condition& __lhs, const error_code& __rhs) noexcept + { + return (__rhs.category().equivalent(__rhs.value(), __lhs) + || __lhs.category().equivalent(__rhs, __lhs.value())); + } + + inline bool + operator==(const error_condition& __lhs, + const error_condition& __rhs) noexcept + { + return (__lhs.category() == __rhs.category() + && __lhs.value() == __rhs.value()); + } + + inline bool + operator!=(const error_code& __lhs, const error_code& __rhs) noexcept + { return !(__lhs == __rhs); } + + inline bool + operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept + { return !(__lhs == __rhs); } + + inline bool + operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept + { return !(__lhs == __rhs); } + + inline bool + operator!=(const error_condition& __lhs, + const error_condition& __rhs) noexcept + { return !(__lhs == __rhs); } + + + + + + + + class system_error : public std::runtime_error + { + private: + error_code _M_code; + + public: + system_error(error_code __ec = error_code()) + : runtime_error(__ec.message()), _M_code(__ec) { } + + system_error(error_code __ec, const string& __what) + : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } + + system_error(error_code __ec, const char* __what) + : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } + + system_error(int __v, const error_category& __ecat, const char* __what) + : system_error(error_code(__v, __ecat), __what) { } + + system_error(int __v, const error_category& __ecat) + : runtime_error(error_code(__v, __ecat).message()), + _M_code(__v, __ecat) { } + + system_error(int __v, const error_category& __ecat, const string& __what) + : runtime_error(__what + ": " + error_code(__v, __ecat).message()), + _M_code(__v, __ecat) { } + + virtual ~system_error() noexcept; + + const error_code& + code() const noexcept { return _M_code; } + }; + + +} + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template<> + struct hash + : public __hash_base + { + size_t + operator()(const error_code& __e) const noexcept + { + const size_t __tmp = std::_Hash_impl::hash(__e._M_value); + return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); + } + }; + + +} +# 47 "/usr/include/c++/5/bits/ios_base.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + enum _Ios_Fmtflags + { + _S_boolalpha = 1L << 0, + _S_dec = 1L << 1, + _S_fixed = 1L << 2, + _S_hex = 1L << 3, + _S_internal = 1L << 4, + _S_left = 1L << 5, + _S_oct = 1L << 6, + _S_right = 1L << 7, + _S_scientific = 1L << 8, + _S_showbase = 1L << 9, + _S_showpoint = 1L << 10, + _S_showpos = 1L << 11, + _S_skipws = 1L << 12, + _S_unitbuf = 1L << 13, + _S_uppercase = 1L << 14, + _S_adjustfield = _S_left | _S_right | _S_internal, + _S_basefield = _S_dec | _S_oct | _S_hex, + _S_floatfield = _S_scientific | _S_fixed, + _S_ios_fmtflags_end = 1L << 16, + _S_ios_fmtflags_max = 0x7fffffff, + _S_ios_fmtflags_min = ~0x7fffffff + }; + + inline constexpr _Ios_Fmtflags + operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) + { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } + + inline constexpr _Ios_Fmtflags + operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) + { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } + + inline constexpr _Ios_Fmtflags + operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) + { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } + + inline constexpr _Ios_Fmtflags + operator~(_Ios_Fmtflags __a) + { return _Ios_Fmtflags(~static_cast(__a)); } + + inline const _Ios_Fmtflags& + operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) + { return __a = __a | __b; } + + inline const _Ios_Fmtflags& + operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) + { return __a = __a & __b; } + + inline const _Ios_Fmtflags& + operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) + { return __a = __a ^ __b; } + + + enum _Ios_Openmode + { + _S_app = 1L << 0, + _S_ate = 1L << 1, + _S_bin = 1L << 2, + _S_in = 1L << 3, + _S_out = 1L << 4, + _S_trunc = 1L << 5, + _S_ios_openmode_end = 1L << 16, + _S_ios_openmode_max = 0x7fffffff, + _S_ios_openmode_min = ~0x7fffffff + }; + + inline constexpr _Ios_Openmode + operator&(_Ios_Openmode __a, _Ios_Openmode __b) + { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } + + inline constexpr _Ios_Openmode + operator|(_Ios_Openmode __a, _Ios_Openmode __b) + { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } + + inline constexpr _Ios_Openmode + operator^(_Ios_Openmode __a, _Ios_Openmode __b) + { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } + + inline constexpr _Ios_Openmode + operator~(_Ios_Openmode __a) + { return _Ios_Openmode(~static_cast(__a)); } + + inline const _Ios_Openmode& + operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) + { return __a = __a | __b; } + + inline const _Ios_Openmode& + operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) + { return __a = __a & __b; } + + inline const _Ios_Openmode& + operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) + { return __a = __a ^ __b; } + + + enum _Ios_Iostate + { + _S_goodbit = 0, + _S_badbit = 1L << 0, + _S_eofbit = 1L << 1, + _S_failbit = 1L << 2, + _S_ios_iostate_end = 1L << 16, + _S_ios_iostate_max = 0x7fffffff, + _S_ios_iostate_min = ~0x7fffffff + }; + + inline constexpr _Ios_Iostate + operator&(_Ios_Iostate __a, _Ios_Iostate __b) + { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } + + inline constexpr _Ios_Iostate + operator|(_Ios_Iostate __a, _Ios_Iostate __b) + { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } + + inline constexpr _Ios_Iostate + operator^(_Ios_Iostate __a, _Ios_Iostate __b) + { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } + + inline constexpr _Ios_Iostate + operator~(_Ios_Iostate __a) + { return _Ios_Iostate(~static_cast(__a)); } + + inline const _Ios_Iostate& + operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) + { return __a = __a | __b; } + + inline const _Ios_Iostate& + operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) + { return __a = __a & __b; } + + inline const _Ios_Iostate& + operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) + { return __a = __a ^ __b; } + + + enum _Ios_Seekdir + { + _S_beg = 0, + _S_cur = 1, + _S_end = 2, + _S_ios_seekdir_end = 1L << 16 + }; + + + + enum class io_errc { stream = 1 }; + + template <> struct is_error_code_enum : public true_type { }; + + const error_category& iostream_category() noexcept; + + inline error_code + make_error_code(io_errc e) noexcept + { return error_code(static_cast(e), iostream_category()); } + + inline error_condition + make_error_condition(io_errc e) noexcept + { return error_condition(static_cast(e), iostream_category()); } +# 228 "/usr/include/c++/5/bits/ios_base.h" 3 + class ios_base + { +# 246 "/usr/include/c++/5/bits/ios_base.h" 3 + public: +# 255 "/usr/include/c++/5/bits/ios_base.h" 3 + class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error + { + public: + explicit + failure(const string& __str); + + + explicit + failure(const string&, const error_code&); + + explicit + failure(const char*, const error_code& = io_errc::stream); + + + virtual + ~failure() throw(); + + virtual const char* + what() const throw(); + }; +# 323 "/usr/include/c++/5/bits/ios_base.h" 3 + typedef _Ios_Fmtflags fmtflags; + + + static const fmtflags boolalpha = _S_boolalpha; + + + static const fmtflags dec = _S_dec; + + + static const fmtflags fixed = _S_fixed; + + + static const fmtflags hex = _S_hex; + + + + + static const fmtflags internal = _S_internal; + + + + static const fmtflags left = _S_left; + + + static const fmtflags oct = _S_oct; + + + + static const fmtflags right = _S_right; + + + static const fmtflags scientific = _S_scientific; + + + + static const fmtflags showbase = _S_showbase; + + + + static const fmtflags showpoint = _S_showpoint; + + + static const fmtflags showpos = _S_showpos; + + + static const fmtflags skipws = _S_skipws; + + + static const fmtflags unitbuf = _S_unitbuf; + + + + static const fmtflags uppercase = _S_uppercase; + + + static const fmtflags adjustfield = _S_adjustfield; + + + static const fmtflags basefield = _S_basefield; + + + static const fmtflags floatfield = _S_floatfield; +# 398 "/usr/include/c++/5/bits/ios_base.h" 3 + typedef _Ios_Iostate iostate; + + + + static const iostate badbit = _S_badbit; + + + static const iostate eofbit = _S_eofbit; + + + + + static const iostate failbit = _S_failbit; + + + static const iostate goodbit = _S_goodbit; +# 429 "/usr/include/c++/5/bits/ios_base.h" 3 + typedef _Ios_Openmode openmode; + + + static const openmode app = _S_app; + + + static const openmode ate = _S_ate; + + + + + static const openmode binary = _S_bin; + + + static const openmode in = _S_in; + + + static const openmode out = _S_out; + + + static const openmode trunc = _S_trunc; +# 461 "/usr/include/c++/5/bits/ios_base.h" 3 + typedef _Ios_Seekdir seekdir; + + + static const seekdir beg = _S_beg; + + + static const seekdir cur = _S_cur; + + + static const seekdir end = _S_end; + + + typedef int io_state; + typedef int open_mode; + typedef int seek_dir; + + typedef std::streampos streampos; + typedef std::streamoff streamoff; +# 487 "/usr/include/c++/5/bits/ios_base.h" 3 + enum event + { + erase_event, + imbue_event, + copyfmt_event + }; +# 504 "/usr/include/c++/5/bits/ios_base.h" 3 + typedef void (*event_callback) (event __e, ios_base& __b, int __i); +# 516 "/usr/include/c++/5/bits/ios_base.h" 3 + void + register_callback(event_callback __fn, int __index); + + protected: + streamsize _M_precision; + streamsize _M_width; + fmtflags _M_flags; + iostate _M_exception; + iostate _M_streambuf_state; + + + + struct _Callback_list + { + + _Callback_list* _M_next; + ios_base::event_callback _M_fn; + int _M_index; + _Atomic_word _M_refcount; + + _Callback_list(ios_base::event_callback __fn, int __index, + _Callback_list* __cb) + : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } + + void + _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } + + + int + _M_remove_reference() + { + + ; + int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); + if (__res == 0) + { + ; + } + return __res; + } + }; + + _Callback_list* _M_callbacks; + + void + _M_call_callbacks(event __ev) throw(); + + void + _M_dispose_callbacks(void) throw(); + + + struct _Words + { + void* _M_pword; + long _M_iword; + _Words() : _M_pword(0), _M_iword(0) { } + }; + + + _Words _M_word_zero; + + + + enum { _S_local_word_size = 8 }; + _Words _M_local_word[_S_local_word_size]; + + + int _M_word_size; + _Words* _M_word; + + _Words& + _M_grow_words(int __index, bool __iword); + + + locale _M_ios_locale; + + void + _M_init() throw(); + + public: + + + + + + class Init + { + friend class ios_base; + public: + Init(); + ~Init(); + + private: + static _Atomic_word _S_refcount; + static bool _S_synced_with_stdio; + }; + + + + + + + fmtflags + flags() const + { return _M_flags; } +# 629 "/usr/include/c++/5/bits/ios_base.h" 3 + fmtflags + flags(fmtflags __fmtfl) + { + fmtflags __old = _M_flags; + _M_flags = __fmtfl; + return __old; + } +# 645 "/usr/include/c++/5/bits/ios_base.h" 3 + fmtflags + setf(fmtflags __fmtfl) + { + fmtflags __old = _M_flags; + _M_flags |= __fmtfl; + return __old; + } +# 662 "/usr/include/c++/5/bits/ios_base.h" 3 + fmtflags + setf(fmtflags __fmtfl, fmtflags __mask) + { + fmtflags __old = _M_flags; + _M_flags &= ~__mask; + _M_flags |= (__fmtfl & __mask); + return __old; + } + + + + + + + + void + unsetf(fmtflags __mask) + { _M_flags &= ~__mask; } +# 688 "/usr/include/c++/5/bits/ios_base.h" 3 + streamsize + precision() const + { return _M_precision; } + + + + + + + streamsize + precision(streamsize __prec) + { + streamsize __old = _M_precision; + _M_precision = __prec; + return __old; + } + + + + + + + + streamsize + width() const + { return _M_width; } + + + + + + + streamsize + width(streamsize __wide) + { + streamsize __old = _M_width; + _M_width = __wide; + return __old; + } +# 739 "/usr/include/c++/5/bits/ios_base.h" 3 + static bool + sync_with_stdio(bool __sync = true); +# 751 "/usr/include/c++/5/bits/ios_base.h" 3 + locale + imbue(const locale& __loc) throw(); +# 762 "/usr/include/c++/5/bits/ios_base.h" 3 + locale + getloc() const + { return _M_ios_locale; } +# 773 "/usr/include/c++/5/bits/ios_base.h" 3 + const locale& + _M_getloc() const + { return _M_ios_locale; } +# 792 "/usr/include/c++/5/bits/ios_base.h" 3 + static int + xalloc() throw(); +# 808 "/usr/include/c++/5/bits/ios_base.h" 3 + long& + iword(int __ix) + { + _Words& __word = (__ix < _M_word_size) + ? _M_word[__ix] : _M_grow_words(__ix, true); + return __word._M_iword; + } +# 829 "/usr/include/c++/5/bits/ios_base.h" 3 + void*& + pword(int __ix) + { + _Words& __word = (__ix < _M_word_size) + ? _M_word[__ix] : _M_grow_words(__ix, false); + return __word._M_pword; + } +# 846 "/usr/include/c++/5/bits/ios_base.h" 3 + virtual ~ios_base(); + + protected: + ios_base() throw (); +# 860 "/usr/include/c++/5/bits/ios_base.h" 3 + public: + ios_base(const ios_base&) = delete; + + ios_base& + operator=(const ios_base&) = delete; + + protected: + void + _M_move(ios_base&) noexcept; + + void + _M_swap(ios_base& __rhs) noexcept; + + }; + + + + inline ios_base& + boolalpha(ios_base& __base) + { + __base.setf(ios_base::boolalpha); + return __base; + } + + + inline ios_base& + noboolalpha(ios_base& __base) + { + __base.unsetf(ios_base::boolalpha); + return __base; + } + + + inline ios_base& + showbase(ios_base& __base) + { + __base.setf(ios_base::showbase); + return __base; + } + + + inline ios_base& + noshowbase(ios_base& __base) + { + __base.unsetf(ios_base::showbase); + return __base; + } + + + inline ios_base& + showpoint(ios_base& __base) + { + __base.setf(ios_base::showpoint); + return __base; + } + + + inline ios_base& + noshowpoint(ios_base& __base) + { + __base.unsetf(ios_base::showpoint); + return __base; + } + + + inline ios_base& + showpos(ios_base& __base) + { + __base.setf(ios_base::showpos); + return __base; + } + + + inline ios_base& + noshowpos(ios_base& __base) + { + __base.unsetf(ios_base::showpos); + return __base; + } + + + inline ios_base& + skipws(ios_base& __base) + { + __base.setf(ios_base::skipws); + return __base; + } + + + inline ios_base& + noskipws(ios_base& __base) + { + __base.unsetf(ios_base::skipws); + return __base; + } + + + inline ios_base& + uppercase(ios_base& __base) + { + __base.setf(ios_base::uppercase); + return __base; + } + + + inline ios_base& + nouppercase(ios_base& __base) + { + __base.unsetf(ios_base::uppercase); + return __base; + } + + + inline ios_base& + unitbuf(ios_base& __base) + { + __base.setf(ios_base::unitbuf); + return __base; + } + + + inline ios_base& + nounitbuf(ios_base& __base) + { + __base.unsetf(ios_base::unitbuf); + return __base; + } + + + + inline ios_base& + internal(ios_base& __base) + { + __base.setf(ios_base::internal, ios_base::adjustfield); + return __base; + } + + + inline ios_base& + left(ios_base& __base) + { + __base.setf(ios_base::left, ios_base::adjustfield); + return __base; + } + + + inline ios_base& + right(ios_base& __base) + { + __base.setf(ios_base::right, ios_base::adjustfield); + return __base; + } + + + + inline ios_base& + dec(ios_base& __base) + { + __base.setf(ios_base::dec, ios_base::basefield); + return __base; + } + + + inline ios_base& + hex(ios_base& __base) + { + __base.setf(ios_base::hex, ios_base::basefield); + return __base; + } + + + inline ios_base& + oct(ios_base& __base) + { + __base.setf(ios_base::oct, ios_base::basefield); + return __base; + } + + + + inline ios_base& + fixed(ios_base& __base) + { + __base.setf(ios_base::fixed, ios_base::floatfield); + return __base; + } + + + inline ios_base& + scientific(ios_base& __base) + { + __base.setf(ios_base::scientific, ios_base::floatfield); + return __base; + } + + + + + + + inline ios_base& + hexfloat(ios_base& __base) + { + __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); + return __base; + } + + + inline ios_base& + defaultfloat(ios_base& __base) + { + __base.unsetf(ios_base::floatfield); + return __base; + } + + + +} +# 43 "/usr/include/c++/5/ios" 2 3 +# 1 "/usr/include/c++/5/streambuf" 1 3 +# 36 "/usr/include/c++/5/streambuf" 3 + +# 37 "/usr/include/c++/5/streambuf" 3 +# 45 "/usr/include/c++/5/streambuf" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + streamsize + __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, + basic_streambuf<_CharT, _Traits>*, bool&); +# 119 "/usr/include/c++/5/streambuf" 3 + template + class basic_streambuf + { + public: + + + + + + + typedef _CharT char_type; + typedef _Traits traits_type; + typedef typename traits_type::int_type int_type; + typedef typename traits_type::pos_type pos_type; + typedef typename traits_type::off_type off_type; + + + + + typedef basic_streambuf __streambuf_type; + + + friend class basic_ios; + friend class basic_istream; + friend class basic_ostream; + friend class istreambuf_iterator; + friend class ostreambuf_iterator; + + friend streamsize + __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); + + template + friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, + _CharT2*>::__type + __copy_move_a2(istreambuf_iterator<_CharT2>, + istreambuf_iterator<_CharT2>, _CharT2*); + + template + friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, + istreambuf_iterator<_CharT2> >::__type + find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, + const _CharT2&); + + template + friend basic_istream<_CharT2, _Traits2>& + operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); + + template + friend basic_istream<_CharT2, _Traits2>& + operator>>(basic_istream<_CharT2, _Traits2>&, + basic_string<_CharT2, _Traits2, _Alloc>&); + + template + friend basic_istream<_CharT2, _Traits2>& + getline(basic_istream<_CharT2, _Traits2>&, + basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); + + protected: + + + + + + + + char_type* _M_in_beg; + char_type* _M_in_cur; + char_type* _M_in_end; + char_type* _M_out_beg; + char_type* _M_out_cur; + char_type* _M_out_end; + + + locale _M_buf_locale; + + public: + + virtual + ~basic_streambuf() + { } +# 208 "/usr/include/c++/5/streambuf" 3 + locale + pubimbue(const locale& __loc) + { + locale __tmp(this->getloc()); + this->imbue(__loc); + _M_buf_locale = __loc; + return __tmp; + } +# 225 "/usr/include/c++/5/streambuf" 3 + locale + getloc() const + { return _M_buf_locale; } +# 238 "/usr/include/c++/5/streambuf" 3 + basic_streambuf* + pubsetbuf(char_type* __s, streamsize __n) + { return this->setbuf(__s, __n); } +# 250 "/usr/include/c++/5/streambuf" 3 + pos_type + pubseekoff(off_type __off, ios_base::seekdir __way, + ios_base::openmode __mode = ios_base::in | ios_base::out) + { return this->seekoff(__off, __way, __mode); } +# 262 "/usr/include/c++/5/streambuf" 3 + pos_type + pubseekpos(pos_type __sp, + ios_base::openmode __mode = ios_base::in | ios_base::out) + { return this->seekpos(__sp, __mode); } + + + + + int + pubsync() { return this->sync(); } +# 283 "/usr/include/c++/5/streambuf" 3 + streamsize + in_avail() + { + const streamsize __ret = this->egptr() - this->gptr(); + return __ret ? __ret : this->showmanyc(); + } +# 297 "/usr/include/c++/5/streambuf" 3 + int_type + snextc() + { + int_type __ret = traits_type::eof(); + if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), + __ret), true)) + __ret = this->sgetc(); + return __ret; + } +# 315 "/usr/include/c++/5/streambuf" 3 + int_type + sbumpc() + { + int_type __ret; + if (__builtin_expect(this->gptr() < this->egptr(), true)) + { + __ret = traits_type::to_int_type(*this->gptr()); + this->gbump(1); + } + else + __ret = this->uflow(); + return __ret; + } +# 337 "/usr/include/c++/5/streambuf" 3 + int_type + sgetc() + { + int_type __ret; + if (__builtin_expect(this->gptr() < this->egptr(), true)) + __ret = traits_type::to_int_type(*this->gptr()); + else + __ret = this->underflow(); + return __ret; + } +# 356 "/usr/include/c++/5/streambuf" 3 + streamsize + sgetn(char_type* __s, streamsize __n) + { return this->xsgetn(__s, __n); } +# 371 "/usr/include/c++/5/streambuf" 3 + int_type + sputbackc(char_type __c) + { + int_type __ret; + const bool __testpos = this->eback() < this->gptr(); + if (__builtin_expect(!__testpos || + !traits_type::eq(__c, this->gptr()[-1]), false)) + __ret = this->pbackfail(traits_type::to_int_type(__c)); + else + { + this->gbump(-1); + __ret = traits_type::to_int_type(*this->gptr()); + } + return __ret; + } +# 396 "/usr/include/c++/5/streambuf" 3 + int_type + sungetc() + { + int_type __ret; + if (__builtin_expect(this->eback() < this->gptr(), true)) + { + this->gbump(-1); + __ret = traits_type::to_int_type(*this->gptr()); + } + else + __ret = this->pbackfail(); + return __ret; + } +# 423 "/usr/include/c++/5/streambuf" 3 + int_type + sputc(char_type __c) + { + int_type __ret; + if (__builtin_expect(this->pptr() < this->epptr(), true)) + { + *this->pptr() = __c; + this->pbump(1); + __ret = traits_type::to_int_type(__c); + } + else + __ret = this->overflow(traits_type::to_int_type(__c)); + return __ret; + } +# 449 "/usr/include/c++/5/streambuf" 3 + streamsize + sputn(const char_type* __s, streamsize __n) + { return this->xsputn(__s, __n); } + + protected: +# 463 "/usr/include/c++/5/streambuf" 3 + basic_streambuf() + : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), + _M_out_beg(0), _M_out_cur(0), _M_out_end(0), + _M_buf_locale(locale()) + { } +# 481 "/usr/include/c++/5/streambuf" 3 + char_type* + eback() const { return _M_in_beg; } + + char_type* + gptr() const { return _M_in_cur; } + + char_type* + egptr() const { return _M_in_end; } +# 497 "/usr/include/c++/5/streambuf" 3 + void + gbump(int __n) { _M_in_cur += __n; } +# 508 "/usr/include/c++/5/streambuf" 3 + void + setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) + { + _M_in_beg = __gbeg; + _M_in_cur = __gnext; + _M_in_end = __gend; + } +# 528 "/usr/include/c++/5/streambuf" 3 + char_type* + pbase() const { return _M_out_beg; } + + char_type* + pptr() const { return _M_out_cur; } + + char_type* + epptr() const { return _M_out_end; } +# 544 "/usr/include/c++/5/streambuf" 3 + void + pbump(int __n) { _M_out_cur += __n; } +# 554 "/usr/include/c++/5/streambuf" 3 + void + setp(char_type* __pbeg, char_type* __pend) + { + _M_out_beg = _M_out_cur = __pbeg; + _M_out_end = __pend; + } +# 575 "/usr/include/c++/5/streambuf" 3 + virtual void + imbue(const locale& __loc) + { } +# 590 "/usr/include/c++/5/streambuf" 3 + virtual basic_streambuf* + setbuf(char_type*, streamsize) + { return this; } +# 601 "/usr/include/c++/5/streambuf" 3 + virtual pos_type + seekoff(off_type, ios_base::seekdir, + ios_base::openmode = ios_base::in | ios_base::out) + { return pos_type(off_type(-1)); } +# 613 "/usr/include/c++/5/streambuf" 3 + virtual pos_type + seekpos(pos_type, + ios_base::openmode = ios_base::in | ios_base::out) + { return pos_type(off_type(-1)); } +# 626 "/usr/include/c++/5/streambuf" 3 + virtual int + sync() { return 0; } +# 648 "/usr/include/c++/5/streambuf" 3 + virtual streamsize + showmanyc() { return 0; } +# 664 "/usr/include/c++/5/streambuf" 3 + virtual streamsize + xsgetn(char_type* __s, streamsize __n); +# 686 "/usr/include/c++/5/streambuf" 3 + virtual int_type + underflow() + { return traits_type::eof(); } +# 699 "/usr/include/c++/5/streambuf" 3 + virtual int_type + uflow() + { + int_type __ret = traits_type::eof(); + const bool __testeof = traits_type::eq_int_type(this->underflow(), + __ret); + if (!__testeof) + { + __ret = traits_type::to_int_type(*this->gptr()); + this->gbump(1); + } + return __ret; + } +# 723 "/usr/include/c++/5/streambuf" 3 + virtual int_type + pbackfail(int_type __c = traits_type::eof()) + { return traits_type::eof(); } +# 741 "/usr/include/c++/5/streambuf" 3 + virtual streamsize + xsputn(const char_type* __s, streamsize __n); +# 767 "/usr/include/c++/5/streambuf" 3 + virtual int_type + overflow(int_type __c = traits_type::eof()) + { return traits_type::eof(); } + + + + public: +# 782 "/usr/include/c++/5/streambuf" 3 + void + stossc() + { + if (this->gptr() < this->egptr()) + this->gbump(1); + else + this->uflow(); + } + + + + void + __safe_gbump(streamsize __n) { _M_in_cur += __n; } + + void + __safe_pbump(streamsize __n) { _M_out_cur += __n; } + + + + + protected: + + basic_streambuf(const basic_streambuf&); + + basic_streambuf& + operator=(const basic_streambuf&); + + + void + swap(basic_streambuf& __sb) + { + std::swap(_M_in_beg, __sb._M_in_beg); + std::swap(_M_in_cur, __sb._M_in_cur); + std::swap(_M_in_end, __sb._M_in_end); + std::swap(_M_out_beg, __sb._M_out_beg); + std::swap(_M_out_cur, __sb._M_out_cur); + std::swap(_M_out_end, __sb._M_out_end); + std::swap(_M_buf_locale, __sb._M_buf_locale); + } + + }; + + + template + std::basic_streambuf<_CharT, _Traits>:: + basic_streambuf(const basic_streambuf&) = default; + + template + std::basic_streambuf<_CharT, _Traits>& + std::basic_streambuf<_CharT, _Traits>:: + operator=(const basic_streambuf&) = default; + + + + template<> + streamsize + __copy_streambufs_eof(basic_streambuf* __sbin, + basic_streambuf* __sbout, bool& __ineof); + + template<> + streamsize + __copy_streambufs_eof(basic_streambuf* __sbin, + basic_streambuf* __sbout, bool& __ineof); + + + +} + +# 1 "/usr/include/c++/5/bits/streambuf.tcc" 1 3 +# 37 "/usr/include/c++/5/bits/streambuf.tcc" 3 + +# 38 "/usr/include/c++/5/bits/streambuf.tcc" 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + streamsize + basic_streambuf<_CharT, _Traits>:: + xsgetn(char_type* __s, streamsize __n) + { + streamsize __ret = 0; + while (__ret < __n) + { + const streamsize __buf_len = this->egptr() - this->gptr(); + if (__buf_len) + { + const streamsize __remaining = __n - __ret; + const streamsize __len = std::min(__buf_len, __remaining); + traits_type::copy(__s, this->gptr(), __len); + __ret += __len; + __s += __len; + this->__safe_gbump(__len); + } + + if (__ret < __n) + { + const int_type __c = this->uflow(); + if (!traits_type::eq_int_type(__c, traits_type::eof())) + { + traits_type::assign(*__s++, traits_type::to_char_type(__c)); + ++__ret; + } + else + break; + } + } + return __ret; + } + + template + streamsize + basic_streambuf<_CharT, _Traits>:: + xsputn(const char_type* __s, streamsize __n) + { + streamsize __ret = 0; + while (__ret < __n) + { + const streamsize __buf_len = this->epptr() - this->pptr(); + if (__buf_len) + { + const streamsize __remaining = __n - __ret; + const streamsize __len = std::min(__buf_len, __remaining); + traits_type::copy(this->pptr(), __s, __len); + __ret += __len; + __s += __len; + this->__safe_pbump(__len); + } + + if (__ret < __n) + { + int_type __c = this->overflow(traits_type::to_int_type(*__s)); + if (!traits_type::eq_int_type(__c, traits_type::eof())) + { + ++__ret; + ++__s; + } + else + break; + } + } + return __ret; + } + + + + + template + streamsize + __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, + basic_streambuf<_CharT, _Traits>* __sbout, + bool& __ineof) + { + streamsize __ret = 0; + __ineof = true; + typename _Traits::int_type __c = __sbin->sgetc(); + while (!_Traits::eq_int_type(__c, _Traits::eof())) + { + __c = __sbout->sputc(_Traits::to_char_type(__c)); + if (_Traits::eq_int_type(__c, _Traits::eof())) + { + __ineof = false; + break; + } + ++__ret; + __c = __sbin->snextc(); + } + return __ret; + } + + template + inline streamsize + __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, + basic_streambuf<_CharT, _Traits>* __sbout) + { + bool __ineof; + return __copy_streambufs_eof(__sbin, __sbout, __ineof); + } + + + + + extern template class basic_streambuf; + extern template + streamsize + __copy_streambufs(basic_streambuf*, + basic_streambuf*); + extern template + streamsize + __copy_streambufs_eof(basic_streambuf*, + basic_streambuf*, bool&); + + + extern template class basic_streambuf; + extern template + streamsize + __copy_streambufs(basic_streambuf*, + basic_streambuf*); + extern template + streamsize + __copy_streambufs_eof(basic_streambuf*, + basic_streambuf*, bool&); + + + + +} +# 851 "/usr/include/c++/5/streambuf" 2 3 +# 44 "/usr/include/c++/5/ios" 2 3 +# 1 "/usr/include/c++/5/bits/basic_ios.h" 1 3 +# 33 "/usr/include/c++/5/bits/basic_ios.h" 3 + +# 34 "/usr/include/c++/5/bits/basic_ios.h" 3 + + + +# 1 "/usr/include/c++/5/bits/locale_facets.h" 1 3 +# 37 "/usr/include/c++/5/bits/locale_facets.h" 3 + +# 38 "/usr/include/c++/5/bits/locale_facets.h" 3 + +# 1 "/usr/include/c++/5/cwctype" 1 3 +# 39 "/usr/include/c++/5/cwctype" 3 + +# 40 "/usr/include/c++/5/cwctype" 3 +# 50 "/usr/include/c++/5/cwctype" 3 +# 1 "/usr/include/wctype.h" 1 3 4 +# 33 "/usr/include/wctype.h" 3 4 +# 1 "/usr/include/wchar.h" 1 3 4 +# 34 "/usr/include/wctype.h" 2 3 4 +# 49 "/usr/include/wctype.h" 3 4 + + + +typedef unsigned long int wctype_t; + +# 71 "/usr/include/wctype.h" 3 4 +enum +{ + __ISwupper = 0, + __ISwlower = 1, + __ISwalpha = 2, + __ISwdigit = 3, + __ISwxdigit = 4, + __ISwspace = 5, + __ISwprint = 6, + __ISwgraph = 7, + __ISwblank = 8, + __ISwcntrl = 9, + __ISwpunct = 10, + __ISwalnum = 11, + + _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), + _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), + _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), + _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), + _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), + _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), + _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), + _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), + _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), + _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), + _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), + _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) +}; + + + +extern "C" { + + + + + + + + +extern int iswalnum (wint_t __wc) throw (); + + + + + +extern int iswalpha (wint_t __wc) throw (); + + +extern int iswcntrl (wint_t __wc) throw (); + + + +extern int iswdigit (wint_t __wc) throw (); + + + +extern int iswgraph (wint_t __wc) throw (); + + + + +extern int iswlower (wint_t __wc) throw (); + + +extern int iswprint (wint_t __wc) throw (); + + + + +extern int iswpunct (wint_t __wc) throw (); + + + + +extern int iswspace (wint_t __wc) throw (); + + + + +extern int iswupper (wint_t __wc) throw (); + + + + +extern int iswxdigit (wint_t __wc) throw (); + + + + + +extern int iswblank (wint_t __wc) throw (); +# 171 "/usr/include/wctype.h" 3 4 +extern wctype_t wctype (const char *__property) throw (); + + + +extern int iswctype (wint_t __wc, wctype_t __desc) throw (); + + + + + + + + + + +typedef const __int32_t *wctrans_t; + + + + + + + +extern wint_t towlower (wint_t __wc) throw (); + + +extern wint_t towupper (wint_t __wc) throw (); + + +} +# 213 "/usr/include/wctype.h" 3 4 +extern "C" { + + + + +extern wctrans_t wctrans (const char *__property) throw (); + + +extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); + + + + + + + + +extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw (); + + + + + +extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw (); + + +extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw (); + + + +extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw (); + + + +extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw (); + + + + +extern int iswlower_l (wint_t __wc, __locale_t __locale) throw (); + + +extern int iswprint_l (wint_t __wc, __locale_t __locale) throw (); + + + + +extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw (); + + + + +extern int iswspace_l (wint_t __wc, __locale_t __locale) throw (); + + + + +extern int iswupper_l (wint_t __wc, __locale_t __locale) throw (); + + + + +extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw (); + + + + +extern int iswblank_l (wint_t __wc, __locale_t __locale) throw (); + + + +extern wctype_t wctype_l (const char *__property, __locale_t __locale) + throw (); + + + +extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale) + throw (); + + + + + + + +extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw (); + + +extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw (); + + + +extern wctrans_t wctrans_l (const char *__property, __locale_t __locale) + throw (); + + +extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, + __locale_t __locale) throw (); + + + +} +# 51 "/usr/include/c++/5/cwctype" 2 3 +# 80 "/usr/include/c++/5/cwctype" 3 +namespace std +{ + using ::wctrans_t; + using ::wctype_t; + using ::wint_t; + + using ::iswalnum; + using ::iswalpha; + + using ::iswblank; + + using ::iswcntrl; + using ::iswctype; + using ::iswdigit; + using ::iswgraph; + using ::iswlower; + using ::iswprint; + using ::iswpunct; + using ::iswspace; + using ::iswupper; + using ::iswxdigit; + using ::towctrans; + using ::towlower; + using ::towupper; + using ::wctrans; + using ::wctype; +} +# 40 "/usr/include/c++/5/bits/locale_facets.h" 2 3 +# 1 "/usr/include/c++/5/cctype" 1 3 +# 39 "/usr/include/c++/5/cctype" 3 + +# 40 "/usr/include/c++/5/cctype" 3 +# 41 "/usr/include/c++/5/bits/locale_facets.h" 2 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h" 1 3 +# 36 "/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + struct ctype_base + { + + typedef const int* __to_type; + + + + typedef unsigned short mask; + static const mask upper = _ISupper; + static const mask lower = _ISlower; + static const mask alpha = _ISalpha; + static const mask digit = _ISdigit; + static const mask xdigit = _ISxdigit; + static const mask space = _ISspace; + static const mask print = _ISprint; + static const mask graph = _ISalpha | _ISdigit | _ISpunct; + static const mask cntrl = _IScntrl; + static const mask punct = _ISpunct; + static const mask alnum = _ISalpha | _ISdigit; + + static const mask blank = _ISblank; + + }; + + +} +# 42 "/usr/include/c++/5/bits/locale_facets.h" 2 3 + + + + + + +# 1 "/usr/include/c++/5/bits/streambuf_iterator.h" 1 3 +# 33 "/usr/include/c++/5/bits/streambuf_iterator.h" 3 + +# 34 "/usr/include/c++/5/bits/streambuf_iterator.h" 3 + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 49 "/usr/include/c++/5/bits/streambuf_iterator.h" 3 + template + class istreambuf_iterator + : public iterator + + + + { + public: + + + + typedef _CharT char_type; + typedef _Traits traits_type; + typedef typename _Traits::int_type int_type; + typedef basic_streambuf<_CharT, _Traits> streambuf_type; + typedef basic_istream<_CharT, _Traits> istream_type; + + + template + friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, + ostreambuf_iterator<_CharT2> >::__type + copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, + ostreambuf_iterator<_CharT2>); + + template + friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, + _CharT2*>::__type + __copy_move_a2(istreambuf_iterator<_CharT2>, + istreambuf_iterator<_CharT2>, _CharT2*); + + template + friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, + istreambuf_iterator<_CharT2> >::__type + find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, + const _CharT2&); + + private: + + + + + + + + mutable streambuf_type* _M_sbuf; + mutable int_type _M_c; + + public: + + constexpr istreambuf_iterator() noexcept + : _M_sbuf(0), _M_c(traits_type::eof()) { } + + + istreambuf_iterator(const istreambuf_iterator&) noexcept = default; + + ~istreambuf_iterator() = default; + + + + istreambuf_iterator(istream_type& __s) noexcept + : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } + + + istreambuf_iterator(streambuf_type* __s) noexcept + : _M_sbuf(__s), _M_c(traits_type::eof()) { } + + + + + char_type + operator*() const + { + + + + + + + + return traits_type::to_char_type(_M_get()); + } + + + istreambuf_iterator& + operator++() + { + + + ; + if (_M_sbuf) + { + _M_sbuf->sbumpc(); + _M_c = traits_type::eof(); + } + return *this; + } + + + istreambuf_iterator + operator++(int) + { + + + ; + + istreambuf_iterator __old = *this; + if (_M_sbuf) + { + __old._M_c = _M_sbuf->sbumpc(); + _M_c = traits_type::eof(); + } + return __old; + } + + + + + + bool + equal(const istreambuf_iterator& __b) const + { return _M_at_eof() == __b._M_at_eof(); } + + private: + int_type + _M_get() const + { + const int_type __eof = traits_type::eof(); + int_type __ret = __eof; + if (_M_sbuf) + { + if (!traits_type::eq_int_type(_M_c, __eof)) + __ret = _M_c; + else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()), + __eof)) + _M_c = __ret; + else + _M_sbuf = 0; + } + return __ret; + } + + bool + _M_at_eof() const + { + const int_type __eof = traits_type::eof(); + return traits_type::eq_int_type(_M_get(), __eof); + } + }; + + template + inline bool + operator==(const istreambuf_iterator<_CharT, _Traits>& __a, + const istreambuf_iterator<_CharT, _Traits>& __b) + { return __a.equal(__b); } + + template + inline bool + operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, + const istreambuf_iterator<_CharT, _Traits>& __b) + { return !__a.equal(__b); } + + + template + class ostreambuf_iterator + : public iterator + { + public: + + + + typedef _CharT char_type; + typedef _Traits traits_type; + typedef basic_streambuf<_CharT, _Traits> streambuf_type; + typedef basic_ostream<_CharT, _Traits> ostream_type; + + + template + friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, + ostreambuf_iterator<_CharT2> >::__type + copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, + ostreambuf_iterator<_CharT2>); + + private: + streambuf_type* _M_sbuf; + bool _M_failed; + + public: + + ostreambuf_iterator(ostream_type& __s) noexcept + : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } + + + ostreambuf_iterator(streambuf_type* __s) noexcept + : _M_sbuf(__s), _M_failed(!_M_sbuf) { } + + + ostreambuf_iterator& + operator=(_CharT __c) + { + if (!_M_failed && + _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) + _M_failed = true; + return *this; + } + + + ostreambuf_iterator& + operator*() + { return *this; } + + + ostreambuf_iterator& + operator++(int) + { return *this; } + + + ostreambuf_iterator& + operator++() + { return *this; } + + + bool + failed() const noexcept + { return _M_failed; } + + ostreambuf_iterator& + _M_put(const _CharT* __ws, streamsize __len) + { + if (__builtin_expect(!_M_failed, true) + && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, + false)) + _M_failed = true; + return *this; + } + }; + + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT> >::__type + copy(istreambuf_iterator<_CharT> __first, + istreambuf_iterator<_CharT> __last, + ostreambuf_iterator<_CharT> __result) + { + if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) + { + bool __ineof; + __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); + if (!__ineof) + __result._M_failed = true; + } + return __result; + } + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT> >::__type + __copy_move_a2(_CharT* __first, _CharT* __last, + ostreambuf_iterator<_CharT> __result) + { + const streamsize __num = __last - __first; + if (__num > 0) + __result._M_put(__first, __num); + return __result; + } + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT> >::__type + __copy_move_a2(const _CharT* __first, const _CharT* __last, + ostreambuf_iterator<_CharT> __result) + { + const streamsize __num = __last - __first; + if (__num > 0) + __result._M_put(__first, __num); + return __result; + } + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + _CharT*>::__type + __copy_move_a2(istreambuf_iterator<_CharT> __first, + istreambuf_iterator<_CharT> __last, _CharT* __result) + { + typedef istreambuf_iterator<_CharT> __is_iterator_type; + typedef typename __is_iterator_type::traits_type traits_type; + typedef typename __is_iterator_type::streambuf_type streambuf_type; + typedef typename traits_type::int_type int_type; + + if (__first._M_sbuf && !__last._M_sbuf) + { + streambuf_type* __sb = __first._M_sbuf; + int_type __c = __sb->sgetc(); + while (!traits_type::eq_int_type(__c, traits_type::eof())) + { + const streamsize __n = __sb->egptr() - __sb->gptr(); + if (__n > 1) + { + traits_type::copy(__result, __sb->gptr(), __n); + __sb->__safe_gbump(__n); + __result += __n; + __c = __sb->underflow(); + } + else + { + *__result++ = traits_type::to_char_type(__c); + __c = __sb->snextc(); + } + } + } + return __result; + } + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + istreambuf_iterator<_CharT> >::__type + find(istreambuf_iterator<_CharT> __first, + istreambuf_iterator<_CharT> __last, const _CharT& __val) + { + typedef istreambuf_iterator<_CharT> __is_iterator_type; + typedef typename __is_iterator_type::traits_type traits_type; + typedef typename __is_iterator_type::streambuf_type streambuf_type; + typedef typename traits_type::int_type int_type; + + if (__first._M_sbuf && !__last._M_sbuf) + { + const int_type __ival = traits_type::to_int_type(__val); + streambuf_type* __sb = __first._M_sbuf; + int_type __c = __sb->sgetc(); + while (!traits_type::eq_int_type(__c, traits_type::eof()) + && !traits_type::eq_int_type(__c, __ival)) + { + streamsize __n = __sb->egptr() - __sb->gptr(); + if (__n > 1) + { + const _CharT* __p = traits_type::find(__sb->gptr(), + __n, __val); + if (__p) + __n = __p - __sb->gptr(); + __sb->__safe_gbump(__n); + __c = __sb->sgetc(); + } + else + __c = __sb->snextc(); + } + + if (!traits_type::eq_int_type(__c, traits_type::eof())) + __first._M_c = __c; + else + __first._M_sbuf = 0; + } + return __first; + } + + + + +} +# 49 "/usr/include/c++/5/bits/locale_facets.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/include/c++/5/bits/locale_facets.h" 3 + template + void + __convert_to_v(const char*, _Tp&, ios_base::iostate&, + const __c_locale&) throw(); + + + template<> + void + __convert_to_v(const char*, float&, ios_base::iostate&, + const __c_locale&) throw(); + + template<> + void + __convert_to_v(const char*, double&, ios_base::iostate&, + const __c_locale&) throw(); + + template<> + void + __convert_to_v(const char*, long double&, ios_base::iostate&, + const __c_locale&) throw(); + + + + template + struct __pad + { + static void + _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, + const _CharT* __olds, streamsize __newlen, streamsize __oldlen); + }; + + + + + + + template + _CharT* + __add_grouping(_CharT* __s, _CharT __sep, + const char* __gbeg, size_t __gsize, + const _CharT* __first, const _CharT* __last); + + + + + template + inline + ostreambuf_iterator<_CharT> + __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) + { + __s._M_put(__ws, __len); + return __s; + } + + + template + inline + _OutIter + __write(_OutIter __s, const _CharT* __ws, int __len) + { + for (int __j = 0; __j < __len; __j++, ++__s) + *__s = __ws[__j]; + return __s; + } +# 149 "/usr/include/c++/5/bits/locale_facets.h" 3 + template + class __ctype_abstract_base : public locale::facet, public ctype_base + { + public: + + + typedef _CharT char_type; +# 168 "/usr/include/c++/5/bits/locale_facets.h" 3 + bool + is(mask __m, char_type __c) const + { return this->do_is(__m, __c); } +# 185 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + is(const char_type *__lo, const char_type *__hi, mask *__vec) const + { return this->do_is(__lo, __hi, __vec); } +# 201 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + scan_is(mask __m, const char_type* __lo, const char_type* __hi) const + { return this->do_scan_is(__m, __lo, __hi); } +# 217 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + scan_not(mask __m, const char_type* __lo, const char_type* __hi) const + { return this->do_scan_not(__m, __lo, __hi); } +# 231 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + toupper(char_type __c) const + { return this->do_toupper(__c); } +# 246 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + toupper(char_type *__lo, const char_type* __hi) const + { return this->do_toupper(__lo, __hi); } +# 260 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + tolower(char_type __c) const + { return this->do_tolower(__c); } +# 275 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + tolower(char_type* __lo, const char_type* __hi) const + { return this->do_tolower(__lo, __hi); } +# 292 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + widen(char __c) const + { return this->do_widen(__c); } +# 311 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char* + widen(const char* __lo, const char* __hi, char_type* __to) const + { return this->do_widen(__lo, __hi, __to); } +# 330 "/usr/include/c++/5/bits/locale_facets.h" 3 + char + narrow(char_type __c, char __dfault) const + { return this->do_narrow(__c, __dfault); } +# 352 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + narrow(const char_type* __lo, const char_type* __hi, + char __dfault, char* __to) const + { return this->do_narrow(__lo, __hi, __dfault, __to); } + + protected: + explicit + __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } + + virtual + ~__ctype_abstract_base() { } +# 377 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual bool + do_is(mask __m, char_type __c) const = 0; +# 396 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_is(const char_type* __lo, const char_type* __hi, + mask* __vec) const = 0; +# 415 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_scan_is(mask __m, const char_type* __lo, + const char_type* __hi) const = 0; +# 434 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_scan_not(mask __m, const char_type* __lo, + const char_type* __hi) const = 0; +# 452 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_toupper(char_type __c) const = 0; +# 469 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_toupper(char_type* __lo, const char_type* __hi) const = 0; +# 485 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_tolower(char_type __c) const = 0; +# 502 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_tolower(char_type* __lo, const char_type* __hi) const = 0; +# 521 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_widen(char __c) const = 0; +# 542 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char* + do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; +# 563 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char + do_narrow(char_type __c, char __dfault) const = 0; +# 588 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_narrow(const char_type* __lo, const char_type* __hi, + char __dfault, char* __to) const = 0; + }; +# 611 "/usr/include/c++/5/bits/locale_facets.h" 3 + template + class ctype : public __ctype_abstract_base<_CharT> + { + public: + + typedef _CharT char_type; + typedef typename __ctype_abstract_base<_CharT>::mask mask; + + + static locale::id id; + + explicit + ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } + + protected: + virtual + ~ctype(); + + virtual bool + do_is(mask __m, char_type __c) const; + + virtual const char_type* + do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; + + virtual const char_type* + do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; + + virtual const char_type* + do_scan_not(mask __m, const char_type* __lo, + const char_type* __hi) const; + + virtual char_type + do_toupper(char_type __c) const; + + virtual const char_type* + do_toupper(char_type* __lo, const char_type* __hi) const; + + virtual char_type + do_tolower(char_type __c) const; + + virtual const char_type* + do_tolower(char_type* __lo, const char_type* __hi) const; + + virtual char_type + do_widen(char __c) const; + + virtual const char* + do_widen(const char* __lo, const char* __hi, char_type* __dest) const; + + virtual char + do_narrow(char_type, char __dfault) const; + + virtual const char_type* + do_narrow(const char_type* __lo, const char_type* __hi, + char __dfault, char* __to) const; + }; + + template + locale::id ctype<_CharT>::id; +# 680 "/usr/include/c++/5/bits/locale_facets.h" 3 + template<> + class ctype : public locale::facet, public ctype_base + { + public: + + + typedef char char_type; + + protected: + + __c_locale _M_c_locale_ctype; + bool _M_del; + __to_type _M_toupper; + __to_type _M_tolower; + const mask* _M_table; + mutable char _M_widen_ok; + mutable char _M_widen[1 + static_cast(-1)]; + mutable char _M_narrow[1 + static_cast(-1)]; + mutable char _M_narrow_ok; + + + public: + + static locale::id id; + + static const size_t table_size = 1 + static_cast(-1); +# 717 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); +# 730 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, + size_t __refs = 0); +# 743 "/usr/include/c++/5/bits/locale_facets.h" 3 + inline bool + is(mask __m, char __c) const; +# 758 "/usr/include/c++/5/bits/locale_facets.h" 3 + inline const char* + is(const char* __lo, const char* __hi, mask* __vec) const; +# 772 "/usr/include/c++/5/bits/locale_facets.h" 3 + inline const char* + scan_is(mask __m, const char* __lo, const char* __hi) const; +# 786 "/usr/include/c++/5/bits/locale_facets.h" 3 + inline const char* + scan_not(mask __m, const char* __lo, const char* __hi) const; +# 801 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + toupper(char_type __c) const + { return this->do_toupper(__c); } +# 818 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + toupper(char_type *__lo, const char_type* __hi) const + { return this->do_toupper(__lo, __hi); } +# 834 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + tolower(char_type __c) const + { return this->do_tolower(__c); } +# 851 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + tolower(char_type* __lo, const char_type* __hi) const + { return this->do_tolower(__lo, __hi); } +# 871 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + widen(char __c) const + { + if (_M_widen_ok) + return _M_widen[static_cast(__c)]; + this->_M_widen_init(); + return this->do_widen(__c); + } +# 898 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char* + widen(const char* __lo, const char* __hi, char_type* __to) const + { + if (_M_widen_ok == 1) + { + __builtin_memcpy(__to, __lo, __hi - __lo); + return __hi; + } + if (!_M_widen_ok) + _M_widen_init(); + return this->do_widen(__lo, __hi, __to); + } +# 929 "/usr/include/c++/5/bits/locale_facets.h" 3 + char + narrow(char_type __c, char __dfault) const + { + if (_M_narrow[static_cast(__c)]) + return _M_narrow[static_cast(__c)]; + const char __t = do_narrow(__c, __dfault); + if (__t != __dfault) + _M_narrow[static_cast(__c)] = __t; + return __t; + } +# 962 "/usr/include/c++/5/bits/locale_facets.h" 3 + const char_type* + narrow(const char_type* __lo, const char_type* __hi, + char __dfault, char* __to) const + { + if (__builtin_expect(_M_narrow_ok == 1, true)) + { + __builtin_memcpy(__to, __lo, __hi - __lo); + return __hi; + } + if (!_M_narrow_ok) + _M_narrow_init(); + return this->do_narrow(__lo, __hi, __dfault, __to); + } + + + + + + const mask* + table() const throw() + { return _M_table; } + + + static const mask* + classic_table() throw(); + protected: + + + + + + + + virtual + ~ctype(); +# 1011 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_toupper(char_type __c) const; +# 1028 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_toupper(char_type* __lo, const char_type* __hi) const; +# 1044 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_tolower(char_type __c) const; +# 1061 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_tolower(char_type* __lo, const char_type* __hi) const; +# 1081 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_widen(char __c) const + { return __c; } +# 1104 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char* + do_widen(const char* __lo, const char* __hi, char_type* __to) const + { + __builtin_memcpy(__to, __lo, __hi - __lo); + return __hi; + } +# 1130 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char + do_narrow(char_type __c, char __dfault) const + { return __c; } +# 1156 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_narrow(const char_type* __lo, const char_type* __hi, + char __dfault, char* __to) const + { + __builtin_memcpy(__to, __lo, __hi - __lo); + return __hi; + } + + private: + void _M_narrow_init() const; + void _M_widen_init() const; + }; +# 1181 "/usr/include/c++/5/bits/locale_facets.h" 3 + template<> + class ctype : public __ctype_abstract_base + { + public: + + + typedef wchar_t char_type; + typedef wctype_t __wmask_type; + + protected: + __c_locale _M_c_locale_ctype; + + + bool _M_narrow_ok; + char _M_narrow[128]; + wint_t _M_widen[1 + static_cast(-1)]; + + + mask _M_bit[16]; + __wmask_type _M_wmask[16]; + + public: + + + static locale::id id; +# 1214 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + ctype(size_t __refs = 0); +# 1225 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + ctype(__c_locale __cloc, size_t __refs = 0); + + protected: + __wmask_type + _M_convert_to_wmask(const mask __m) const throw(); + + + virtual + ~ctype(); +# 1249 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual bool + do_is(mask __m, char_type __c) const; +# 1268 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; +# 1286 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; +# 1304 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_scan_not(mask __m, const char_type* __lo, + const char_type* __hi) const; +# 1321 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_toupper(char_type __c) const; +# 1338 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_toupper(char_type* __lo, const char_type* __hi) const; +# 1354 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_tolower(char_type __c) const; +# 1371 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_tolower(char_type* __lo, const char_type* __hi) const; +# 1391 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_widen(char __c) const; +# 1413 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char* + do_widen(const char* __lo, const char* __hi, char_type* __to) const; +# 1436 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char + do_narrow(char_type __c, char __dfault) const; +# 1462 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual const char_type* + do_narrow(const char_type* __lo, const char_type* __hi, + char __dfault, char* __to) const; + + + void + _M_initialize_ctype() throw(); + }; + + + + template + class ctype_byname : public ctype<_CharT> + { + public: + typedef typename ctype<_CharT>::mask mask; + + explicit + ctype_byname(const char* __s, size_t __refs = 0); + + + explicit + ctype_byname(const string& __s, size_t __refs = 0) + : ctype_byname(__s.c_str(), __refs) { } + + + protected: + virtual + ~ctype_byname() { }; + }; + + + template<> + class ctype_byname : public ctype + { + public: + explicit + ctype_byname(const char* __s, size_t __refs = 0); + + + explicit + ctype_byname(const string& __s, size_t __refs = 0); + + + protected: + virtual + ~ctype_byname(); + }; + + + template<> + class ctype_byname : public ctype + { + public: + explicit + ctype_byname(const char* __s, size_t __refs = 0); + + + explicit + ctype_byname(const string& __s, size_t __refs = 0); + + + protected: + virtual + ~ctype_byname(); + }; + + + +} + + +# 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h" 1 3 +# 37 "/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + bool + ctype:: + is(mask __m, char __c) const + { return _M_table[static_cast(__c)] & __m; } + + const char* + ctype:: + is(const char* __low, const char* __high, mask* __vec) const + { + while (__low < __high) + *__vec++ = _M_table[static_cast(*__low++)]; + return __high; + } + + const char* + ctype:: + scan_is(mask __m, const char* __low, const char* __high) const + { + while (__low < __high + && !(_M_table[static_cast(*__low)] & __m)) + ++__low; + return __low; + } + + const char* + ctype:: + scan_not(mask __m, const char* __low, const char* __high) const + { + while (__low < __high + && (_M_table[static_cast(*__low)] & __m) != 0) + ++__low; + return __low; + } + + +} +# 1535 "/usr/include/c++/5/bits/locale_facets.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + class __num_base + { + public: + + + enum + { + _S_ominus, + _S_oplus, + _S_ox, + _S_oX, + _S_odigits, + _S_odigits_end = _S_odigits + 16, + _S_oudigits = _S_odigits_end, + _S_oudigits_end = _S_oudigits + 16, + _S_oe = _S_odigits + 14, + _S_oE = _S_oudigits + 14, + _S_oend = _S_oudigits_end + }; + + + + + + + static const char* _S_atoms_out; + + + + static const char* _S_atoms_in; + + enum + { + _S_iminus, + _S_iplus, + _S_ix, + _S_iX, + _S_izero, + _S_ie = _S_izero + 14, + _S_iE = _S_izero + 20, + _S_iend = 26 + }; + + + + static void + _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); + }; + + template + struct __numpunct_cache : public locale::facet + { + const char* _M_grouping; + size_t _M_grouping_size; + bool _M_use_grouping; + const _CharT* _M_truename; + size_t _M_truename_size; + const _CharT* _M_falsename; + size_t _M_falsename_size; + _CharT _M_decimal_point; + _CharT _M_thousands_sep; + + + + + + _CharT _M_atoms_out[__num_base::_S_oend]; + + + + + + _CharT _M_atoms_in[__num_base::_S_iend]; + + bool _M_allocated; + + __numpunct_cache(size_t __refs = 0) + : facet(__refs), _M_grouping(0), _M_grouping_size(0), + _M_use_grouping(false), + _M_truename(0), _M_truename_size(0), _M_falsename(0), + _M_falsename_size(0), _M_decimal_point(_CharT()), + _M_thousands_sep(_CharT()), _M_allocated(false) + { } + + ~__numpunct_cache(); + + void + _M_cache(const locale& __loc); + + private: + __numpunct_cache& + operator=(const __numpunct_cache&); + + explicit + __numpunct_cache(const __numpunct_cache&); + }; + + template + __numpunct_cache<_CharT>::~__numpunct_cache() + { + if (_M_allocated) + { + delete [] _M_grouping; + delete [] _M_truename; + delete [] _M_falsename; + } + } + +namespace __cxx11 { +# 1665 "/usr/include/c++/5/bits/locale_facets.h" 3 + template + class numpunct : public locale::facet + { + public: + + + + typedef _CharT char_type; + typedef basic_string<_CharT> string_type; + + typedef __numpunct_cache<_CharT> __cache_type; + + protected: + __cache_type* _M_data; + + public: + + static locale::id id; + + + + + + + explicit + numpunct(size_t __refs = 0) + : facet(__refs), _M_data(0) + { _M_initialize_numpunct(); } +# 1703 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + numpunct(__cache_type* __cache, size_t __refs = 0) + : facet(__refs), _M_data(__cache) + { _M_initialize_numpunct(); } +# 1717 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + numpunct(__c_locale __cloc, size_t __refs = 0) + : facet(__refs), _M_data(0) + { _M_initialize_numpunct(__cloc); } +# 1731 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + decimal_point() const + { return this->do_decimal_point(); } +# 1744 "/usr/include/c++/5/bits/locale_facets.h" 3 + char_type + thousands_sep() const + { return this->do_thousands_sep(); } +# 1775 "/usr/include/c++/5/bits/locale_facets.h" 3 + string + grouping() const + { return this->do_grouping(); } +# 1788 "/usr/include/c++/5/bits/locale_facets.h" 3 + string_type + truename() const + { return this->do_truename(); } +# 1801 "/usr/include/c++/5/bits/locale_facets.h" 3 + string_type + falsename() const + { return this->do_falsename(); } + + protected: + + virtual + ~numpunct(); +# 1818 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_decimal_point() const + { return _M_data->_M_decimal_point; } +# 1830 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual char_type + do_thousands_sep() const + { return _M_data->_M_thousands_sep; } +# 1843 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual string + do_grouping() const + { return _M_data->_M_grouping; } +# 1856 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual string_type + do_truename() const + { return _M_data->_M_truename; } +# 1869 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual string_type + do_falsename() const + { return _M_data->_M_falsename; } + + + void + _M_initialize_numpunct(__c_locale __cloc = 0); + }; + + template + locale::id numpunct<_CharT>::id; + + template<> + numpunct::~numpunct(); + + template<> + void + numpunct::_M_initialize_numpunct(__c_locale __cloc); + + + template<> + numpunct::~numpunct(); + + template<> + void + numpunct::_M_initialize_numpunct(__c_locale __cloc); + + + + template + class numpunct_byname : public numpunct<_CharT> + { + public: + typedef _CharT char_type; + typedef basic_string<_CharT> string_type; + + explicit + numpunct_byname(const char* __s, size_t __refs = 0) + : numpunct<_CharT>(__refs) + { + if (__builtin_strcmp(__s, "C") != 0 + && __builtin_strcmp(__s, "POSIX") != 0) + { + __c_locale __tmp; + this->_S_create_c_locale(__tmp, __s); + this->_M_initialize_numpunct(__tmp); + this->_S_destroy_c_locale(__tmp); + } + } + + + explicit + numpunct_byname(const string& __s, size_t __refs = 0) + : numpunct_byname(__s.c_str(), __refs) { } + + + protected: + virtual + ~numpunct_byname() { } + }; + +} + + +# 1947 "/usr/include/c++/5/bits/locale_facets.h" 3 + template + class num_get : public locale::facet + { + public: + + + + typedef _CharT char_type; + typedef _InIter iter_type; + + + + static locale::id id; +# 1968 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + num_get(size_t __refs = 0) : facet(__refs) { } +# 1994 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, bool& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } +# 2031 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, long& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned short& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned int& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned long& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, long long& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned long long& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } +# 2091 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, float& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, double& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, long double& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } +# 2134 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + get(iter_type __in, iter_type __end, ios_base& __io, + ios_base::iostate& __err, void*& __v) const + { return this->do_get(__in, __end, __io, __err, __v); } + + protected: + + virtual ~num_get() { } + + __attribute ((__abi_tag__ ("cxx11"))) + iter_type + _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, + string&) const; + + template + __attribute ((__abi_tag__ ("cxx11"))) + iter_type + _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, + _ValueT&) const; + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type + _M_find(const _CharT2*, size_t __len, _CharT2 __c) const + { + int __ret = -1; + if (__len <= 10) + { + if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) + __ret = __c - _CharT2('0'); + } + else + { + if (__c >= _CharT2('0') && __c <= _CharT2('9')) + __ret = __c - _CharT2('0'); + else if (__c >= _CharT2('a') && __c <= _CharT2('f')) + __ret = 10 + (__c - _CharT2('a')); + else if (__c >= _CharT2('A') && __c <= _CharT2('F')) + __ret = 10 + (__c - _CharT2('A')); + } + return __ret; + } + + template + typename __gnu_cxx::__enable_if::__value, + int>::__type + _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const + { + int __ret = -1; + const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); + if (__q) + { + __ret = __q - __zero; + if (__ret > 15) + __ret -= 6; + } + return __ret; + } +# 2207 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual iter_type + do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; + + virtual iter_type + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, long& __v) const + { return _M_extract_int(__beg, __end, __io, __err, __v); } + + virtual iter_type + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned short& __v) const + { return _M_extract_int(__beg, __end, __io, __err, __v); } + + virtual iter_type + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned int& __v) const + { return _M_extract_int(__beg, __end, __io, __err, __v); } + + virtual iter_type + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned long& __v) const + { return _M_extract_int(__beg, __end, __io, __err, __v); } + + + virtual iter_type + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, long long& __v) const + { return _M_extract_int(__beg, __end, __io, __err, __v); } + + virtual iter_type + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, unsigned long long& __v) const + { return _M_extract_int(__beg, __end, __io, __err, __v); } + + + virtual iter_type + do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; + + virtual iter_type + do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, + double&) const; + + + + + + + + virtual iter_type + do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, + long double&) const; + + + virtual iter_type + do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; +# 2270 "/usr/include/c++/5/bits/locale_facets.h" 3 + }; + + template + locale::id num_get<_CharT, _InIter>::id; +# 2288 "/usr/include/c++/5/bits/locale_facets.h" 3 + template + class num_put : public locale::facet + { + public: + + + + typedef _CharT char_type; + typedef _OutIter iter_type; + + + + static locale::id id; +# 2309 "/usr/include/c++/5/bits/locale_facets.h" 3 + explicit + num_put(size_t __refs = 0) : facet(__refs) { } +# 2327 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const + { return this->do_put(__s, __io, __fill, __v); } +# 2369 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, long __v) const + { return this->do_put(__s, __io, __fill, __v); } + + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, + unsigned long __v) const + { return this->do_put(__s, __io, __fill, __v); } + + + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const + { return this->do_put(__s, __io, __fill, __v); } + + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, + unsigned long long __v) const + { return this->do_put(__s, __io, __fill, __v); } +# 2432 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, double __v) const + { return this->do_put(__s, __io, __fill, __v); } + + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, + long double __v) const + { return this->do_put(__s, __io, __fill, __v); } +# 2457 "/usr/include/c++/5/bits/locale_facets.h" 3 + iter_type + put(iter_type __s, ios_base& __io, char_type __fill, + const void* __v) const + { return this->do_put(__s, __io, __fill, __v); } + + protected: + template + iter_type + _M_insert_float(iter_type, ios_base& __io, char_type __fill, + char __mod, _ValueT __v) const; + + void + _M_group_float(const char* __grouping, size_t __grouping_size, + char_type __sep, const char_type* __p, char_type* __new, + char_type* __cs, int& __len) const; + + template + iter_type + _M_insert_int(iter_type, ios_base& __io, char_type __fill, + _ValueT __v) const; + + void + _M_group_int(const char* __grouping, size_t __grouping_size, + char_type __sep, ios_base& __io, char_type* __new, + char_type* __cs, int& __len) const; + + void + _M_pad(char_type __fill, streamsize __w, ios_base& __io, + char_type* __new, const char_type* __cs, int& __len) const; + + + virtual + ~num_put() { }; +# 2505 "/usr/include/c++/5/bits/locale_facets.h" 3 + virtual iter_type + do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; + + virtual iter_type + do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const + { return _M_insert_int(__s, __io, __fill, __v); } + + virtual iter_type + do_put(iter_type __s, ios_base& __io, char_type __fill, + unsigned long __v) const + { return _M_insert_int(__s, __io, __fill, __v); } + + + virtual iter_type + do_put(iter_type __s, ios_base& __io, char_type __fill, + long long __v) const + { return _M_insert_int(__s, __io, __fill, __v); } + + virtual iter_type + do_put(iter_type __s, ios_base& __io, char_type __fill, + unsigned long long __v) const + { return _M_insert_int(__s, __io, __fill, __v); } + + + virtual iter_type + do_put(iter_type, ios_base&, char_type, double) const; + + + + + + + virtual iter_type + do_put(iter_type, ios_base&, char_type, long double) const; + + + virtual iter_type + do_put(iter_type, ios_base&, char_type, const void*) const; + + + + + + + + }; + + template + locale::id num_put<_CharT, _OutIter>::id; + + + + + + + + + + template + inline bool + isspace(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::space, __c); } + + + template + inline bool + isprint(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::print, __c); } + + + template + inline bool + iscntrl(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::cntrl, __c); } + + + template + inline bool + isupper(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::upper, __c); } + + + template + inline bool + islower(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::lower, __c); } + + + template + inline bool + isalpha(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::alpha, __c); } + + + template + inline bool + isdigit(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::digit, __c); } + + + template + inline bool + ispunct(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::punct, __c); } + + + template + inline bool + isxdigit(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::xdigit, __c); } + + + template + inline bool + isalnum(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::alnum, __c); } + + + template + inline bool + isgraph(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::graph, __c); } + + + + template + inline bool + isblank(_CharT __c, const locale& __loc) + { return use_facet >(__loc).is(ctype_base::blank, __c); } + + + + template + inline _CharT + toupper(_CharT __c, const locale& __loc) + { return use_facet >(__loc).toupper(__c); } + + + template + inline _CharT + tolower(_CharT __c, const locale& __loc) + { return use_facet >(__loc).tolower(__c); } + + +} + +# 1 "/usr/include/c++/5/bits/locale_facets.tcc" 1 3 +# 33 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + +# 34 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + struct __use_cache + { + const _Facet* + operator() (const locale& __loc) const; + }; + + + template + struct __use_cache<__numpunct_cache<_CharT> > + { + const __numpunct_cache<_CharT>* + operator() (const locale& __loc) const + { + const size_t __i = numpunct<_CharT>::id._M_id(); + const locale::facet** __caches = __loc._M_impl->_M_caches; + if (!__caches[__i]) + { + __numpunct_cache<_CharT>* __tmp = 0; + try + { + __tmp = new __numpunct_cache<_CharT>; + __tmp->_M_cache(__loc); + } + catch(...) + { + delete __tmp; + throw; + } + __loc._M_impl->_M_install_cache(__tmp, __i); + } + return static_cast*>(__caches[__i]); + } + }; + + template + void + __numpunct_cache<_CharT>::_M_cache(const locale& __loc) + { + const numpunct<_CharT>& __np = use_facet >(__loc); + + char* __grouping = 0; + _CharT* __truename = 0; + _CharT* __falsename = 0; + try + { + const string& __g = __np.grouping(); + _M_grouping_size = __g.size(); + __grouping = new char[_M_grouping_size]; + __g.copy(__grouping, _M_grouping_size); + _M_use_grouping = (_M_grouping_size + && static_cast(__grouping[0]) > 0 + && (__grouping[0] + != __gnu_cxx::__numeric_traits::__max)); + + const basic_string<_CharT>& __tn = __np.truename(); + _M_truename_size = __tn.size(); + __truename = new _CharT[_M_truename_size]; + __tn.copy(__truename, _M_truename_size); + + const basic_string<_CharT>& __fn = __np.falsename(); + _M_falsename_size = __fn.size(); + __falsename = new _CharT[_M_falsename_size]; + __fn.copy(__falsename, _M_falsename_size); + + _M_decimal_point = __np.decimal_point(); + _M_thousands_sep = __np.thousands_sep(); + + const ctype<_CharT>& __ct = use_facet >(__loc); + __ct.widen(__num_base::_S_atoms_out, + __num_base::_S_atoms_out + + __num_base::_S_oend, _M_atoms_out); + __ct.widen(__num_base::_S_atoms_in, + __num_base::_S_atoms_in + + __num_base::_S_iend, _M_atoms_in); + + _M_grouping = __grouping; + _M_truename = __truename; + _M_falsename = __falsename; + _M_allocated = true; + } + catch(...) + { + delete [] __grouping; + delete [] __truename; + delete [] __falsename; + throw; + } + } +# 139 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + __attribute__ ((__pure__)) bool + __verify_grouping(const char* __grouping, size_t __grouping_size, + const string& __grouping_tmp) throw (); + + + + template + __attribute ((__abi_tag__ ("cxx11"))) + _InIter + num_get<_CharT, _InIter>:: + _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, + ios_base::iostate& __err, string& __xtrc) const + { + typedef char_traits<_CharT> __traits_type; + typedef __numpunct_cache<_CharT> __cache_type; + __use_cache<__cache_type> __uc; + const locale& __loc = __io._M_getloc(); + const __cache_type* __lc = __uc(__loc); + const _CharT* __lit = __lc->_M_atoms_in; + char_type __c = char_type(); + + + bool __testeof = __beg == __end; + + + if (!__testeof) + { + __c = *__beg; + const bool __plus = __c == __lit[__num_base::_S_iplus]; + if ((__plus || __c == __lit[__num_base::_S_iminus]) + && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) + && !(__c == __lc->_M_decimal_point)) + { + __xtrc += __plus ? '+' : '-'; + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + } + + + bool __found_mantissa = false; + int __sep_pos = 0; + while (!__testeof) + { + if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) + || __c == __lc->_M_decimal_point) + break; + else if (__c == __lit[__num_base::_S_izero]) + { + if (!__found_mantissa) + { + __xtrc += '0'; + __found_mantissa = true; + } + ++__sep_pos; + + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + else + break; + } + + + bool __found_dec = false; + bool __found_sci = false; + string __found_grouping; + if (__lc->_M_use_grouping) + __found_grouping.reserve(32); + const char_type* __lit_zero = __lit + __num_base::_S_izero; + + if (!__lc->_M_allocated) + + while (!__testeof) + { + const int __digit = _M_find(__lit_zero, 10, __c); + if (__digit != -1) + { + __xtrc += '0' + __digit; + __found_mantissa = true; + } + else if (__c == __lc->_M_decimal_point + && !__found_dec && !__found_sci) + { + __xtrc += '.'; + __found_dec = true; + } + else if ((__c == __lit[__num_base::_S_ie] + || __c == __lit[__num_base::_S_iE]) + && !__found_sci && __found_mantissa) + { + + __xtrc += 'e'; + __found_sci = true; + + + if (++__beg != __end) + { + __c = *__beg; + const bool __plus = __c == __lit[__num_base::_S_iplus]; + if (__plus || __c == __lit[__num_base::_S_iminus]) + __xtrc += __plus ? '+' : '-'; + else + continue; + } + else + { + __testeof = true; + break; + } + } + else + break; + + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + else + while (!__testeof) + { + + + if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) + { + if (!__found_dec && !__found_sci) + { + + + if (__sep_pos) + { + __found_grouping += static_cast(__sep_pos); + __sep_pos = 0; + } + else + { + + + __xtrc.clear(); + break; + } + } + else + break; + } + else if (__c == __lc->_M_decimal_point) + { + if (!__found_dec && !__found_sci) + { + + + + if (__found_grouping.size()) + __found_grouping += static_cast(__sep_pos); + __xtrc += '.'; + __found_dec = true; + } + else + break; + } + else + { + const char_type* __q = + __traits_type::find(__lit_zero, 10, __c); + if (__q) + { + __xtrc += '0' + (__q - __lit_zero); + __found_mantissa = true; + ++__sep_pos; + } + else if ((__c == __lit[__num_base::_S_ie] + || __c == __lit[__num_base::_S_iE]) + && !__found_sci && __found_mantissa) + { + + if (__found_grouping.size() && !__found_dec) + __found_grouping += static_cast(__sep_pos); + __xtrc += 'e'; + __found_sci = true; + + + if (++__beg != __end) + { + __c = *__beg; + const bool __plus = __c == __lit[__num_base::_S_iplus]; + if ((__plus || __c == __lit[__num_base::_S_iminus]) + && !(__lc->_M_use_grouping + && __c == __lc->_M_thousands_sep) + && !(__c == __lc->_M_decimal_point)) + __xtrc += __plus ? '+' : '-'; + else + continue; + } + else + { + __testeof = true; + break; + } + } + else + break; + } + + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + + + + if (__found_grouping.size()) + { + + if (!__found_dec && !__found_sci) + __found_grouping += static_cast(__sep_pos); + + if (!std::__verify_grouping(__lc->_M_grouping, + __lc->_M_grouping_size, + __found_grouping)) + __err = ios_base::failbit; + } + + return __beg; + } + + template + template + __attribute ((__abi_tag__ ("cxx11"))) + _InIter + num_get<_CharT, _InIter>:: + _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, + ios_base::iostate& __err, _ValueT& __v) const + { + typedef char_traits<_CharT> __traits_type; + using __gnu_cxx::__add_unsigned; + typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; + typedef __numpunct_cache<_CharT> __cache_type; + __use_cache<__cache_type> __uc; + const locale& __loc = __io._M_getloc(); + const __cache_type* __lc = __uc(__loc); + const _CharT* __lit = __lc->_M_atoms_in; + char_type __c = char_type(); + + + const ios_base::fmtflags __basefield = __io.flags() + & ios_base::basefield; + const bool __oct = __basefield == ios_base::oct; + int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); + + + bool __testeof = __beg == __end; + + + bool __negative = false; + if (!__testeof) + { + __c = *__beg; + __negative = __c == __lit[__num_base::_S_iminus]; + if ((__negative || __c == __lit[__num_base::_S_iplus]) + && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) + && !(__c == __lc->_M_decimal_point)) + { + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + } + + + + bool __found_zero = false; + int __sep_pos = 0; + while (!__testeof) + { + if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) + || __c == __lc->_M_decimal_point) + break; + else if (__c == __lit[__num_base::_S_izero] + && (!__found_zero || __base == 10)) + { + __found_zero = true; + ++__sep_pos; + if (__basefield == 0) + __base = 8; + if (__base == 8) + __sep_pos = 0; + } + else if (__found_zero + && (__c == __lit[__num_base::_S_ix] + || __c == __lit[__num_base::_S_iX])) + { + if (__basefield == 0) + __base = 16; + if (__base == 16) + { + __found_zero = false; + __sep_pos = 0; + } + else + break; + } + else + break; + + if (++__beg != __end) + { + __c = *__beg; + if (!__found_zero) + break; + } + else + __testeof = true; + } + + + + const size_t __len = (__base == 16 ? __num_base::_S_iend + - __num_base::_S_izero : __base); + + + string __found_grouping; + if (__lc->_M_use_grouping) + __found_grouping.reserve(32); + bool __testfail = false; + bool __testoverflow = false; + const __unsigned_type __max = + (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) + ? -__gnu_cxx::__numeric_traits<_ValueT>::__min + : __gnu_cxx::__numeric_traits<_ValueT>::__max; + const __unsigned_type __smax = __max / __base; + __unsigned_type __result = 0; + int __digit = 0; + const char_type* __lit_zero = __lit + __num_base::_S_izero; + + if (!__lc->_M_allocated) + + while (!__testeof) + { + __digit = _M_find(__lit_zero, __len, __c); + if (__digit == -1) + break; + + if (__result > __smax) + __testoverflow = true; + else + { + __result *= __base; + __testoverflow |= __result > __max - __digit; + __result += __digit; + ++__sep_pos; + } + + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + else + while (!__testeof) + { + + + if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) + { + + + if (__sep_pos) + { + __found_grouping += static_cast(__sep_pos); + __sep_pos = 0; + } + else + { + __testfail = true; + break; + } + } + else if (__c == __lc->_M_decimal_point) + break; + else + { + const char_type* __q = + __traits_type::find(__lit_zero, __len, __c); + if (!__q) + break; + + __digit = __q - __lit_zero; + if (__digit > 15) + __digit -= 6; + if (__result > __smax) + __testoverflow = true; + else + { + __result *= __base; + __testoverflow |= __result > __max - __digit; + __result += __digit; + ++__sep_pos; + } + } + + if (++__beg != __end) + __c = *__beg; + else + __testeof = true; + } + + + + if (__found_grouping.size()) + { + + __found_grouping += static_cast(__sep_pos); + + if (!std::__verify_grouping(__lc->_M_grouping, + __lc->_M_grouping_size, + __found_grouping)) + __err = ios_base::failbit; + } + + + + if ((!__sep_pos && !__found_zero && !__found_grouping.size()) + || __testfail) + { + __v = 0; + __err = ios_base::failbit; + } + else if (__testoverflow) + { + if (__negative + && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) + __v = __gnu_cxx::__numeric_traits<_ValueT>::__min; + else + __v = __gnu_cxx::__numeric_traits<_ValueT>::__max; + __err = ios_base::failbit; + } + else + __v = __negative ? -__result : __result; + + if (__testeof) + __err |= ios_base::eofbit; + return __beg; + } + + + + template + _InIter + num_get<_CharT, _InIter>:: + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, bool& __v) const + { + if (!(__io.flags() & ios_base::boolalpha)) + { + + + + long __l = -1; + __beg = _M_extract_int(__beg, __end, __io, __err, __l); + if (__l == 0 || __l == 1) + __v = bool(__l); + else + { + + + __v = true; + __err = ios_base::failbit; + if (__beg == __end) + __err |= ios_base::eofbit; + } + } + else + { + + typedef __numpunct_cache<_CharT> __cache_type; + __use_cache<__cache_type> __uc; + const locale& __loc = __io._M_getloc(); + const __cache_type* __lc = __uc(__loc); + + bool __testf = true; + bool __testt = true; + bool __donef = __lc->_M_falsename_size == 0; + bool __donet = __lc->_M_truename_size == 0; + bool __testeof = false; + size_t __n = 0; + while (!__donef || !__donet) + { + if (__beg == __end) + { + __testeof = true; + break; + } + + const char_type __c = *__beg; + + if (!__donef) + __testf = __c == __lc->_M_falsename[__n]; + + if (!__testf && __donet) + break; + + if (!__donet) + __testt = __c == __lc->_M_truename[__n]; + + if (!__testt && __donef) + break; + + if (!__testt && !__testf) + break; + + ++__n; + ++__beg; + + __donef = !__testf || __n >= __lc->_M_falsename_size; + __donet = !__testt || __n >= __lc->_M_truename_size; + } + if (__testf && __n == __lc->_M_falsename_size && __n) + { + __v = false; + if (__testt && __n == __lc->_M_truename_size) + __err = ios_base::failbit; + else + __err = __testeof ? ios_base::eofbit : ios_base::goodbit; + } + else if (__testt && __n == __lc->_M_truename_size && __n) + { + __v = true; + __err = __testeof ? ios_base::eofbit : ios_base::goodbit; + } + else + { + + + __v = false; + __err = ios_base::failbit; + if (__testeof) + __err |= ios_base::eofbit; + } + } + return __beg; + } + + template + _InIter + num_get<_CharT, _InIter>:: + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, float& __v) const + { + string __xtrc; + __xtrc.reserve(32); + __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); + std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); + if (__beg == __end) + __err |= ios_base::eofbit; + return __beg; + } + + template + _InIter + num_get<_CharT, _InIter>:: + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, double& __v) const + { + string __xtrc; + __xtrc.reserve(32); + __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); + std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); + if (__beg == __end) + __err |= ios_base::eofbit; + return __beg; + } +# 735 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + template + _InIter + num_get<_CharT, _InIter>:: + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, long double& __v) const + { + string __xtrc; + __xtrc.reserve(32); + __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); + std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); + if (__beg == __end) + __err |= ios_base::eofbit; + return __beg; + } + + template + _InIter + num_get<_CharT, _InIter>:: + do_get(iter_type __beg, iter_type __end, ios_base& __io, + ios_base::iostate& __err, void*& __v) const + { + + typedef ios_base::fmtflags fmtflags; + const fmtflags __fmt = __io.flags(); + __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); + + typedef __gnu_cxx::__conditional_type<(sizeof(void*) + <= sizeof(unsigned long)), + unsigned long, unsigned long long>::__type _UIntPtrType; + + _UIntPtrType __ul; + __beg = _M_extract_int(__beg, __end, __io, __err, __ul); + + + __io.flags(__fmt); + + __v = reinterpret_cast(__ul); + return __beg; + } + + + + template + void + num_put<_CharT, _OutIter>:: + _M_pad(_CharT __fill, streamsize __w, ios_base& __io, + _CharT* __new, const _CharT* __cs, int& __len) const + { + + + __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, + __cs, __w, __len); + __len = static_cast(__w); + } + + + + template + int + __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, + ios_base::fmtflags __flags, bool __dec) + { + _CharT* __buf = __bufend; + if (__builtin_expect(__dec, true)) + { + + do + { + *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; + __v /= 10; + } + while (__v != 0); + } + else if ((__flags & ios_base::basefield) == ios_base::oct) + { + + do + { + *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; + __v >>= 3; + } + while (__v != 0); + } + else + { + + const bool __uppercase = __flags & ios_base::uppercase; + const int __case_offset = __uppercase ? __num_base::_S_oudigits + : __num_base::_S_odigits; + do + { + *--__buf = __lit[(__v & 0xf) + __case_offset]; + __v >>= 4; + } + while (__v != 0); + } + return __bufend - __buf; + } + + + + template + void + num_put<_CharT, _OutIter>:: + _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, + ios_base&, _CharT* __new, _CharT* __cs, int& __len) const + { + _CharT* __p = std::__add_grouping(__new, __sep, __grouping, + __grouping_size, __cs, __cs + __len); + __len = __p - __new; + } + + template + template + _OutIter + num_put<_CharT, _OutIter>:: + _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, + _ValueT __v) const + { + using __gnu_cxx::__add_unsigned; + typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; + typedef __numpunct_cache<_CharT> __cache_type; + __use_cache<__cache_type> __uc; + const locale& __loc = __io._M_getloc(); + const __cache_type* __lc = __uc(__loc); + const _CharT* __lit = __lc->_M_atoms_out; + const ios_base::fmtflags __flags = __io.flags(); + + + const int __ilen = 5 * sizeof(_ValueT); + _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __ilen)); + + + + const ios_base::fmtflags __basefield = __flags & ios_base::basefield; + const bool __dec = (__basefield != ios_base::oct + && __basefield != ios_base::hex); + const __unsigned_type __u = ((__v > 0 || !__dec) + ? __unsigned_type(__v) + : -__unsigned_type(__v)); + int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); + __cs += __ilen - __len; + + + if (__lc->_M_use_grouping) + { + + + _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * (__len + 1) + * 2)); + _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, + __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); + __cs = __cs2 + 2; + } + + + if (__builtin_expect(__dec, true)) + { + + if (__v >= 0) + { + if (bool(__flags & ios_base::showpos) + && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) + *--__cs = __lit[__num_base::_S_oplus], ++__len; + } + else + *--__cs = __lit[__num_base::_S_ominus], ++__len; + } + else if (bool(__flags & ios_base::showbase) && __v) + { + if (__basefield == ios_base::oct) + *--__cs = __lit[__num_base::_S_odigits], ++__len; + else + { + + const bool __uppercase = __flags & ios_base::uppercase; + *--__cs = __lit[__num_base::_S_ox + __uppercase]; + + *--__cs = __lit[__num_base::_S_odigits]; + __len += 2; + } + } + + + const streamsize __w = __io.width(); + if (__w > static_cast(__len)) + { + _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __w)); + _M_pad(__fill, __w, __io, __cs3, __cs, __len); + __cs = __cs3; + } + __io.width(0); + + + + return std::__write(__s, __cs, __len); + } + + template + void + num_put<_CharT, _OutIter>:: + _M_group_float(const char* __grouping, size_t __grouping_size, + _CharT __sep, const _CharT* __p, _CharT* __new, + _CharT* __cs, int& __len) const + { + + + + const int __declen = __p ? __p - __cs : __len; + _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, + __grouping_size, + __cs, __cs + __declen); + + + int __newlen = __p2 - __new; + if (__p) + { + char_traits<_CharT>::copy(__p2, __p, __len - __declen); + __newlen += __len - __declen; + } + __len = __newlen; + } +# 971 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + template + template + _OutIter + num_put<_CharT, _OutIter>:: + _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, + _ValueT __v) const + { + typedef __numpunct_cache<_CharT> __cache_type; + __use_cache<__cache_type> __uc; + const locale& __loc = __io._M_getloc(); + const __cache_type* __lc = __uc(__loc); + + + const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); + + const int __max_digits = + __gnu_cxx::__numeric_traits<_ValueT>::__digits10; + + + int __len; + + char __fbuf[16]; + __num_base::_S_format_float(__io, __fbuf, __mod); + + + + const bool __use_prec = + (__io.flags() & ios_base::floatfield) != ios_base::floatfield; + + + + int __cs_size = __max_digits * 3; + char* __cs = static_cast(__builtin_alloca(__cs_size)); + if (__use_prec) + __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, + __fbuf, __prec, __v); + else + __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, + __fbuf, __v); + + + if (__len >= __cs_size) + { + __cs_size = __len + 1; + __cs = static_cast(__builtin_alloca(__cs_size)); + if (__use_prec) + __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, + __fbuf, __prec, __v); + else + __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, + __fbuf, __v); + } +# 1044 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + const ctype<_CharT>& __ctype = use_facet >(__loc); + + _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __len)); + __ctype.widen(__cs, __cs + __len, __ws); + + + _CharT* __wp = 0; + const char* __p = char_traits::find(__cs, __len, '.'); + if (__p) + { + __wp = __ws + (__p - __cs); + *__wp = __lc->_M_decimal_point; + } + + + + + if (__lc->_M_use_grouping + && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' + && __cs[1] >= '0' && __cs[2] >= '0'))) + { + + + _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __len * 2)); + + streamsize __off = 0; + if (__cs[0] == '-' || __cs[0] == '+') + { + __off = 1; + __ws2[0] = __ws[0]; + __len -= 1; + } + + _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, + __lc->_M_thousands_sep, __wp, __ws2 + __off, + __ws + __off, __len); + __len += __off; + + __ws = __ws2; + } + + + const streamsize __w = __io.width(); + if (__w > static_cast(__len)) + { + _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __w)); + _M_pad(__fill, __w, __io, __ws3, __ws, __len); + __ws = __ws3; + } + __io.width(0); + + + + return std::__write(__s, __ws, __len); + } + + template + _OutIter + num_put<_CharT, _OutIter>:: + do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const + { + const ios_base::fmtflags __flags = __io.flags(); + if ((__flags & ios_base::boolalpha) == 0) + { + const long __l = __v; + __s = _M_insert_int(__s, __io, __fill, __l); + } + else + { + typedef __numpunct_cache<_CharT> __cache_type; + __use_cache<__cache_type> __uc; + const locale& __loc = __io._M_getloc(); + const __cache_type* __lc = __uc(__loc); + + const _CharT* __name = __v ? __lc->_M_truename + : __lc->_M_falsename; + int __len = __v ? __lc->_M_truename_size + : __lc->_M_falsename_size; + + const streamsize __w = __io.width(); + if (__w > static_cast(__len)) + { + const streamsize __plen = __w - __len; + _CharT* __ps + = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) + * __plen)); + + char_traits<_CharT>::assign(__ps, __plen, __fill); + __io.width(0); + + if ((__flags & ios_base::adjustfield) == ios_base::left) + { + __s = std::__write(__s, __name, __len); + __s = std::__write(__s, __ps, __plen); + } + else + { + __s = std::__write(__s, __ps, __plen); + __s = std::__write(__s, __name, __len); + } + return __s; + } + __io.width(0); + __s = std::__write(__s, __name, __len); + } + return __s; + } + + template + _OutIter + num_put<_CharT, _OutIter>:: + do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const + { return _M_insert_float(__s, __io, __fill, char(), __v); } +# 1169 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + template + _OutIter + num_put<_CharT, _OutIter>:: + do_put(iter_type __s, ios_base& __io, char_type __fill, + long double __v) const + { return _M_insert_float(__s, __io, __fill, 'L', __v); } + + template + _OutIter + num_put<_CharT, _OutIter>:: + do_put(iter_type __s, ios_base& __io, char_type __fill, + const void* __v) const + { + const ios_base::fmtflags __flags = __io.flags(); + const ios_base::fmtflags __fmt = ~(ios_base::basefield + | ios_base::uppercase); + __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); + + typedef __gnu_cxx::__conditional_type<(sizeof(const void*) + <= sizeof(unsigned long)), + unsigned long, unsigned long long>::__type _UIntPtrType; + + __s = _M_insert_int(__s, __io, __fill, + reinterpret_cast<_UIntPtrType>(__v)); + __io.flags(__flags); + return __s; + } + + +# 1206 "/usr/include/c++/5/bits/locale_facets.tcc" 3 + template + void + __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, + _CharT* __news, const _CharT* __olds, + streamsize __newlen, streamsize __oldlen) + { + const size_t __plen = static_cast(__newlen - __oldlen); + const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; + + + if (__adjust == ios_base::left) + { + _Traits::copy(__news, __olds, __oldlen); + _Traits::assign(__news + __oldlen, __plen, __fill); + return; + } + + size_t __mod = 0; + if (__adjust == ios_base::internal) + { + + + + const locale& __loc = __io._M_getloc(); + const ctype<_CharT>& __ctype = use_facet >(__loc); + + if (__ctype.widen('-') == __olds[0] + || __ctype.widen('+') == __olds[0]) + { + __news[0] = __olds[0]; + __mod = 1; + ++__news; + } + else if (__ctype.widen('0') == __olds[0] + && __oldlen > 1 + && (__ctype.widen('x') == __olds[1] + || __ctype.widen('X') == __olds[1])) + { + __news[0] = __olds[0]; + __news[1] = __olds[1]; + __mod = 2; + __news += 2; + } + + } + _Traits::assign(__news, __plen, __fill); + _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); + } + + template + _CharT* + __add_grouping(_CharT* __s, _CharT __sep, + const char* __gbeg, size_t __gsize, + const _CharT* __first, const _CharT* __last) + { + size_t __idx = 0; + size_t __ctr = 0; + + while (__last - __first > __gbeg[__idx] + && static_cast(__gbeg[__idx]) > 0 + && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) + { + __last -= __gbeg[__idx]; + __idx < __gsize - 1 ? ++__idx : ++__ctr; + } + + while (__first != __last) + *__s++ = *__first++; + + while (__ctr--) + { + *__s++ = __sep; + for (char __i = __gbeg[__idx]; __i > 0; --__i) + *__s++ = *__first++; + } + + while (__idx--) + { + *__s++ = __sep; + for (char __i = __gbeg[__idx]; __i > 0; --__i) + *__s++ = *__first++; + } + + return __s; + } + + + + + extern template class __cxx11:: numpunct; + extern template class __cxx11:: numpunct_byname; + extern template class num_get; + extern template class num_put; + extern template class ctype_byname; + + extern template + const ctype& + use_facet >(const locale&); + + extern template + const numpunct& + use_facet >(const locale&); + + extern template + const num_put& + use_facet >(const locale&); + + extern template + const num_get& + use_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + + extern template class __cxx11:: numpunct; + extern template class __cxx11:: numpunct_byname; + extern template class num_get; + extern template class num_put; + extern template class ctype_byname; + + extern template + const ctype& + use_facet >(const locale&); + + extern template + const numpunct& + use_facet >(const locale&); + + extern template + const num_put& + use_facet >(const locale&); + + extern template + const num_get& + use_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + extern template + bool + has_facet >(const locale&); + + + + +} +# 2652 "/usr/include/c++/5/bits/locale_facets.h" 2 3 +# 38 "/usr/include/c++/5/bits/basic_ios.h" 2 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + inline const _Facet& + __check_facet(const _Facet* __f) + { + if (!__f) + __throw_bad_cast(); + return *__f; + } +# 66 "/usr/include/c++/5/bits/basic_ios.h" 3 + template + class basic_ios : public ios_base + { + public: + + + + + + + typedef _CharT char_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + typedef _Traits traits_type; + + + + + + + typedef ctype<_CharT> __ctype_type; + typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > + __num_put_type; + typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > + __num_get_type; + + + + protected: + basic_ostream<_CharT, _Traits>* _M_tie; + mutable char_type _M_fill; + mutable bool _M_fill_init; + basic_streambuf<_CharT, _Traits>* _M_streambuf; + + + const __ctype_type* _M_ctype; + + const __num_put_type* _M_num_put; + + const __num_get_type* _M_num_get; + + public: +# 117 "/usr/include/c++/5/bits/basic_ios.h" 3 + explicit operator bool() const + { return !this->fail(); } + + + + + + bool + operator!() const + { return this->fail(); } +# 136 "/usr/include/c++/5/bits/basic_ios.h" 3 + iostate + rdstate() const + { return _M_streambuf_state; } +# 147 "/usr/include/c++/5/bits/basic_ios.h" 3 + void + clear(iostate __state = goodbit); + + + + + + + + void + setstate(iostate __state) + { this->clear(this->rdstate() | __state); } + + + + + void + _M_setstate(iostate __state) + { + + + _M_streambuf_state |= __state; + if (this->exceptions() & __state) + throw; + } + + + + + + + + bool + good() const + { return this->rdstate() == 0; } + + + + + + + + bool + eof() const + { return (this->rdstate() & eofbit) != 0; } +# 200 "/usr/include/c++/5/bits/basic_ios.h" 3 + bool + fail() const + { return (this->rdstate() & (badbit | failbit)) != 0; } + + + + + + + + bool + bad() const + { return (this->rdstate() & badbit) != 0; } +# 221 "/usr/include/c++/5/bits/basic_ios.h" 3 + iostate + exceptions() const + { return _M_exception; } +# 256 "/usr/include/c++/5/bits/basic_ios.h" 3 + void + exceptions(iostate __except) + { + _M_exception = __except; + this->clear(_M_streambuf_state); + } + + + + + + + + explicit + basic_ios(basic_streambuf<_CharT, _Traits>* __sb) + : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), + _M_ctype(0), _M_num_put(0), _M_num_get(0) + { this->init(__sb); } + + + + + + + + virtual + ~basic_ios() { } +# 294 "/usr/include/c++/5/bits/basic_ios.h" 3 + basic_ostream<_CharT, _Traits>* + tie() const + { return _M_tie; } +# 306 "/usr/include/c++/5/bits/basic_ios.h" 3 + basic_ostream<_CharT, _Traits>* + tie(basic_ostream<_CharT, _Traits>* __tiestr) + { + basic_ostream<_CharT, _Traits>* __old = _M_tie; + _M_tie = __tiestr; + return __old; + } + + + + + + + + basic_streambuf<_CharT, _Traits>* + rdbuf() const + { return _M_streambuf; } +# 346 "/usr/include/c++/5/bits/basic_ios.h" 3 + basic_streambuf<_CharT, _Traits>* + rdbuf(basic_streambuf<_CharT, _Traits>* __sb); +# 360 "/usr/include/c++/5/bits/basic_ios.h" 3 + basic_ios& + copyfmt(const basic_ios& __rhs); + + + + + + + + char_type + fill() const + { + if (!_M_fill_init) + { + _M_fill = this->widen(' '); + _M_fill_init = true; + } + return _M_fill; + } +# 389 "/usr/include/c++/5/bits/basic_ios.h" 3 + char_type + fill(char_type __ch) + { + char_type __old = this->fill(); + _M_fill = __ch; + return __old; + } +# 409 "/usr/include/c++/5/bits/basic_ios.h" 3 + locale + imbue(const locale& __loc); +# 429 "/usr/include/c++/5/bits/basic_ios.h" 3 + char + narrow(char_type __c, char __dfault) const + { return __check_facet(_M_ctype).narrow(__c, __dfault); } +# 448 "/usr/include/c++/5/bits/basic_ios.h" 3 + char_type + widen(char __c) const + { return __check_facet(_M_ctype).widen(__c); } + + protected: + + + + + + + + basic_ios() + : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), + _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) + { } + + + + + + + + void + init(basic_streambuf<_CharT, _Traits>* __sb); + + + basic_ios(const basic_ios&) = delete; + basic_ios& operator=(const basic_ios&) = delete; + + void + move(basic_ios& __rhs) + { + ios_base::_M_move(__rhs); + _M_cache_locale(_M_ios_locale); + this->tie(__rhs.tie(nullptr)); + _M_fill = __rhs._M_fill; + _M_fill_init = __rhs._M_fill_init; + _M_streambuf = nullptr; + } + + void + move(basic_ios&& __rhs) + { this->move(__rhs); } + + void + swap(basic_ios& __rhs) noexcept + { + ios_base::_M_swap(__rhs); + _M_cache_locale(_M_ios_locale); + __rhs._M_cache_locale(__rhs._M_ios_locale); + std::swap(_M_tie, __rhs._M_tie); + std::swap(_M_fill, __rhs._M_fill); + std::swap(_M_fill_init, __rhs._M_fill_init); + } + + void + set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) + { _M_streambuf = __sb; } + + + void + _M_cache_locale(const locale& __loc); + }; + + +} + +# 1 "/usr/include/c++/5/bits/basic_ios.tcc" 1 3 +# 33 "/usr/include/c++/5/bits/basic_ios.tcc" 3 + +# 34 "/usr/include/c++/5/bits/basic_ios.tcc" 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + void + basic_ios<_CharT, _Traits>::clear(iostate __state) + { + if (this->rdbuf()) + _M_streambuf_state = __state; + else + _M_streambuf_state = __state | badbit; + if (this->exceptions() & this->rdstate()) + __throw_ios_failure(("basic_ios::clear")); + } + + template + basic_streambuf<_CharT, _Traits>* + basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) + { + basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; + _M_streambuf = __sb; + this->clear(); + return __old; + } + + template + basic_ios<_CharT, _Traits>& + basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) + { + + + if (this != &__rhs) + { + + + + + _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? + _M_local_word : new _Words[__rhs._M_word_size]; + + + _Callback_list* __cb = __rhs._M_callbacks; + if (__cb) + __cb->_M_add_reference(); + _M_call_callbacks(erase_event); + if (_M_word != _M_local_word) + { + delete [] _M_word; + _M_word = 0; + } + _M_dispose_callbacks(); + + + _M_callbacks = __cb; + for (int __i = 0; __i < __rhs._M_word_size; ++__i) + __words[__i] = __rhs._M_word[__i]; + _M_word = __words; + _M_word_size = __rhs._M_word_size; + + this->flags(__rhs.flags()); + this->width(__rhs.width()); + this->precision(__rhs.precision()); + this->tie(__rhs.tie()); + this->fill(__rhs.fill()); + _M_ios_locale = __rhs.getloc(); + _M_cache_locale(_M_ios_locale); + + _M_call_callbacks(copyfmt_event); + + + this->exceptions(__rhs.exceptions()); + } + return *this; + } + + + template + locale + basic_ios<_CharT, _Traits>::imbue(const locale& __loc) + { + locale __old(this->getloc()); + ios_base::imbue(__loc); + _M_cache_locale(__loc); + if (this->rdbuf() != 0) + this->rdbuf()->pubimbue(__loc); + return __old; + } + + template + void + basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) + { + + ios_base::_M_init(); + + + _M_cache_locale(_M_ios_locale); +# 146 "/usr/include/c++/5/bits/basic_ios.tcc" 3 + _M_fill = _CharT(); + _M_fill_init = false; + + _M_tie = 0; + _M_exception = goodbit; + _M_streambuf = __sb; + _M_streambuf_state = __sb ? goodbit : badbit; + } + + template + void + basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) + { + if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) + _M_ctype = &use_facet<__ctype_type>(__loc); + else + _M_ctype = 0; + + if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) + _M_num_put = &use_facet<__num_put_type>(__loc); + else + _M_num_put = 0; + + if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) + _M_num_get = &use_facet<__num_get_type>(__loc); + else + _M_num_get = 0; + } + + + + + extern template class basic_ios; + + + extern template class basic_ios; + + + + +} +# 517 "/usr/include/c++/5/bits/basic_ios.h" 2 3 +# 45 "/usr/include/c++/5/ios" 2 3 +# 39 "/usr/include/c++/5/ostream" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 57 "/usr/include/c++/5/ostream" 3 + template + class basic_ostream : virtual public basic_ios<_CharT, _Traits> + { + public: + + typedef _CharT char_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + typedef _Traits traits_type; + + + typedef basic_streambuf<_CharT, _Traits> __streambuf_type; + typedef basic_ios<_CharT, _Traits> __ios_type; + typedef basic_ostream<_CharT, _Traits> __ostream_type; + typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > + __num_put_type; + typedef ctype<_CharT> __ctype_type; +# 83 "/usr/include/c++/5/ostream" 3 + explicit + basic_ostream(__streambuf_type* __sb) + { this->init(__sb); } + + + + + + + virtual + ~basic_ostream() { } + + + class sentry; + friend class sentry; +# 107 "/usr/include/c++/5/ostream" 3 + __ostream_type& + operator<<(__ostream_type& (*__pf)(__ostream_type&)) + { + + + + return __pf(*this); + } + + __ostream_type& + operator<<(__ios_type& (*__pf)(__ios_type&)) + { + + + + __pf(*this); + return *this; + } + + __ostream_type& + operator<<(ios_base& (*__pf) (ios_base&)) + { + + + + __pf(*this); + return *this; + } +# 165 "/usr/include/c++/5/ostream" 3 + __ostream_type& + operator<<(long __n) + { return _M_insert(__n); } + + __ostream_type& + operator<<(unsigned long __n) + { return _M_insert(__n); } + + __ostream_type& + operator<<(bool __n) + { return _M_insert(__n); } + + __ostream_type& + operator<<(short __n); + + __ostream_type& + operator<<(unsigned short __n) + { + + + return _M_insert(static_cast(__n)); + } + + __ostream_type& + operator<<(int __n); + + __ostream_type& + operator<<(unsigned int __n) + { + + + return _M_insert(static_cast(__n)); + } + + + __ostream_type& + operator<<(long long __n) + { return _M_insert(__n); } + + __ostream_type& + operator<<(unsigned long long __n) + { return _M_insert(__n); } +# 219 "/usr/include/c++/5/ostream" 3 + __ostream_type& + operator<<(double __f) + { return _M_insert(__f); } + + __ostream_type& + operator<<(float __f) + { + + + return _M_insert(static_cast(__f)); + } + + __ostream_type& + operator<<(long double __f) + { return _M_insert(__f); } +# 244 "/usr/include/c++/5/ostream" 3 + __ostream_type& + operator<<(const void* __p) + { return _M_insert(__p); } +# 269 "/usr/include/c++/5/ostream" 3 + __ostream_type& + operator<<(__streambuf_type* __sb); +# 302 "/usr/include/c++/5/ostream" 3 + __ostream_type& + put(char_type __c); + + + + + + + void + _M_write(const char_type* __s, streamsize __n) + { + const streamsize __put = this->rdbuf()->sputn(__s, __n); + if (__put != __n) + this->setstate(ios_base::badbit); + } +# 334 "/usr/include/c++/5/ostream" 3 + __ostream_type& + write(const char_type* __s, streamsize __n); +# 347 "/usr/include/c++/5/ostream" 3 + __ostream_type& + flush(); +# 357 "/usr/include/c++/5/ostream" 3 + pos_type + tellp(); +# 368 "/usr/include/c++/5/ostream" 3 + __ostream_type& + seekp(pos_type); +# 380 "/usr/include/c++/5/ostream" 3 + __ostream_type& + seekp(off_type, ios_base::seekdir); + + protected: + basic_ostream() + { this->init(0); } + + + + basic_ostream(basic_iostream<_CharT, _Traits>&) { } + + basic_ostream(const basic_ostream&) = delete; + + basic_ostream(basic_ostream&& __rhs) + : __ios_type() + { __ios_type::move(__rhs); } + + + + basic_ostream& operator=(const basic_ostream&) = delete; + + basic_ostream& + operator=(basic_ostream&& __rhs) + { + swap(__rhs); + return *this; + } + + void + swap(basic_ostream& __rhs) + { __ios_type::swap(__rhs); } + + + template + __ostream_type& + _M_insert(_ValueT __v); + }; +# 425 "/usr/include/c++/5/ostream" 3 + template + class basic_ostream<_CharT, _Traits>::sentry + { + + bool _M_ok; + basic_ostream<_CharT, _Traits>& _M_os; + + public: +# 444 "/usr/include/c++/5/ostream" 3 + explicit + sentry(basic_ostream<_CharT, _Traits>& __os); +# 454 "/usr/include/c++/5/ostream" 3 + ~sentry() + { + + if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) + { + + if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) + _M_os.setstate(ios_base::badbit); + } + } +# 473 "/usr/include/c++/5/ostream" 3 + explicit + + operator bool() const + { return _M_ok; } + }; +# 495 "/usr/include/c++/5/ostream" 3 + template + inline basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) + { return __ostream_insert(__out, &__c, 1); } + + template + inline basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) + { return (__out << __out.widen(__c)); } + + + template + inline basic_ostream& + operator<<(basic_ostream& __out, char __c) + { return __ostream_insert(__out, &__c, 1); } + + + template + inline basic_ostream& + operator<<(basic_ostream& __out, signed char __c) + { return (__out << static_cast(__c)); } + + template + inline basic_ostream& + operator<<(basic_ostream& __out, unsigned char __c) + { return (__out << static_cast(__c)); } +# 537 "/usr/include/c++/5/ostream" 3 + template + inline basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) + { + if (!__s) + __out.setstate(ios_base::badbit); + else + __ostream_insert(__out, __s, + static_cast(_Traits::length(__s))); + return __out; + } + + template + basic_ostream<_CharT, _Traits> & + operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); + + + template + inline basic_ostream& + operator<<(basic_ostream& __out, const char* __s) + { + if (!__s) + __out.setstate(ios_base::badbit); + else + __ostream_insert(__out, __s, + static_cast(_Traits::length(__s))); + return __out; + } + + + template + inline basic_ostream& + operator<<(basic_ostream& __out, const signed char* __s) + { return (__out << reinterpret_cast(__s)); } + + template + inline basic_ostream & + operator<<(basic_ostream& __out, const unsigned char* __s) + { return (__out << reinterpret_cast(__s)); } +# 588 "/usr/include/c++/5/ostream" 3 + template + inline basic_ostream<_CharT, _Traits>& + endl(basic_ostream<_CharT, _Traits>& __os) + { return flush(__os.put(__os.widen('\n'))); } +# 600 "/usr/include/c++/5/ostream" 3 + template + inline basic_ostream<_CharT, _Traits>& + ends(basic_ostream<_CharT, _Traits>& __os) + { return __os.put(_CharT()); } + + + + + + + template + inline basic_ostream<_CharT, _Traits>& + flush(basic_ostream<_CharT, _Traits>& __os) + { return __os.flush(); } +# 626 "/usr/include/c++/5/ostream" 3 + template + inline basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x) + { + __os << __x; + return __os; + } + + + +} + +# 1 "/usr/include/c++/5/bits/ostream.tcc" 1 3 +# 37 "/usr/include/c++/5/bits/ostream.tcc" 3 + +# 38 "/usr/include/c++/5/bits/ostream.tcc" 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + basic_ostream<_CharT, _Traits>::sentry:: + sentry(basic_ostream<_CharT, _Traits>& __os) + : _M_ok(false), _M_os(__os) + { + + if (__os.tie() && __os.good()) + __os.tie()->flush(); + + if (__os.good()) + _M_ok = true; + else + __os.setstate(ios_base::failbit); + } + + template + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + _M_insert(_ValueT __v) + { + sentry __cerb(*this); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const __num_put_type& __np = __check_facet(this->_M_num_put); + if (__np.put(*this, *this, this->fill(), __v).failed()) + __err |= ios_base::badbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + operator<<(short __n) + { + + + const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; + if (__fmt == ios_base::oct || __fmt == ios_base::hex) + return _M_insert(static_cast(static_cast(__n))); + else + return _M_insert(static_cast(__n)); + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + operator<<(int __n) + { + + + const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; + if (__fmt == ios_base::oct || __fmt == ios_base::hex) + return _M_insert(static_cast(static_cast(__n))); + else + return _M_insert(static_cast(__n)); + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + operator<<(__streambuf_type* __sbin) + { + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this); + if (__cerb && __sbin) + { + try + { + if (!__copy_streambufs(__sbin, this->rdbuf())) + __err |= ios_base::failbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::failbit); } + } + else if (!__sbin) + __err |= ios_base::badbit; + if (__err) + this->setstate(__err); + return *this; + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + put(char_type __c) + { + + + + + + + sentry __cerb(*this); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const int_type __put = this->rdbuf()->sputc(__c); + if (traits_type::eq_int_type(__put, traits_type::eof())) + __err |= ios_base::badbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + write(const _CharT* __s, streamsize __n) + { + + + + + + + + sentry __cerb(*this); + if (__cerb) + { + try + { _M_write(__s, __n); } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + return *this; + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + flush() + { + + + + ios_base::iostate __err = ios_base::goodbit; + try + { + if (this->rdbuf() && this->rdbuf()->pubsync() == -1) + __err |= ios_base::badbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + return *this; + } + + template + typename basic_ostream<_CharT, _Traits>::pos_type + basic_ostream<_CharT, _Traits>:: + tellp() + { + pos_type __ret = pos_type(-1); + try + { + if (!this->fail()) + __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + return __ret; + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + seekp(pos_type __pos) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + if (!this->fail()) + { + + + const pos_type __p = this->rdbuf()->pubseekpos(__pos, + ios_base::out); + + + if (__p == pos_type(off_type(-1))) + __err |= ios_base::failbit; + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + return *this; + } + + template + basic_ostream<_CharT, _Traits>& + basic_ostream<_CharT, _Traits>:: + seekp(off_type __off, ios_base::seekdir __dir) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + if (!this->fail()) + { + + + const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, + ios_base::out); + + + if (__p == pos_type(off_type(-1))) + __err |= ios_base::failbit; + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + return *this; + } + + template + basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) + { + if (!__s) + __out.setstate(ios_base::badbit); + else + { + + + const size_t __clen = char_traits::length(__s); + try + { + struct __ptr_guard + { + _CharT *__p; + __ptr_guard (_CharT *__ip): __p(__ip) { } + ~__ptr_guard() { delete[] __p; } + _CharT* __get() { return __p; } + } __pg (new _CharT[__clen]); + + _CharT *__ws = __pg.__get(); + for (size_t __i = 0; __i < __clen; ++__i) + __ws[__i] = __out.widen(__s[__i]); + __ostream_insert(__out, __ws, __clen); + } + catch(__cxxabiv1::__forced_unwind&) + { + __out._M_setstate(ios_base::badbit); + throw; + } + catch(...) + { __out._M_setstate(ios_base::badbit); } + } + return __out; + } + + + + + extern template class basic_ostream; + extern template ostream& endl(ostream&); + extern template ostream& ends(ostream&); + extern template ostream& flush(ostream&); + extern template ostream& operator<<(ostream&, char); + extern template ostream& operator<<(ostream&, unsigned char); + extern template ostream& operator<<(ostream&, signed char); + extern template ostream& operator<<(ostream&, const char*); + extern template ostream& operator<<(ostream&, const unsigned char*); + extern template ostream& operator<<(ostream&, const signed char*); + + extern template ostream& ostream::_M_insert(long); + extern template ostream& ostream::_M_insert(unsigned long); + extern template ostream& ostream::_M_insert(bool); + + extern template ostream& ostream::_M_insert(long long); + extern template ostream& ostream::_M_insert(unsigned long long); + + extern template ostream& ostream::_M_insert(double); + extern template ostream& ostream::_M_insert(long double); + extern template ostream& ostream::_M_insert(const void*); + + + extern template class basic_ostream; + extern template wostream& endl(wostream&); + extern template wostream& ends(wostream&); + extern template wostream& flush(wostream&); + extern template wostream& operator<<(wostream&, wchar_t); + extern template wostream& operator<<(wostream&, char); + extern template wostream& operator<<(wostream&, const wchar_t*); + extern template wostream& operator<<(wostream&, const char*); + + extern template wostream& wostream::_M_insert(long); + extern template wostream& wostream::_M_insert(unsigned long); + extern template wostream& wostream::_M_insert(bool); + + extern template wostream& wostream::_M_insert(long long); + extern template wostream& wostream::_M_insert(unsigned long long); + + extern template wostream& wostream::_M_insert(double); + extern template wostream& wostream::_M_insert(long double); + extern template wostream& wostream::_M_insert(const void*); + + + + +} +# 639 "/usr/include/c++/5/ostream" 2 3 +# 65 "/usr/include/c++/5/iterator" 2 3 +# 1 "/usr/include/c++/5/istream" 1 3 +# 36 "/usr/include/c++/5/istream" 3 + +# 37 "/usr/include/c++/5/istream" 3 + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 57 "/usr/include/c++/5/istream" 3 + template + class basic_istream : virtual public basic_ios<_CharT, _Traits> + { + public: + + typedef _CharT char_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + typedef _Traits traits_type; + + + typedef basic_streambuf<_CharT, _Traits> __streambuf_type; + typedef basic_ios<_CharT, _Traits> __ios_type; + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > + __num_get_type; + typedef ctype<_CharT> __ctype_type; + + protected: + + + + + + streamsize _M_gcount; + + public: + + + + + + + + explicit + basic_istream(__streambuf_type* __sb) + : _M_gcount(streamsize(0)) + { this->init(__sb); } + + + + + + + virtual + ~basic_istream() + { _M_gcount = streamsize(0); } + + + class sentry; + friend class sentry; +# 119 "/usr/include/c++/5/istream" 3 + __istream_type& + operator>>(__istream_type& (*__pf)(__istream_type&)) + { return __pf(*this); } + + __istream_type& + operator>>(__ios_type& (*__pf)(__ios_type&)) + { + __pf(*this); + return *this; + } + + __istream_type& + operator>>(ios_base& (*__pf)(ios_base&)) + { + __pf(*this); + return *this; + } +# 167 "/usr/include/c++/5/istream" 3 + __istream_type& + operator>>(bool& __n) + { return _M_extract(__n); } + + __istream_type& + operator>>(short& __n); + + __istream_type& + operator>>(unsigned short& __n) + { return _M_extract(__n); } + + __istream_type& + operator>>(int& __n); + + __istream_type& + operator>>(unsigned int& __n) + { return _M_extract(__n); } + + __istream_type& + operator>>(long& __n) + { return _M_extract(__n); } + + __istream_type& + operator>>(unsigned long& __n) + { return _M_extract(__n); } + + + __istream_type& + operator>>(long long& __n) + { return _M_extract(__n); } + + __istream_type& + operator>>(unsigned long long& __n) + { return _M_extract(__n); } +# 213 "/usr/include/c++/5/istream" 3 + __istream_type& + operator>>(float& __f) + { return _M_extract(__f); } + + __istream_type& + operator>>(double& __f) + { return _M_extract(__f); } + + __istream_type& + operator>>(long double& __f) + { return _M_extract(__f); } +# 234 "/usr/include/c++/5/istream" 3 + __istream_type& + operator>>(void*& __p) + { return _M_extract(__p); } +# 258 "/usr/include/c++/5/istream" 3 + __istream_type& + operator>>(__streambuf_type* __sb); +# 268 "/usr/include/c++/5/istream" 3 + streamsize + gcount() const + { return _M_gcount; } +# 301 "/usr/include/c++/5/istream" 3 + int_type + get(); +# 315 "/usr/include/c++/5/istream" 3 + __istream_type& + get(char_type& __c); +# 342 "/usr/include/c++/5/istream" 3 + __istream_type& + get(char_type* __s, streamsize __n, char_type __delim); +# 353 "/usr/include/c++/5/istream" 3 + __istream_type& + get(char_type* __s, streamsize __n) + { return this->get(__s, __n, this->widen('\n')); } +# 376 "/usr/include/c++/5/istream" 3 + __istream_type& + get(__streambuf_type& __sb, char_type __delim); +# 386 "/usr/include/c++/5/istream" 3 + __istream_type& + get(__streambuf_type& __sb) + { return this->get(__sb, this->widen('\n')); } +# 415 "/usr/include/c++/5/istream" 3 + __istream_type& + getline(char_type* __s, streamsize __n, char_type __delim); +# 426 "/usr/include/c++/5/istream" 3 + __istream_type& + getline(char_type* __s, streamsize __n) + { return this->getline(__s, __n, this->widen('\n')); } +# 450 "/usr/include/c++/5/istream" 3 + __istream_type& + ignore(streamsize __n, int_type __delim); + + __istream_type& + ignore(streamsize __n); + + __istream_type& + ignore(); +# 467 "/usr/include/c++/5/istream" 3 + int_type + peek(); +# 485 "/usr/include/c++/5/istream" 3 + __istream_type& + read(char_type* __s, streamsize __n); +# 504 "/usr/include/c++/5/istream" 3 + streamsize + readsome(char_type* __s, streamsize __n); +# 521 "/usr/include/c++/5/istream" 3 + __istream_type& + putback(char_type __c); +# 537 "/usr/include/c++/5/istream" 3 + __istream_type& + unget(); +# 555 "/usr/include/c++/5/istream" 3 + int + sync(); +# 570 "/usr/include/c++/5/istream" 3 + pos_type + tellg(); +# 585 "/usr/include/c++/5/istream" 3 + __istream_type& + seekg(pos_type); +# 601 "/usr/include/c++/5/istream" 3 + __istream_type& + seekg(off_type, ios_base::seekdir); + + + protected: + basic_istream() + : _M_gcount(streamsize(0)) + { this->init(0); } + + + basic_istream(const basic_istream&) = delete; + + basic_istream(basic_istream&& __rhs) + : __ios_type(), _M_gcount(__rhs._M_gcount) + { + __ios_type::move(__rhs); + __rhs._M_gcount = 0; + } + + + + basic_istream& operator=(const basic_istream&) = delete; + + basic_istream& + operator=(basic_istream&& __rhs) + { + swap(__rhs); + return *this; + } + + void + swap(basic_istream& __rhs) + { + __ios_type::swap(__rhs); + std::swap(_M_gcount, __rhs._M_gcount); + } + + + template + __istream_type& + _M_extract(_ValueT& __v); + }; + + + template<> + basic_istream& + basic_istream:: + getline(char_type* __s, streamsize __n, char_type __delim); + + template<> + basic_istream& + basic_istream:: + ignore(streamsize __n); + + template<> + basic_istream& + basic_istream:: + ignore(streamsize __n, int_type __delim); + + + template<> + basic_istream& + basic_istream:: + getline(char_type* __s, streamsize __n, char_type __delim); + + template<> + basic_istream& + basic_istream:: + ignore(streamsize __n); + + template<> + basic_istream& + basic_istream:: + ignore(streamsize __n, int_type __delim); +# 685 "/usr/include/c++/5/istream" 3 + template + class basic_istream<_CharT, _Traits>::sentry + { + + bool _M_ok; + + public: + + typedef _Traits traits_type; + typedef basic_streambuf<_CharT, _Traits> __streambuf_type; + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::__ctype_type __ctype_type; + typedef typename _Traits::int_type __int_type; +# 721 "/usr/include/c++/5/istream" 3 + explicit + sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); +# 732 "/usr/include/c++/5/istream" 3 + explicit + + operator bool() const + { return _M_ok; } + }; +# 750 "/usr/include/c++/5/istream" 3 + template + basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); + + template + inline basic_istream& + operator>>(basic_istream& __in, unsigned char& __c) + { return (__in >> reinterpret_cast(__c)); } + + template + inline basic_istream& + operator>>(basic_istream& __in, signed char& __c) + { return (__in >> reinterpret_cast(__c)); } +# 792 "/usr/include/c++/5/istream" 3 + template + basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); + + + template<> + basic_istream& + operator>>(basic_istream& __in, char* __s); + + template + inline basic_istream& + operator>>(basic_istream& __in, unsigned char* __s) + { return (__in >> reinterpret_cast(__s)); } + + template + inline basic_istream& + operator>>(basic_istream& __in, signed char* __s) + { return (__in >> reinterpret_cast(__s)); } +# 823 "/usr/include/c++/5/istream" 3 + template + class basic_iostream + : public basic_istream<_CharT, _Traits>, + public basic_ostream<_CharT, _Traits> + { + public: + + + + typedef _CharT char_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + typedef _Traits traits_type; + + + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef basic_ostream<_CharT, _Traits> __ostream_type; + + + + + + + + explicit + basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) + : __istream_type(__sb), __ostream_type(__sb) { } + + + + + virtual + ~basic_iostream() { } + + protected: + basic_iostream() + : __istream_type(), __ostream_type() { } + + + basic_iostream(const basic_iostream&) = delete; + + basic_iostream(basic_iostream&& __rhs) + : __istream_type(std::move(__rhs)), __ostream_type(*this) + { } + + + + basic_iostream& operator=(const basic_iostream&) = delete; + + basic_iostream& + operator=(basic_iostream&& __rhs) + { + swap(__rhs); + return *this; + } + + void + swap(basic_iostream& __rhs) + { __istream_type::swap(__rhs); } + + }; +# 906 "/usr/include/c++/5/istream" 3 + template + basic_istream<_CharT, _Traits>& + ws(basic_istream<_CharT, _Traits>& __is); +# 922 "/usr/include/c++/5/istream" 3 + template + inline basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x) + { + __is >> __x; + return __is; + } + + + +} + +# 1 "/usr/include/c++/5/bits/istream.tcc" 1 3 +# 37 "/usr/include/c++/5/bits/istream.tcc" 3 + +# 38 "/usr/include/c++/5/bits/istream.tcc" 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + basic_istream<_CharT, _Traits>::sentry:: + sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) + { + ios_base::iostate __err = ios_base::goodbit; + if (__in.good()) + { + if (__in.tie()) + __in.tie()->flush(); + if (!__noskip && bool(__in.flags() & ios_base::skipws)) + { + const __int_type __eof = traits_type::eof(); + __streambuf_type* __sb = __in.rdbuf(); + __int_type __c = __sb->sgetc(); + + const __ctype_type& __ct = __check_facet(__in._M_ctype); + while (!traits_type::eq_int_type(__c, __eof) + && __ct.is(ctype_base::space, + traits_type::to_char_type(__c))) + __c = __sb->snextc(); + + + + + if (traits_type::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + } + } + + if (__in.good() && __err == ios_base::goodbit) + _M_ok = true; + else + { + __err |= ios_base::failbit; + __in.setstate(__err); + } + } + + template + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + _M_extract(_ValueT& __v) + { + sentry __cerb(*this, false); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const __num_get_type& __ng = __check_facet(this->_M_num_get); + __ng.get(*this, 0, *this, __err, __v); + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + operator>>(short& __n) + { + + + sentry __cerb(*this, false); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + long __l; + const __num_get_type& __ng = __check_facet(this->_M_num_get); + __ng.get(*this, 0, *this, __err, __l); + + + + if (__l < __gnu_cxx::__numeric_traits::__min) + { + __err |= ios_base::failbit; + __n = __gnu_cxx::__numeric_traits::__min; + } + else if (__l > __gnu_cxx::__numeric_traits::__max) + { + __err |= ios_base::failbit; + __n = __gnu_cxx::__numeric_traits::__max; + } + else + __n = short(__l); + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + operator>>(int& __n) + { + + + sentry __cerb(*this, false); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + long __l; + const __num_get_type& __ng = __check_facet(this->_M_num_get); + __ng.get(*this, 0, *this, __err, __l); + + + + if (__l < __gnu_cxx::__numeric_traits::__min) + { + __err |= ios_base::failbit; + __n = __gnu_cxx::__numeric_traits::__min; + } + else if (__l > __gnu_cxx::__numeric_traits::__max) + { + __err |= ios_base::failbit; + __n = __gnu_cxx::__numeric_traits::__max; + } + else + __n = int(__l); + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + operator>>(__streambuf_type* __sbout) + { + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this, false); + if (__cerb && __sbout) + { + try + { + bool __ineof; + if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) + __err |= ios_base::failbit; + if (__ineof) + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::failbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::failbit); } + } + else if (!__sbout) + __err |= ios_base::failbit; + if (__err) + this->setstate(__err); + return *this; + } + + template + typename basic_istream<_CharT, _Traits>::int_type + basic_istream<_CharT, _Traits>:: + get(void) + { + const int_type __eof = traits_type::eof(); + int_type __c = __eof; + _M_gcount = 0; + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this, true); + if (__cerb) + { + try + { + __c = this->rdbuf()->sbumpc(); + + if (!traits_type::eq_int_type(__c, __eof)) + _M_gcount = 1; + else + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + if (!_M_gcount) + __err |= ios_base::failbit; + if (__err) + this->setstate(__err); + return __c; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + get(char_type& __c) + { + _M_gcount = 0; + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this, true); + if (__cerb) + { + try + { + const int_type __cb = this->rdbuf()->sbumpc(); + + if (!traits_type::eq_int_type(__cb, traits_type::eof())) + { + _M_gcount = 1; + __c = traits_type::to_char_type(__cb); + } + else + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + if (!_M_gcount) + __err |= ios_base::failbit; + if (__err) + this->setstate(__err); + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + get(char_type* __s, streamsize __n, char_type __delim) + { + _M_gcount = 0; + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this, true); + if (__cerb) + { + try + { + const int_type __idelim = traits_type::to_int_type(__delim); + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + int_type __c = __sb->sgetc(); + + while (_M_gcount + 1 < __n + && !traits_type::eq_int_type(__c, __eof) + && !traits_type::eq_int_type(__c, __idelim)) + { + *__s++ = traits_type::to_char_type(__c); + ++_M_gcount; + __c = __sb->snextc(); + } + if (traits_type::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + + + if (__n > 0) + *__s = char_type(); + if (!_M_gcount) + __err |= ios_base::failbit; + if (__err) + this->setstate(__err); + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + get(__streambuf_type& __sb, char_type __delim) + { + _M_gcount = 0; + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this, true); + if (__cerb) + { + try + { + const int_type __idelim = traits_type::to_int_type(__delim); + const int_type __eof = traits_type::eof(); + __streambuf_type* __this_sb = this->rdbuf(); + int_type __c = __this_sb->sgetc(); + char_type __c2 = traits_type::to_char_type(__c); + + while (!traits_type::eq_int_type(__c, __eof) + && !traits_type::eq_int_type(__c, __idelim) + && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) + { + ++_M_gcount; + __c = __this_sb->snextc(); + __c2 = traits_type::to_char_type(__c); + } + if (traits_type::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + if (!_M_gcount) + __err |= ios_base::failbit; + if (__err) + this->setstate(__err); + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + getline(char_type* __s, streamsize __n, char_type __delim) + { + _M_gcount = 0; + ios_base::iostate __err = ios_base::goodbit; + sentry __cerb(*this, true); + if (__cerb) + { + try + { + const int_type __idelim = traits_type::to_int_type(__delim); + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + int_type __c = __sb->sgetc(); + + while (_M_gcount + 1 < __n + && !traits_type::eq_int_type(__c, __eof) + && !traits_type::eq_int_type(__c, __idelim)) + { + *__s++ = traits_type::to_char_type(__c); + __c = __sb->snextc(); + ++_M_gcount; + } + if (traits_type::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + else + { + if (traits_type::eq_int_type(__c, __idelim)) + { + __sb->sbumpc(); + ++_M_gcount; + } + else + __err |= ios_base::failbit; + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + + + if (__n > 0) + *__s = char_type(); + if (!_M_gcount) + __err |= ios_base::failbit; + if (__err) + this->setstate(__err); + return *this; + } + + + + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + ignore(void) + { + _M_gcount = 0; + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + + if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) + __err |= ios_base::eofbit; + else + _M_gcount = 1; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + ignore(streamsize __n) + { + _M_gcount = 0; + sentry __cerb(*this, true); + if (__cerb && __n > 0) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + int_type __c = __sb->sgetc(); +# 513 "/usr/include/c++/5/bits/istream.tcc" 3 + bool __large_ignore = false; + while (true) + { + while (_M_gcount < __n + && !traits_type::eq_int_type(__c, __eof)) + { + ++_M_gcount; + __c = __sb->snextc(); + } + if (__n == __gnu_cxx::__numeric_traits::__max + && !traits_type::eq_int_type(__c, __eof)) + { + _M_gcount = + __gnu_cxx::__numeric_traits::__min; + __large_ignore = true; + } + else + break; + } + + if (__large_ignore) + _M_gcount = __gnu_cxx::__numeric_traits::__max; + + if (traits_type::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + ignore(streamsize __n, int_type __delim) + { + _M_gcount = 0; + sentry __cerb(*this, true); + if (__cerb && __n > 0) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + int_type __c = __sb->sgetc(); + + + bool __large_ignore = false; + while (true) + { + while (_M_gcount < __n + && !traits_type::eq_int_type(__c, __eof) + && !traits_type::eq_int_type(__c, __delim)) + { + ++_M_gcount; + __c = __sb->snextc(); + } + if (__n == __gnu_cxx::__numeric_traits::__max + && !traits_type::eq_int_type(__c, __eof) + && !traits_type::eq_int_type(__c, __delim)) + { + _M_gcount = + __gnu_cxx::__numeric_traits::__min; + __large_ignore = true; + } + else + break; + } + + if (__large_ignore) + _M_gcount = __gnu_cxx::__numeric_traits::__max; + + if (traits_type::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + else if (traits_type::eq_int_type(__c, __delim)) + { + if (_M_gcount + < __gnu_cxx::__numeric_traits::__max) + ++_M_gcount; + __sb->sbumpc(); + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + typename basic_istream<_CharT, _Traits>::int_type + basic_istream<_CharT, _Traits>:: + peek(void) + { + int_type __c = traits_type::eof(); + _M_gcount = 0; + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + __c = this->rdbuf()->sgetc(); + if (traits_type::eq_int_type(__c, traits_type::eof())) + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return __c; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + read(char_type* __s, streamsize __n) + { + _M_gcount = 0; + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + _M_gcount = this->rdbuf()->sgetn(__s, __n); + if (_M_gcount != __n) + __err |= (ios_base::eofbit | ios_base::failbit); + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + streamsize + basic_istream<_CharT, _Traits>:: + readsome(char_type* __s, streamsize __n) + { + _M_gcount = 0; + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + + const streamsize __num = this->rdbuf()->in_avail(); + if (__num > 0) + _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); + else if (__num == -1) + __err |= ios_base::eofbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return _M_gcount; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + putback(char_type __c) + { + + + _M_gcount = 0; + + this->clear(this->rdstate() & ~ios_base::eofbit); + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + if (!__sb + || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) + __err |= ios_base::badbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + unget(void) + { + + + _M_gcount = 0; + + this->clear(this->rdstate() & ~ios_base::eofbit); + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const int_type __eof = traits_type::eof(); + __streambuf_type* __sb = this->rdbuf(); + if (!__sb + || traits_type::eq_int_type(__sb->sungetc(), __eof)) + __err |= ios_base::badbit; + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + int + basic_istream<_CharT, _Traits>:: + sync(void) + { + + + int __ret = -1; + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + __streambuf_type* __sb = this->rdbuf(); + if (__sb) + { + if (__sb->pubsync() == -1) + __err |= ios_base::badbit; + else + __ret = 0; + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return __ret; + } + + template + typename basic_istream<_CharT, _Traits>::pos_type + basic_istream<_CharT, _Traits>:: + tellg(void) + { + + + pos_type __ret = pos_type(-1); + sentry __cerb(*this, true); + if (__cerb) + { + try + { + if (!this->fail()) + __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, + ios_base::in); + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + } + return __ret; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + seekg(pos_type __pos) + { + + + + this->clear(this->rdstate() & ~ios_base::eofbit); + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + if (!this->fail()) + { + + const pos_type __p = this->rdbuf()->pubseekpos(__pos, + ios_base::in); + + + if (__p == pos_type(off_type(-1))) + __err |= ios_base::failbit; + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + template + basic_istream<_CharT, _Traits>& + basic_istream<_CharT, _Traits>:: + seekg(off_type __off, ios_base::seekdir __dir) + { + + + + this->clear(this->rdstate() & ~ios_base::eofbit); + sentry __cerb(*this, true); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + if (!this->fail()) + { + + const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, + ios_base::in); + + + if (__p == pos_type(off_type(-1))) + __err |= ios_base::failbit; + } + } + catch(__cxxabiv1::__forced_unwind&) + { + this->_M_setstate(ios_base::badbit); + throw; + } + catch(...) + { this->_M_setstate(ios_base::badbit); } + if (__err) + this->setstate(__err); + } + return *this; + } + + + template + basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) + { + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::int_type __int_type; + + typename __istream_type::sentry __cerb(__in, false); + if (__cerb) + { + ios_base::iostate __err = ios_base::goodbit; + try + { + const __int_type __cb = __in.rdbuf()->sbumpc(); + if (!_Traits::eq_int_type(__cb, _Traits::eof())) + __c = _Traits::to_char_type(__cb); + else + __err |= (ios_base::eofbit | ios_base::failbit); + } + catch(__cxxabiv1::__forced_unwind&) + { + __in._M_setstate(ios_base::badbit); + throw; + } + catch(...) + { __in._M_setstate(ios_base::badbit); } + if (__err) + __in.setstate(__err); + } + return __in; + } + + template + basic_istream<_CharT, _Traits>& + operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) + { + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef basic_streambuf<_CharT, _Traits> __streambuf_type; + typedef typename _Traits::int_type int_type; + typedef _CharT char_type; + typedef ctype<_CharT> __ctype_type; + + streamsize __extracted = 0; + ios_base::iostate __err = ios_base::goodbit; + typename __istream_type::sentry __cerb(__in, false); + if (__cerb) + { + try + { + + streamsize __num = __in.width(); + if (__num <= 0) + __num = __gnu_cxx::__numeric_traits::__max; + + const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); + + const int_type __eof = _Traits::eof(); + __streambuf_type* __sb = __in.rdbuf(); + int_type __c = __sb->sgetc(); + + while (__extracted < __num - 1 + && !_Traits::eq_int_type(__c, __eof) + && !__ct.is(ctype_base::space, + _Traits::to_char_type(__c))) + { + *__s++ = _Traits::to_char_type(__c); + ++__extracted; + __c = __sb->snextc(); + } + if (_Traits::eq_int_type(__c, __eof)) + __err |= ios_base::eofbit; + + + + *__s = char_type(); + __in.width(0); + } + catch(__cxxabiv1::__forced_unwind&) + { + __in._M_setstate(ios_base::badbit); + throw; + } + catch(...) + { __in._M_setstate(ios_base::badbit); } + } + if (!__extracted) + __err |= ios_base::failbit; + if (__err) + __in.setstate(__err); + return __in; + } + + + template + basic_istream<_CharT, _Traits>& + ws(basic_istream<_CharT, _Traits>& __in) + { + typedef basic_istream<_CharT, _Traits> __istream_type; + typedef basic_streambuf<_CharT, _Traits> __streambuf_type; + typedef typename __istream_type::int_type __int_type; + typedef ctype<_CharT> __ctype_type; + + const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); + const __int_type __eof = _Traits::eof(); + __streambuf_type* __sb = __in.rdbuf(); + __int_type __c = __sb->sgetc(); + + while (!_Traits::eq_int_type(__c, __eof) + && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) + __c = __sb->snextc(); + + if (_Traits::eq_int_type(__c, __eof)) + __in.setstate(ios_base::eofbit); + return __in; + } + + + + + extern template class basic_istream; + extern template istream& ws(istream&); + extern template istream& operator>>(istream&, char&); + extern template istream& operator>>(istream&, char*); + extern template istream& operator>>(istream&, unsigned char&); + extern template istream& operator>>(istream&, signed char&); + extern template istream& operator>>(istream&, unsigned char*); + extern template istream& operator>>(istream&, signed char*); + + extern template istream& istream::_M_extract(unsigned short&); + extern template istream& istream::_M_extract(unsigned int&); + extern template istream& istream::_M_extract(long&); + extern template istream& istream::_M_extract(unsigned long&); + extern template istream& istream::_M_extract(bool&); + + extern template istream& istream::_M_extract(long long&); + extern template istream& istream::_M_extract(unsigned long long&); + + extern template istream& istream::_M_extract(float&); + extern template istream& istream::_M_extract(double&); + extern template istream& istream::_M_extract(long double&); + extern template istream& istream::_M_extract(void*&); + + extern template class basic_iostream; + + + extern template class basic_istream; + extern template wistream& ws(wistream&); + extern template wistream& operator>>(wistream&, wchar_t&); + extern template wistream& operator>>(wistream&, wchar_t*); + + extern template wistream& wistream::_M_extract(unsigned short&); + extern template wistream& wistream::_M_extract(unsigned int&); + extern template wistream& wistream::_M_extract(long&); + extern template wistream& wistream::_M_extract(unsigned long&); + extern template wistream& wistream::_M_extract(bool&); + + extern template wistream& wistream::_M_extract(long long&); + extern template wistream& wistream::_M_extract(unsigned long long&); + + extern template wistream& wistream::_M_extract(float&); + extern template wistream& wistream::_M_extract(double&); + extern template wistream& wistream::_M_extract(long double&); + extern template wistream& wistream::_M_extract(void*&); + + extern template class basic_iostream; + + + + +} +# 935 "/usr/include/c++/5/istream" 2 3 +# 66 "/usr/include/c++/5/iterator" 2 3 +# 1 "/usr/include/c++/5/bits/stream_iterator.h" 1 3 +# 33 "/usr/include/c++/5/bits/stream_iterator.h" 3 + +# 34 "/usr/include/c++/5/bits/stream_iterator.h" 3 + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + + template, typename _Dist = ptrdiff_t> + class istream_iterator + : public iterator + { + public: + typedef _CharT char_type; + typedef _Traits traits_type; + typedef basic_istream<_CharT, _Traits> istream_type; + + private: + istream_type* _M_stream; + _Tp _M_value; + bool _M_ok; + + public: + + constexpr istream_iterator() + : _M_stream(0), _M_value(), _M_ok(false) {} + + + istream_iterator(istream_type& __s) + : _M_stream(&__s) + { _M_read(); } + + istream_iterator(const istream_iterator& __obj) + : _M_stream(__obj._M_stream), _M_value(__obj._M_value), + _M_ok(__obj._M_ok) + { } + + const _Tp& + operator*() const + { + + + ; + return _M_value; + } + + const _Tp* + operator->() const { return &(operator*()); } + + istream_iterator& + operator++() + { + + + ; + _M_read(); + return *this; + } + + istream_iterator + operator++(int) + { + + + ; + istream_iterator __tmp = *this; + _M_read(); + return __tmp; + } + + bool + _M_equal(const istream_iterator& __x) const + { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } + + private: + void + _M_read() + { + _M_ok = (_M_stream && *_M_stream) ? true : false; + if (_M_ok) + { + *_M_stream >> _M_value; + _M_ok = *_M_stream ? true : false; + } + } + }; + + + template + inline bool + operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, + const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) + { return __x._M_equal(__y); } + + + template + inline bool + operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, + const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) + { return !__x._M_equal(__y); } +# 152 "/usr/include/c++/5/bits/stream_iterator.h" 3 + template > + class ostream_iterator + : public iterator + { + public: + + + typedef _CharT char_type; + typedef _Traits traits_type; + typedef basic_ostream<_CharT, _Traits> ostream_type; + + + private: + ostream_type* _M_stream; + const _CharT* _M_string; + + public: + + ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {} +# 183 "/usr/include/c++/5/bits/stream_iterator.h" 3 + ostream_iterator(ostream_type& __s, const _CharT* __c) + : _M_stream(&__s), _M_string(__c) { } + + + ostream_iterator(const ostream_iterator& __obj) + : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } + + + + ostream_iterator& + operator=(const _Tp& __value) + { + + + ; + *_M_stream << __value; + if (_M_string) *_M_stream << _M_string; + return *this; + } + + ostream_iterator& + operator*() + { return *this; } + + ostream_iterator& + operator++() + { return *this; } + + ostream_iterator& + operator++(int) + { return *this; } + }; + + + + +} +# 67 "/usr/include/c++/5/iterator" 2 3 +# 51 "/usr/include/qt4/QtCore/qlist.h" 2 +# 1 "/usr/include/c++/5/list" 1 3 +# 58 "/usr/include/c++/5/list" 3 + +# 59 "/usr/include/c++/5/list" 3 + + + + +# 1 "/usr/include/c++/5/bits/stl_list.h" 1 3 +# 64 "/usr/include/c++/5/bits/stl_list.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + namespace __detail + { + +# 77 "/usr/include/c++/5/bits/stl_list.h" 3 + struct _List_node_base + { + _List_node_base* _M_next; + _List_node_base* _M_prev; + + static void + swap(_List_node_base& __x, _List_node_base& __y) noexcept; + + void + _M_transfer(_List_node_base* const __first, + _List_node_base* const __last) noexcept; + + void + _M_reverse() noexcept; + + void + _M_hook(_List_node_base* const __position) noexcept; + + void + _M_unhook() noexcept; + }; + + + } + + + + + template + struct _List_node : public __detail::_List_node_base + { + + _Tp _M_data; + + + template + _List_node(_Args&&... __args) + : __detail::_List_node_base(), _M_data(std::forward<_Args>(__args)...) + { } + + }; + + + + + + + template + struct _List_iterator + { + typedef _List_iterator<_Tp> _Self; + typedef _List_node<_Tp> _Node; + + typedef ptrdiff_t difference_type; + typedef std::bidirectional_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _Tp* pointer; + typedef _Tp& reference; + + _List_iterator() noexcept + : _M_node() { } + + explicit + _List_iterator(__detail::_List_node_base* __x) noexcept + : _M_node(__x) { } + + _Self + _M_const_cast() const noexcept + { return *this; } + + + reference + operator*() const noexcept + { return static_cast<_Node*>(_M_node)->_M_data; } + + pointer + operator->() const noexcept + { return std::__addressof(static_cast<_Node*>(_M_node)->_M_data); } + + _Self& + operator++() noexcept + { + _M_node = _M_node->_M_next; + return *this; + } + + _Self + operator++(int) noexcept + { + _Self __tmp = *this; + _M_node = _M_node->_M_next; + return __tmp; + } + + _Self& + operator--() noexcept + { + _M_node = _M_node->_M_prev; + return *this; + } + + _Self + operator--(int) noexcept + { + _Self __tmp = *this; + _M_node = _M_node->_M_prev; + return __tmp; + } + + bool + operator==(const _Self& __x) const noexcept + { return _M_node == __x._M_node; } + + bool + operator!=(const _Self& __x) const noexcept + { return _M_node != __x._M_node; } + + + __detail::_List_node_base* _M_node; + }; + + + + + + + template + struct _List_const_iterator + { + typedef _List_const_iterator<_Tp> _Self; + typedef const _List_node<_Tp> _Node; + typedef _List_iterator<_Tp> iterator; + + typedef ptrdiff_t difference_type; + typedef std::bidirectional_iterator_tag iterator_category; + typedef _Tp value_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + + _List_const_iterator() noexcept + : _M_node() { } + + explicit + _List_const_iterator(const __detail::_List_node_base* __x) + noexcept + : _M_node(__x) { } + + _List_const_iterator(const iterator& __x) noexcept + : _M_node(__x._M_node) { } + + iterator + _M_const_cast() const noexcept + { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } + + + + reference + operator*() const noexcept + { return static_cast<_Node*>(_M_node)->_M_data; } + + pointer + operator->() const noexcept + { return std::__addressof(static_cast<_Node*>(_M_node)->_M_data); } + + _Self& + operator++() noexcept + { + _M_node = _M_node->_M_next; + return *this; + } + + _Self + operator++(int) noexcept + { + _Self __tmp = *this; + _M_node = _M_node->_M_next; + return __tmp; + } + + _Self& + operator--() noexcept + { + _M_node = _M_node->_M_prev; + return *this; + } + + _Self + operator--(int) noexcept + { + _Self __tmp = *this; + _M_node = _M_node->_M_prev; + return __tmp; + } + + bool + operator==(const _Self& __x) const noexcept + { return _M_node == __x._M_node; } + + bool + operator!=(const _Self& __x) const noexcept + { return _M_node != __x._M_node; } + + + const __detail::_List_node_base* _M_node; + }; + + template + inline bool + operator==(const _List_iterator<_Val>& __x, + const _List_const_iterator<_Val>& __y) noexcept + { return __x._M_node == __y._M_node; } + + template + inline bool + operator!=(const _List_iterator<_Val>& __x, + const _List_const_iterator<_Val>& __y) noexcept + { return __x._M_node != __y._M_node; } + +namespace __cxx11 { + + template + class _List_base + { + protected: +# 314 "/usr/include/c++/5/bits/stl_list.h" 3 + typedef typename _Alloc::template rebind<_List_node<_Tp> >::other + _Node_alloc_type; + + typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; + + static size_t + _S_distance(const __detail::_List_node_base* __first, + const __detail::_List_node_base* __last) + { + size_t __n = 0; + while (__first != __last) + { + __first = __first->_M_next; + ++__n; + } + return __n; + } + + struct _List_impl + : public _Node_alloc_type + { + + _List_node _M_node; + + + + + _List_impl() + : _Node_alloc_type(), _M_node() + { } + + _List_impl(const _Node_alloc_type& __a) noexcept + : _Node_alloc_type(__a), _M_node() + { } + + + _List_impl(_Node_alloc_type&& __a) noexcept + : _Node_alloc_type(std::move(__a)), _M_node() + { } + + }; + + _List_impl _M_impl; + + + size_t _M_get_size() const { return _M_impl._M_node._M_data; } + + void _M_set_size(size_t __n) { _M_impl._M_node._M_data = __n; } + + void _M_inc_size(size_t __n) { _M_impl._M_node._M_data += __n; } + + void _M_dec_size(size_t __n) { _M_impl._M_node._M_data -= __n; } + + size_t + _M_distance(const __detail::_List_node_base* __first, + const __detail::_List_node_base* __last) const + { return _S_distance(__first, __last); } + + + size_t _M_node_count() const { return _M_impl._M_node._M_data; } +# 390 "/usr/include/c++/5/bits/stl_list.h" 3 + _List_node<_Tp>* + _M_get_node() + { return _M_impl._Node_alloc_type::allocate(1); } + + void + _M_put_node(_List_node<_Tp>* __p) noexcept + { _M_impl._Node_alloc_type::deallocate(__p, 1); } + + public: + typedef _Alloc allocator_type; + + _Node_alloc_type& + _M_get_Node_allocator() noexcept + { return *static_cast<_Node_alloc_type*>(&_M_impl); } + + const _Node_alloc_type& + _M_get_Node_allocator() const noexcept + { return *static_cast(&_M_impl); } + + _Tp_alloc_type + _M_get_Tp_allocator() const noexcept + { return _Tp_alloc_type(_M_get_Node_allocator()); } + + allocator_type + get_allocator() const noexcept + { return allocator_type(_M_get_Node_allocator()); } + + _List_base() + : _M_impl() + { _M_init(); } + + _List_base(const _Node_alloc_type& __a) noexcept + : _M_impl(__a) + { _M_init(); } + + + _List_base(_List_base&& __x) noexcept + : _M_impl(std::move(__x._M_get_Node_allocator())) + { + auto* const __xnode = std::__addressof(__x._M_impl._M_node); + if (__xnode->_M_next == __xnode) + _M_init(); + else + { + auto* const __node = std::__addressof(_M_impl._M_node); + __node->_M_next = __xnode->_M_next; + __node->_M_prev = __xnode->_M_prev; + __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; + _M_set_size(__x._M_get_size()); + __x._M_init(); + } + } + + + + ~_List_base() noexcept + { _M_clear(); } + + void + _M_clear() noexcept; + + void + _M_init() noexcept + { + this->_M_impl._M_node._M_next = &this->_M_impl._M_node; + this->_M_impl._M_node._M_prev = &this->_M_impl._M_node; + _M_set_size(0); + } + }; +# 506 "/usr/include/c++/5/bits/stl_list.h" 3 + template > + class list : protected _List_base<_Tp, _Alloc> + { + + typedef typename _Alloc::value_type _Alloc_value_type; + + + + typedef _List_base<_Tp, _Alloc> _Base; + typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; + typedef typename _Base::_Node_alloc_type _Node_alloc_type; + + public: + typedef _Tp value_type; + typedef typename _Tp_alloc_type::pointer pointer; + typedef typename _Tp_alloc_type::const_pointer const_pointer; + typedef typename _Tp_alloc_type::reference reference; + typedef typename _Tp_alloc_type::const_reference const_reference; + typedef _List_iterator<_Tp> iterator; + typedef _List_const_iterator<_Tp> const_iterator; + typedef std::reverse_iterator const_reverse_iterator; + typedef std::reverse_iterator reverse_iterator; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Alloc allocator_type; + + protected: + + + typedef _List_node<_Tp> _Node; + + using _Base::_M_impl; + using _Base::_M_put_node; + using _Base::_M_get_node; + using _Base::_M_get_Tp_allocator; + using _Base::_M_get_Node_allocator; +# 567 "/usr/include/c++/5/bits/stl_list.h" 3 + template + _Node* + _M_create_node(_Args&&... __args) + { + _Node* __p = this->_M_get_node(); + try + { + _M_get_Node_allocator().construct(__p, + std::forward<_Args>(__args)...); + } + catch(...) + { + _M_put_node(__p); + throw; + } + return __p; + } + + + public: + + + + + + + list() + + noexcept(is_nothrow_default_constructible<_Node_alloc_type>::value) + + : _Base() { } + + + + + + explicit + list(const allocator_type& __a) noexcept + : _Base(_Node_alloc_type(__a)) { } +# 615 "/usr/include/c++/5/bits/stl_list.h" 3 + explicit + list(size_type __n) + : _Base() + { _M_default_initialize(__n); } +# 628 "/usr/include/c++/5/bits/stl_list.h" 3 + list(size_type __n, const value_type& __value, + const allocator_type& __a = allocator_type()) + : _Base(_Node_alloc_type(__a)) + { _M_fill_initialize(__n, __value); } +# 655 "/usr/include/c++/5/bits/stl_list.h" 3 + list(const list& __x) + : _Base(__x._M_get_Node_allocator()) + { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } +# 667 "/usr/include/c++/5/bits/stl_list.h" 3 + list(list&& __x) noexcept + : _Base(std::move(__x)) { } +# 678 "/usr/include/c++/5/bits/stl_list.h" 3 + list(initializer_list __l, + const allocator_type& __a = allocator_type()) + : _Base(_Node_alloc_type(__a)) + { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } +# 695 "/usr/include/c++/5/bits/stl_list.h" 3 + template> + list(_InputIterator __first, _InputIterator __last, + const allocator_type& __a = allocator_type()) + : _Base(_Node_alloc_type(__a)) + { _M_initialize_dispatch(__first, __last, __false_type()); } +# 728 "/usr/include/c++/5/bits/stl_list.h" 3 + list& + operator=(const list& __x); +# 739 "/usr/include/c++/5/bits/stl_list.h" 3 + list& + operator=(list&& __x) + { + + + this->clear(); + this->swap(__x); + return *this; + } +# 756 "/usr/include/c++/5/bits/stl_list.h" 3 + list& + operator=(initializer_list __l) + { + this->assign(__l.begin(), __l.end()); + return *this; + } +# 774 "/usr/include/c++/5/bits/stl_list.h" 3 + void + assign(size_type __n, const value_type& __val) + { _M_fill_assign(__n, __val); } +# 791 "/usr/include/c++/5/bits/stl_list.h" 3 + template> + void + assign(_InputIterator __first, _InputIterator __last) + { _M_assign_dispatch(__first, __last, __false_type()); } +# 815 "/usr/include/c++/5/bits/stl_list.h" 3 + void + assign(initializer_list __l) + { this->assign(__l.begin(), __l.end()); } + + + + allocator_type + get_allocator() const noexcept + { return _Base::get_allocator(); } + + + + + + + iterator + begin() noexcept + { return iterator(this->_M_impl._M_node._M_next); } + + + + + + + const_iterator + begin() const noexcept + { return const_iterator(this->_M_impl._M_node._M_next); } + + + + + + + iterator + end() noexcept + { return iterator(&this->_M_impl._M_node); } + + + + + + + const_iterator + end() const noexcept + { return const_iterator(&this->_M_impl._M_node); } + + + + + + + reverse_iterator + rbegin() noexcept + { return reverse_iterator(end()); } + + + + + + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(end()); } + + + + + + + reverse_iterator + rend() noexcept + { return reverse_iterator(begin()); } + + + + + + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(begin()); } + + + + + + + + const_iterator + cbegin() const noexcept + { return const_iterator(this->_M_impl._M_node._M_next); } + + + + + + + const_iterator + cend() const noexcept + { return const_iterator(&this->_M_impl._M_node); } + + + + + + + const_reverse_iterator + crbegin() const noexcept + { return const_reverse_iterator(end()); } + + + + + + + const_reverse_iterator + crend() const noexcept + { return const_reverse_iterator(begin()); } + + + + + + + + bool + empty() const noexcept + { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } + + + size_type + size() const noexcept + { return this->_M_node_count(); } + + + size_type + max_size() const noexcept + { return _M_get_Node_allocator().max_size(); } +# 964 "/usr/include/c++/5/bits/stl_list.h" 3 + void + resize(size_type __new_size); +# 977 "/usr/include/c++/5/bits/stl_list.h" 3 + void + resize(size_type __new_size, const value_type& __x); +# 999 "/usr/include/c++/5/bits/stl_list.h" 3 + reference + front() noexcept + { return *begin(); } + + + + + + const_reference + front() const noexcept + { return *begin(); } + + + + + + reference + back() noexcept + { + iterator __tmp = end(); + --__tmp; + return *__tmp; + } + + + + + + const_reference + back() const noexcept + { + const_iterator __tmp = end(); + --__tmp; + return *__tmp; + } +# 1046 "/usr/include/c++/5/bits/stl_list.h" 3 + void + push_front(const value_type& __x) + { this->_M_insert(begin(), __x); } + + + void + push_front(value_type&& __x) + { this->_M_insert(begin(), std::move(__x)); } + + template + void + emplace_front(_Args&&... __args) + { this->_M_insert(begin(), std::forward<_Args>(__args)...); } +# 1073 "/usr/include/c++/5/bits/stl_list.h" 3 + void + pop_front() noexcept + { this->_M_erase(begin()); } +# 1087 "/usr/include/c++/5/bits/stl_list.h" 3 + void + push_back(const value_type& __x) + { this->_M_insert(end(), __x); } + + + void + push_back(value_type&& __x) + { this->_M_insert(end(), std::move(__x)); } + + template + void + emplace_back(_Args&&... __args) + { this->_M_insert(end(), std::forward<_Args>(__args)...); } +# 1113 "/usr/include/c++/5/bits/stl_list.h" 3 + void + pop_back() noexcept + { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } +# 1130 "/usr/include/c++/5/bits/stl_list.h" 3 + template + iterator + emplace(const_iterator __position, _Args&&... __args); +# 1145 "/usr/include/c++/5/bits/stl_list.h" 3 + iterator + insert(const_iterator __position, const value_type& __x); +# 1175 "/usr/include/c++/5/bits/stl_list.h" 3 + iterator + insert(const_iterator __position, value_type&& __x) + { return emplace(__position, std::move(__x)); } +# 1194 "/usr/include/c++/5/bits/stl_list.h" 3 + iterator + insert(const_iterator __p, initializer_list __l) + { return this->insert(__p, __l.begin(), __l.end()); } +# 1214 "/usr/include/c++/5/bits/stl_list.h" 3 + iterator + insert(const_iterator __position, size_type __n, const value_type& __x); +# 1253 "/usr/include/c++/5/bits/stl_list.h" 3 + template> + iterator + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last); +# 1297 "/usr/include/c++/5/bits/stl_list.h" 3 + iterator + + erase(const_iterator __position) noexcept; +# 1322 "/usr/include/c++/5/bits/stl_list.h" 3 + iterator + + erase(const_iterator __first, const_iterator __last) noexcept + + + + { + while (__first != __last) + __first = erase(__first); + return __last._M_const_cast(); + } +# 1343 "/usr/include/c++/5/bits/stl_list.h" 3 + void + swap(list& __x) + { + __detail::_List_node_base::swap(this->_M_impl._M_node, + __x._M_impl._M_node); + + size_t __xsize = __x._M_get_size(); + __x._M_set_size(this->_M_get_size()); + this->_M_set_size(__xsize); + + + + std::__alloc_swap:: + _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator()); + } + + + + + + + + void + clear() noexcept + { + _Base::_M_clear(); + _Base::_M_init(); + } +# 1384 "/usr/include/c++/5/bits/stl_list.h" 3 + void + + splice(const_iterator __position, list&& __x) noexcept + + + + { + if (!__x.empty()) + { + _M_check_equal_allocators(__x); + + this->_M_transfer(__position._M_const_cast(), + __x.begin(), __x.end()); + + this->_M_inc_size(__x._M_get_size()); + __x._M_set_size(0); + } + } + + + void + splice(const_iterator __position, list& __x) noexcept + { splice(__position, std::move(__x)); } +# 1420 "/usr/include/c++/5/bits/stl_list.h" 3 + void + splice(const_iterator __position, list&& __x, const_iterator __i) noexcept +# 1435 "/usr/include/c++/5/bits/stl_list.h" 3 + { + iterator __j = __i._M_const_cast(); + ++__j; + if (__position == __i || __position == __j) + return; + + if (this != &__x) + _M_check_equal_allocators(__x); + + this->_M_transfer(__position._M_const_cast(), + __i._M_const_cast(), __j); + + this->_M_inc_size(1); + __x._M_dec_size(1); + } +# 1462 "/usr/include/c++/5/bits/stl_list.h" 3 + void + splice(const_iterator __position, list& __x, const_iterator __i) noexcept + { splice(__position, std::move(__x), __i); } +# 1481 "/usr/include/c++/5/bits/stl_list.h" 3 + void + splice(const_iterator __position, list&& __x, const_iterator __first, + const_iterator __last) noexcept +# 1501 "/usr/include/c++/5/bits/stl_list.h" 3 + { + if (__first != __last) + { + if (this != &__x) + _M_check_equal_allocators(__x); + + size_t __n = this->_M_distance(__first._M_node, __last._M_node); + this->_M_inc_size(__n); + __x._M_dec_size(__n); + + this->_M_transfer(__position._M_const_cast(), + __first._M_const_cast(), + __last._M_const_cast()); + } + } +# 1531 "/usr/include/c++/5/bits/stl_list.h" 3 + void + splice(const_iterator __position, list& __x, const_iterator __first, + const_iterator __last) noexcept + { splice(__position, std::move(__x), __first, __last); } +# 1548 "/usr/include/c++/5/bits/stl_list.h" 3 + void + remove(const _Tp& __value); +# 1562 "/usr/include/c++/5/bits/stl_list.h" 3 + template + void + remove_if(_Predicate); +# 1576 "/usr/include/c++/5/bits/stl_list.h" 3 + void + unique(); +# 1591 "/usr/include/c++/5/bits/stl_list.h" 3 + template + void + unique(_BinaryPredicate); +# 1605 "/usr/include/c++/5/bits/stl_list.h" 3 + void + merge(list&& __x); + + void + merge(list& __x) + { merge(std::move(__x)); } +# 1630 "/usr/include/c++/5/bits/stl_list.h" 3 + template + void + merge(list&& __x, _StrictWeakOrdering __comp); + + template + void + merge(list& __x, _StrictWeakOrdering __comp) + { merge(std::move(__x), __comp); } +# 1649 "/usr/include/c++/5/bits/stl_list.h" 3 + void + reverse() noexcept + { this->_M_impl._M_node._M_reverse(); } + + + + + + + + void + sort(); + + + + + + + + template + void + sort(_StrictWeakOrdering); + + protected: + + + + + + + template + void + _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) + { _M_fill_initialize(static_cast(__n), __x); } + + + template + void + _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, + __false_type) + { + for (; __first != __last; ++__first) + + emplace_back(*__first); + + + + } + + + + void + _M_fill_initialize(size_type __n, const value_type& __x) + { + for (; __n; --__n) + push_back(__x); + } + + + + void + _M_default_initialize(size_type __n) + { + for (; __n; --__n) + emplace_back(); + } + + + void + _M_default_append(size_type __n); +# 1727 "/usr/include/c++/5/bits/stl_list.h" 3 + template + void + _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) + { _M_fill_assign(__n, __val); } + + + template + void + _M_assign_dispatch(_InputIterator __first, _InputIterator __last, + __false_type); + + + + void + _M_fill_assign(size_type __n, const value_type& __val); + + + + void + _M_transfer(iterator __position, iterator __first, iterator __last) + { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } +# 1759 "/usr/include/c++/5/bits/stl_list.h" 3 + template + void + _M_insert(iterator __position, _Args&&... __args) + { + _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); + __tmp->_M_hook(__position._M_node); + this->_M_inc_size(1); + } + + + + void + _M_erase(iterator __position) noexcept + { + this->_M_dec_size(1); + __position._M_node->_M_unhook(); + _Node* __n = static_cast<_Node*>(__position._M_node); + + _M_get_Node_allocator().destroy(__n); + + + + _M_put_node(__n); + } + + + void + _M_check_equal_allocators(list& __x) noexcept + { + if (std::__alloc_neq:: + _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) + __builtin_abort(); + } + }; +} +# 1805 "/usr/include/c++/5/bits/stl_list.h" 3 + template + inline bool + operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) + { + typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; + const_iterator __end1 = __x.end(); + const_iterator __end2 = __y.end(); + + const_iterator __i1 = __x.begin(); + const_iterator __i2 = __y.begin(); + while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) + { + ++__i1; + ++__i2; + } + return __i1 == __end1 && __i2 == __end2; + } +# 1834 "/usr/include/c++/5/bits/stl_list.h" 3 + template + inline bool + operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) + { return std::lexicographical_compare(__x.begin(), __x.end(), + __y.begin(), __y.end()); } + + + template + inline bool + operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) + { return !(__x == __y); } + + + template + inline bool + operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) + { return __y < __x; } + + + template + inline bool + operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) + { return !(__y < __x); } + + + template + inline bool + operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) + { return !(__x < __y); } + + + template + inline void + swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) + { __x.swap(__y); } + + +} +# 64 "/usr/include/c++/5/list" 2 3 +# 1 "/usr/include/c++/5/bits/list.tcc" 1 3 +# 59 "/usr/include/c++/5/bits/list.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + void + _List_base<_Tp, _Alloc>:: + _M_clear() noexcept + { + typedef _List_node<_Tp> _Node; + __detail::_List_node_base* __cur = _M_impl._M_node._M_next; + while (__cur != &_M_impl._M_node) + { + _Node* __tmp = static_cast<_Node*>(__cur); + __cur = __tmp->_M_next; + + _M_get_Node_allocator().destroy(__tmp); + + + + _M_put_node(__tmp); + } + } + + + template + template + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + emplace(const_iterator __position, _Args&&... __args) + { + _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); + __tmp->_M_hook(__position._M_const_cast()._M_node); + this->_M_inc_size(1); + return iterator(__tmp); + } + + + template + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + + insert(const_iterator __position, const value_type& __x) + + + + { + _Node* __tmp = _M_create_node(__x); + __tmp->_M_hook(__position._M_const_cast()._M_node); + this->_M_inc_size(1); + return iterator(__tmp); + } + + + template + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + insert(const_iterator __position, size_type __n, const value_type& __x) + { + if (__n) + { + list __tmp(__n, __x, get_allocator()); + iterator __it = __tmp.begin(); + splice(__position, __tmp); + return __it; + } + return __position._M_const_cast(); + } + + template + template + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last) + { + list __tmp(__first, __last, get_allocator()); + if (!__tmp.empty()) + { + iterator __it = __tmp.begin(); + splice(__position, __tmp); + return __it; + } + return __position._M_const_cast(); + } + + + template + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + + erase(const_iterator __position) noexcept + + + + { + iterator __ret = iterator(__position._M_node->_M_next); + _M_erase(__position._M_const_cast()); + return __ret; + } + + + template + void + list<_Tp, _Alloc>:: + _M_default_append(size_type __n) + { + size_type __i = 0; + try + { + for (; __i < __n; ++__i) + emplace_back(); + } + catch(...) + { + for (; __i; --__i) + pop_back(); + throw; + } + } + + template + void + list<_Tp, _Alloc>:: + resize(size_type __new_size) + { + iterator __i = begin(); + size_type __len = 0; + for (; __i != end() && __len < __new_size; ++__i, ++__len) + ; + if (__len == __new_size) + erase(__i, end()); + else + _M_default_append(__new_size - __len); + } + + template + void + list<_Tp, _Alloc>:: + resize(size_type __new_size, const value_type& __x) + { + iterator __i = begin(); + size_type __len = 0; + for (; __i != end() && __len < __new_size; ++__i, ++__len) + ; + if (__len == __new_size) + erase(__i, end()); + else + insert(end(), __new_size - __len, __x); + } +# 226 "/usr/include/c++/5/bits/list.tcc" 3 + template + list<_Tp, _Alloc>& + list<_Tp, _Alloc>:: + operator=(const list& __x) + { + if (this != &__x) + { + iterator __first1 = begin(); + iterator __last1 = end(); + const_iterator __first2 = __x.begin(); + const_iterator __last2 = __x.end(); + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, ++__first2) + *__first1 = *__first2; + if (__first2 == __last2) + erase(__first1, __last1); + else + insert(__last1, __first2, __last2); + } + return *this; + } + + template + void + list<_Tp, _Alloc>:: + _M_fill_assign(size_type __n, const value_type& __val) + { + iterator __i = begin(); + for (; __i != end() && __n > 0; ++__i, --__n) + *__i = __val; + if (__n > 0) + insert(end(), __n, __val); + else + erase(__i, end()); + } + + template + template + void + list<_Tp, _Alloc>:: + _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, + __false_type) + { + iterator __first1 = begin(); + iterator __last1 = end(); + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, ++__first2) + *__first1 = *__first2; + if (__first2 == __last2) + erase(__first1, __last1); + else + insert(__last1, __first2, __last2); + } + + template + void + list<_Tp, _Alloc>:: + remove(const value_type& __value) + { + iterator __first = begin(); + iterator __last = end(); + iterator __extra = __last; + while (__first != __last) + { + iterator __next = __first; + ++__next; + if (*__first == __value) + { + + + + if (std::__addressof(*__first) != std::__addressof(__value)) + _M_erase(__first); + else + __extra = __first; + } + __first = __next; + } + if (__extra != __last) + _M_erase(__extra); + } + + template + void + list<_Tp, _Alloc>:: + unique() + { + iterator __first = begin(); + iterator __last = end(); + if (__first == __last) + return; + iterator __next = __first; + while (++__next != __last) + { + if (*__first == *__next) + _M_erase(__next); + else + __first = __next; + __next = __first; + } + } + + template + void + list<_Tp, _Alloc>:: + + merge(list&& __x) + + + + { + + + if (this != &__x) + { + _M_check_equal_allocators(__x); + + iterator __first1 = begin(); + iterator __last1 = end(); + iterator __first2 = __x.begin(); + iterator __last2 = __x.end(); + while (__first1 != __last1 && __first2 != __last2) + if (*__first2 < *__first1) + { + iterator __next = __first2; + _M_transfer(__first1, __first2, ++__next); + __first2 = __next; + } + else + ++__first1; + if (__first2 != __last2) + _M_transfer(__last1, __first2, __last2); + + this->_M_inc_size(__x._M_get_size()); + __x._M_set_size(0); + } + } + + template + template + void + list<_Tp, _Alloc>:: + + merge(list&& __x, _StrictWeakOrdering __comp) + + + + { + + + if (this != &__x) + { + _M_check_equal_allocators(__x); + + iterator __first1 = begin(); + iterator __last1 = end(); + iterator __first2 = __x.begin(); + iterator __last2 = __x.end(); + while (__first1 != __last1 && __first2 != __last2) + if (__comp(*__first2, *__first1)) + { + iterator __next = __first2; + _M_transfer(__first1, __first2, ++__next); + __first2 = __next; + } + else + ++__first1; + if (__first2 != __last2) + _M_transfer(__last1, __first2, __last2); + + this->_M_inc_size(__x._M_get_size()); + __x._M_set_size(0); + } + } + + template + void + list<_Tp, _Alloc>:: + sort() + { + + if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node + && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) + { + list __carry; + list __tmp[64]; + list * __fill = &__tmp[0]; + list * __counter; + + do + { + __carry.splice(__carry.begin(), *this, begin()); + + for(__counter = &__tmp[0]; + __counter != __fill && !__counter->empty(); + ++__counter) + { + __counter->merge(__carry); + __carry.swap(*__counter); + } + __carry.swap(*__counter); + if (__counter == __fill) + ++__fill; + } + while ( !empty() ); + + for (__counter = &__tmp[1]; __counter != __fill; ++__counter) + __counter->merge(*(__counter - 1)); + swap( *(__fill - 1) ); + } + } + + template + template + void + list<_Tp, _Alloc>:: + remove_if(_Predicate __pred) + { + iterator __first = begin(); + iterator __last = end(); + while (__first != __last) + { + iterator __next = __first; + ++__next; + if (__pred(*__first)) + _M_erase(__first); + __first = __next; + } + } + + template + template + void + list<_Tp, _Alloc>:: + unique(_BinaryPredicate __binary_pred) + { + iterator __first = begin(); + iterator __last = end(); + if (__first == __last) + return; + iterator __next = __first; + while (++__next != __last) + { + if (__binary_pred(*__first, *__next)) + _M_erase(__next); + else + __first = __next; + __next = __first; + } + } + + template + template + void + list<_Tp, _Alloc>:: + sort(_StrictWeakOrdering __comp) + { + + if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node + && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) + { + list __carry; + list __tmp[64]; + list * __fill = &__tmp[0]; + list * __counter; + + do + { + __carry.splice(__carry.begin(), *this, begin()); + + for(__counter = &__tmp[0]; + __counter != __fill && !__counter->empty(); + ++__counter) + { + __counter->merge(__carry, __comp); + __carry.swap(*__counter); + } + __carry.swap(*__counter); + if (__counter == __fill) + ++__fill; + } + while ( !empty() ); + + for (__counter = &__tmp[1]; __counter != __fill; ++__counter) + __counter->merge(*(__counter - 1), __comp); + swap(*(__fill - 1)); + } + } + + +} +# 65 "/usr/include/c++/5/list" 2 3 +# 52 "/usr/include/qt4/QtCore/qlist.h" 2 + + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 168 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 143 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 +# 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 144 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 +# 148 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 +# 33 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 +# 34 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 +# 152 "/usr/include/limits.h" 2 3 4 +# 169 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4 +# 60 "/usr/include/qt4/QtCore/qlist.h" 2 + + + + + + + +# 66 "/usr/include/qt4/QtCore/qlist.h" +typedef QtValidLicenseForCoreModule QtCoreModule; + +template class QVector; +template class QSet; + +struct QListData { + struct Data { + QBasicAtomicInt ref; + int alloc, begin, end; + uint sharable : 1; + void *array[1]; + }; + enum { DataHeaderSize = sizeof(Data) - sizeof(void *) }; + + Data *detach(int alloc); + Data *detach_grow(int *i, int n); + Data *detach(); + Data *detach2(); + Data *detach3(); + void realloc(int alloc); + static Data shared_null; + Data *d; + void **erase(void **xi); + void **append(int n); + void **append(); + void **append(const QListData &l); + void **append2(const QListData &l); + void **prepend(); + void **insert(int i); + void remove(int i); + void remove(int i, int n); + void move(int from, int to); + inline int size() const { return d->end - d->begin; } + inline bool isEmpty() const { return d->end == d->begin; } + inline void **at(int i) const { return d->array + d->begin + i; } + inline void **begin() const { return d->array + d->begin; } + inline void **end() const { return d->array + d->end; } +}; + +template +class QList +{ + struct Node { void *v; + + + + inline T &t() + { return *reinterpret_cast(QTypeInfo::isLarge || QTypeInfo::isStatic + ? v : this); } + + }; + + union { QListData p; QListData::Data *d; }; + +public: + inline QList() : d(&QListData::shared_null) { d->ref.ref(); } + inline QList(const QList &l) : d(l.d) { d->ref.ref(); if (!d->sharable) detach_helper(); } + ~QList(); + QList &operator=(const QList &l); + + inline QList &operator=(QList &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QList &other) { qSwap(d, other.d); } + + inline QList(std::initializer_list args) : d(&QListData::shared_null) + { d->ref.ref(); qCopy(args.begin(), args.end(), std::back_inserter(*this)); } + + bool operator==(const QList &l) const; + inline bool operator!=(const QList &l) const { return !(*this == l); } + + inline int size() const { return p.size(); } + + inline void detach() { if (d->ref != 1) detach_helper(); } + + inline void detachShared() + { + + if (d->ref != 1 && this->d != &QListData::shared_null) + detach_helper(); + } + + inline bool isDetached() const { return d->ref == 1; } + inline void setSharable(bool sharable) { if (!sharable) detach(); d->sharable = sharable; } + inline bool isSharedWith(const QList &other) const { return d == other.d; } + + inline bool isEmpty() const { return p.isEmpty(); } + + void clear(); + + const T &at(int i) const; + const T &operator[](int i) const; + T &operator[](int i); + + void reserve(int size); + void append(const T &t); + void append(const QList &t); + void prepend(const T &t); + void insert(int i, const T &t); + void replace(int i, const T &t); + void removeAt(int i); + int removeAll(const T &t); + bool removeOne(const T &t); + T takeAt(int i); + T takeFirst(); + T takeLast(); + void move(int from, int to); + void swap(int i, int j); + int indexOf(const T &t, int from = 0) const; + int lastIndexOf(const T &t, int from = -1) const; + QBool contains(const T &t) const; + int count(const T &t) const; + + class const_iterator; + + class iterator { + public: + Node *i; + typedef std::random_access_iterator_tag iterator_category; + typedef qptrdiff difference_type; + typedef T value_type; + typedef T *pointer; + typedef T &reference; + + inline iterator() : i(0) {} + inline iterator(Node *n) : i(n) {} + inline iterator(const iterator &o): i(o.i){} + inline T &operator*() const { return i->t(); } + inline T *operator->() const { return &i->t(); } + inline T &operator[](int j) const { return i[j].t(); } + inline bool operator==(const iterator &o) const { return i == o.i; } + inline bool operator!=(const iterator &o) const { return i != o.i; } + inline bool operator<(const iterator& other) const { return i < other.i; } + inline bool operator<=(const iterator& other) const { return i <= other.i; } + inline bool operator>(const iterator& other) const { return i > other.i; } + inline bool operator>=(const iterator& other) const { return i >= other.i; } + + inline bool operator==(const const_iterator &o) const + { return i == o.i; } + inline bool operator!=(const const_iterator &o) const + { return i != o.i; } + inline bool operator<(const const_iterator& other) const + { return i < other.i; } + inline bool operator<=(const const_iterator& other) const + { return i <= other.i; } + inline bool operator>(const const_iterator& other) const + { return i > other.i; } + inline bool operator>=(const const_iterator& other) const + { return i >= other.i; } + + inline iterator &operator++() { ++i; return *this; } + inline iterator operator++(int) { Node *n = i; ++i; return n; } + inline iterator &operator--() { i--; return *this; } + inline iterator operator--(int) { Node *n = i; i--; return n; } + inline iterator &operator+=(int j) { i+=j; return *this; } + inline iterator &operator-=(int j) { i-=j; return *this; } + inline iterator operator+(int j) const { return iterator(i+j); } + inline iterator operator-(int j) const { return iterator(i-j); } + inline int operator-(iterator j) const { return int(i - j.i); } + }; + friend class iterator; + + class const_iterator { + public: + Node *i; + typedef std::random_access_iterator_tag iterator_category; + typedef qptrdiff difference_type; + typedef T value_type; + typedef const T *pointer; + typedef const T &reference; + + inline const_iterator() : i(0) {} + inline const_iterator(Node *n) : i(n) {} + inline const_iterator(const const_iterator &o): i(o.i) {} + + + + inline const_iterator(const iterator &o): i(o.i) {} + + inline const T &operator*() const { return i->t(); } + inline const T *operator->() const { return &i->t(); } + inline const T &operator[](int j) const { return i[j].t(); } + inline bool operator==(const const_iterator &o) const { return i == o.i; } + inline bool operator!=(const const_iterator &o) const { return i != o.i; } + inline bool operator<(const const_iterator& other) const { return i < other.i; } + inline bool operator<=(const const_iterator& other) const { return i <= other.i; } + inline bool operator>(const const_iterator& other) const { return i > other.i; } + inline bool operator>=(const const_iterator& other) const { return i >= other.i; } + inline const_iterator &operator++() { ++i; return *this; } + inline const_iterator operator++(int) { Node *n = i; ++i; return n; } + inline const_iterator &operator--() { i--; return *this; } + inline const_iterator operator--(int) { Node *n = i; i--; return n; } + inline const_iterator &operator+=(int j) { i+=j; return *this; } + inline const_iterator &operator-=(int j) { i-=j; return *this; } + inline const_iterator operator+(int j) const { return const_iterator(i+j); } + inline const_iterator operator-(int j) const { return const_iterator(i-j); } + inline int operator-(const_iterator j) const { return i - j.i; } + }; + friend class const_iterator; + + + inline iterator begin() { detach(); return reinterpret_cast(p.begin()); } + inline const_iterator begin() const { return reinterpret_cast(p.begin()); } + inline const_iterator constBegin() const { return reinterpret_cast(p.begin()); } + inline iterator end() { detach(); return reinterpret_cast(p.end()); } + inline const_iterator end() const { return reinterpret_cast(p.end()); } + inline const_iterator constEnd() const { return reinterpret_cast(p.end()); } + iterator insert(iterator before, const T &t); + iterator erase(iterator pos); + iterator erase(iterator first, iterator last); + + + typedef iterator Iterator; + typedef const_iterator ConstIterator; + inline int count() const { return p.size(); } + inline int length() const { return p.size(); } + inline T& first() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qlist.h",282) : qt_noop()); return *begin(); } + inline const T& first() const { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qlist.h",283) : qt_noop()); return at(0); } + T& last() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qlist.h",284) : qt_noop()); return *(--end()); } + const T& last() const { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qlist.h",285) : qt_noop()); return at(count() - 1); } + inline void removeFirst() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qlist.h",286) : qt_noop()); erase(begin()); } + inline void removeLast() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qlist.h",287) : qt_noop()); erase(--end()); } + inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } + inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } + QList mid(int pos, int length = -1) const; + + T value(int i) const; + T value(int i, const T &defaultValue) const; + + + inline void push_back(const T &t) { append(t); } + inline void push_front(const T &t) { prepend(t); } + inline T& front() { return first(); } + inline const T& front() const { return first(); } + inline T& back() { return last(); } + inline const T& back() const { return last(); } + inline void pop_front() { removeFirst(); } + inline void pop_back() { removeLast(); } + inline bool empty() const { return isEmpty(); } + typedef int size_type; + typedef T value_type; + typedef value_type *pointer; + typedef const value_type *const_pointer; + typedef value_type &reference; + typedef const value_type &const_reference; + typedef qptrdiff difference_type; +# 328 "/usr/include/qt4/QtCore/qlist.h" + QList &operator+=(const QList &l); + inline QList operator+(const QList &l) const + { QList n = *this; n += l; return n; } + inline QList &operator+=(const T &t) + { append(t); return *this; } + inline QList &operator<< (const T &t) + { append(t); return *this; } + inline QList &operator<<(const QList &l) + { *this += l; return *this; } + + QVector toVector() const; + QSet toSet() const; + + static QList fromVector(const QVector &vector); + static QList fromSet(const QSet &set); + + + static inline QList fromStdList(const std::list &list) + { QList tmp; qCopy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } + inline std::list toStdList() const + { std::list tmp; qCopy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } + + +private: + Node *detach_helper_grow(int i, int n); + void detach_helper(int alloc); + void detach_helper(); + void free(QListData::Data *d); + + void node_construct(Node *n, const T &t); + void node_destruct(Node *n); + void node_copy(Node *from, Node *to, Node *src); + void node_destruct(Node *from, Node *to); +}; + + + + + + + +template +inline void QList::node_construct(Node *n, const T &t) +{ + if (QTypeInfo::isLarge || QTypeInfo::isStatic) n->v = new T(t); + else if (QTypeInfo::isComplex) new (n) T(t); + + + + + else *reinterpret_cast(n) = t; + + + + +} + +template +inline void QList::node_destruct(Node *n) +{ + if (QTypeInfo::isLarge || QTypeInfo::isStatic) delete reinterpret_cast(n->v); + else if (QTypeInfo::isComplex) reinterpret_cast(n)->~T(); +} + +template +inline void QList::node_copy(Node *from, Node *to, Node *src) +{ + Node *current = from; + if (QTypeInfo::isLarge || QTypeInfo::isStatic) { + try { + while(current != to) { + current->v = new T(*reinterpret_cast(src->v)); + ++current; + ++src; + } + } catch (...) { + while (current-- != from) + delete reinterpret_cast(current->v); + throw; + } + + } else if (QTypeInfo::isComplex) { + try { + while(current != to) { + new (current) T(*reinterpret_cast(src)); + ++current; + ++src; + } + } catch (...) { + while (current-- != from) + (reinterpret_cast(current))->~T(); + throw; + } + } else { + if (src != from && to - from > 0) + memcpy(from, src, (to - from) * sizeof(Node *)); + } +} + +template +inline void QList::node_destruct(Node *from, Node *to) +{ + if (QTypeInfo::isLarge || QTypeInfo::isStatic) + while(from != to) --to, delete reinterpret_cast(to->v); + else if (QTypeInfo::isComplex) + while (from != to) --to, reinterpret_cast(to)->~T(); +} + +template +inline QList &QList::operator=(const QList &l) +{ + if (d != l.d) { + QListData::Data *o = l.d; + o->ref.ref(); + if (!d->ref.deref()) + free(d); + d = o; + if (!d->sharable) + detach_helper(); + } + return *this; +} +template +inline typename QList::iterator QList::insert(iterator before, const T &t) +{ + int iBefore = int(before.i - reinterpret_cast(p.begin())); + Node *n = reinterpret_cast(p.insert(iBefore)); + try { + node_construct(n, t); + } catch (...) { + p.remove(iBefore); + throw; + } + return n; +} +template +inline typename QList::iterator QList::erase(iterator it) +{ node_destruct(it.i); + return reinterpret_cast(p.erase(reinterpret_cast(it.i))); } +template +inline const T &QList::at(int i) const +{ ((!(i >= 0 && i < p.size())) ? qt_assert_x("QList::at", "index out of range","/usr/include/qt4/QtCore/qlist.h",469) : qt_noop()); + return reinterpret_cast(p.at(i))->t(); } +template +inline const T &QList::operator[](int i) const +{ ((!(i >= 0 && i < p.size())) ? qt_assert_x("QList::operator[]", "index out of range","/usr/include/qt4/QtCore/qlist.h",473) : qt_noop()); + return reinterpret_cast(p.at(i))->t(); } +template +inline T &QList::operator[](int i) +{ ((!(i >= 0 && i < p.size())) ? qt_assert_x("QList::operator[]", "index out of range","/usr/include/qt4/QtCore/qlist.h",477) : qt_noop()); + detach(); return reinterpret_cast(p.at(i))->t(); } +template +inline void QList::removeAt(int i) +{ if(i >= 0 && i < p.size()) { detach(); + node_destruct(reinterpret_cast(p.at(i))); p.remove(i); } } +template +inline T QList::takeAt(int i) +{ ((!(i >= 0 && i < p.size())) ? qt_assert_x("QList::take", "index out of range","/usr/include/qt4/QtCore/qlist.h",485) : qt_noop()); + detach(); Node *n = reinterpret_cast(p.at(i)); T t = n->t(); node_destruct(n); + p.remove(i); return t; } +template +inline T QList::takeFirst() +{ T t = first(); removeFirst(); return t; } +template +inline T QList::takeLast() +{ T t = last(); removeLast(); return t; } + +template + void QList::reserve(int alloc) +{ + if (d->alloc < alloc) { + if (d->ref != 1) + detach_helper(alloc); + else + p.realloc(alloc); + } +} + +template + void QList::append(const T &t) +{ + if (d->ref != 1) { + Node *n = detach_helper_grow(0x7fffffff, 1); + try { + node_construct(n, t); + } catch (...) { + --d->end; + throw; + } + } else { + if (QTypeInfo::isLarge || QTypeInfo::isStatic) { + Node *n = reinterpret_cast(p.append()); + try { + node_construct(n, t); + } catch (...) { + --d->end; + throw; + } + } else { + Node *n, copy; + node_construct(©, t); + try { + n = reinterpret_cast(p.append());; + } catch (...) { + node_destruct(©); + throw; + } + *n = copy; + } + } +} + +template +inline void QList::prepend(const T &t) +{ + if (d->ref != 1) { + Node *n = detach_helper_grow(0, 1); + try { + node_construct(n, t); + } catch (...) { + ++d->begin; + throw; + } + } else { + if (QTypeInfo::isLarge || QTypeInfo::isStatic) { + Node *n = reinterpret_cast(p.prepend()); + try { + node_construct(n, t); + } catch (...) { + ++d->begin; + throw; + } + } else { + Node *n, copy; + node_construct(©, t); + try { + n = reinterpret_cast(p.prepend());; + } catch (...) { + node_destruct(©); + throw; + } + *n = copy; + } + } +} + +template +inline void QList::insert(int i, const T &t) +{ + if (d->ref != 1) { + Node *n = detach_helper_grow(i, 1); + try { + node_construct(n, t); + } catch (...) { + p.remove(i); + throw; + } + } else { + if (QTypeInfo::isLarge || QTypeInfo::isStatic) { + Node *n = reinterpret_cast(p.insert(i)); + try { + node_construct(n, t); + } catch (...) { + p.remove(i); + throw; + } + } else { + Node *n, copy; + node_construct(©, t); + try { + n = reinterpret_cast(p.insert(i));; + } catch (...) { + node_destruct(©); + throw; + } + *n = copy; + } + } +} + +template +inline void QList::replace(int i, const T &t) +{ + ((!(i >= 0 && i < p.size())) ? qt_assert_x("QList::replace", "index out of range","/usr/include/qt4/QtCore/qlist.h",611) : qt_noop()); + detach(); + reinterpret_cast(p.at(i))->t() = t; +} + +template +inline void QList::swap(int i, int j) +{ + ((!(i >= 0 && i < p.size() && j >= 0 && j < p.size())) ? qt_assert_x("QList::swap", "index out of range", + "/usr/include/qt4/QtCore/qlist.h" +# 619 "/usr/include/qt4/QtCore/qlist.h" + , + 620 +# 619 "/usr/include/qt4/QtCore/qlist.h" + ) : qt_noop()) + ; + detach(); + void *t = d->array[d->begin + i]; + d->array[d->begin + i] = d->array[d->begin + j]; + d->array[d->begin + j] = t; +} + +template +inline void QList::move(int from, int to) +{ + ((!(from >= 0 && from < p.size() && to >= 0 && to < p.size())) ? qt_assert_x("QList::move", "index out of range", + "/usr/include/qt4/QtCore/qlist.h" +# 630 "/usr/include/qt4/QtCore/qlist.h" + , + 631 +# 630 "/usr/include/qt4/QtCore/qlist.h" + ) : qt_noop()) + ; + detach(); + p.move(from, to); +} + +template + QList QList::mid(int pos, int alength) const +{ + if (alength < 0 || pos + alength > size()) + alength = size() - pos; + if (pos == 0 && alength == size()) + return *this; + QList cpy; + if (alength <= 0) + return cpy; + cpy.reserve(alength); + cpy.d->end = alength; + try { + cpy.node_copy(reinterpret_cast(cpy.p.begin()), + reinterpret_cast(cpy.p.end()), + reinterpret_cast(p.begin() + pos)); + } catch (...) { + + cpy.d->end = 0; + throw; + } + return cpy; +} + +template + T QList::value(int i) const +{ + if (i < 0 || i >= p.size()) { + return T(); + } + return reinterpret_cast(p.at(i))->t(); +} + +template + T QList::value(int i, const T& defaultValue) const +{ + return ((i < 0 || i >= p.size()) ? defaultValue : reinterpret_cast(p.at(i))->t()); +} + +template + typename QList::Node *QList::detach_helper_grow(int i, int c) +{ + Node *n = reinterpret_cast(p.begin()); + QListData::Data *x = p.detach_grow(&i, c); + try { + node_copy(reinterpret_cast(p.begin()), + reinterpret_cast(p.begin() + i), n); + } catch (...) { + qFree(d); + d = x; + throw; + } + try { + node_copy(reinterpret_cast(p.begin() + i + c), + reinterpret_cast(p.end()), n + i); + } catch (...) { + node_destruct(reinterpret_cast(p.begin()), + reinterpret_cast(p.begin() + i)); + qFree(d); + d = x; + throw; + } + + if (!x->ref.deref()) + free(x); + + return reinterpret_cast(p.begin() + i); +} + +template + void QList::detach_helper(int alloc) +{ + Node *n = reinterpret_cast(p.begin()); + QListData::Data *x = p.detach(alloc); + try { + node_copy(reinterpret_cast(p.begin()), reinterpret_cast(p.end()), n); + } catch (...) { + qFree(d); + d = x; + throw; + } + + if (!x->ref.deref()) + free(x); +} + +template + void QList::detach_helper() +{ + detach_helper(d->alloc); +} + +template + QList::~QList() +{ + if (!d->ref.deref()) + free(d); +} + +template + bool QList::operator==(const QList &l) const +{ + if (p.size() != l.p.size()) + return false; + if (d == l.d) + return true; + Node *i = reinterpret_cast(p.end()); + Node *b = reinterpret_cast(p.begin()); + Node *li = reinterpret_cast(l.p.end()); + while (i != b) { + --i; --li; + if (!(i->t() == li->t())) + return false; + } + return true; +} + + +template + void QList::free(QListData::Data *data) +{ + node_destruct(reinterpret_cast(data->array + data->begin), + reinterpret_cast(data->array + data->end)); + qFree(data); +} + + +template + void QList::clear() +{ + *this = QList(); +} + +template + int QList::removeAll(const T &_t) +{ + int index = indexOf(_t); + if (index == -1) + return 0; + + const T t = _t; + detach(); + + Node *i = reinterpret_cast(p.at(index)); + Node *e = reinterpret_cast(p.end()); + Node *n = i; + node_destruct(i); + while (++i != e) { + if (i->t() == t) + node_destruct(i); + else + *n++ = *i; + } + + int removedCount = e - n; + d->end -= removedCount; + return removedCount; +} + +template + bool QList::removeOne(const T &_t) +{ + int index = indexOf(_t); + if (index != -1) { + removeAt(index); + return true; + } + return false; +} + +template + typename QList::iterator QList::erase(typename QList::iterator afirst, + typename QList::iterator alast) +{ + for (Node *n = afirst.i; n < alast.i; ++n) + node_destruct(n); + int idx = afirst - begin(); + p.remove(idx, alast - afirst); + return begin() + idx; +} + +template + QList &QList::operator+=(const QList &l) +{ + if (!l.isEmpty()) { + if (isEmpty()) { + *this = l; + } else { + Node *n = (d->ref != 1) + ? detach_helper_grow(0x7fffffff, l.size()) + : reinterpret_cast(p.append2(l.p)); + try { + node_copy(n, reinterpret_cast(p.end()), + reinterpret_cast(l.p.begin())); + } catch (...) { + + d->end -= int(reinterpret_cast(p.end()) - n); + throw; + } + } + } + return *this; +} + +template +inline void QList::append(const QList &t) +{ + *this += t; +} + +template + int QList::indexOf(const T &t, int from) const +{ + if (from < 0) + from = qMax(from + p.size(), 0); + if (from < p.size()) { + Node *n = reinterpret_cast(p.at(from -1)); + Node *e = reinterpret_cast(p.end()); + while (++n != e) + if (n->t() == t) + return int(n - reinterpret_cast(p.begin())); + } + return -1; +} + +template + int QList::lastIndexOf(const T &t, int from) const +{ + if (from < 0) + from += p.size(); + else if (from >= p.size()) + from = p.size()-1; + if (from >= 0) { + Node *b = reinterpret_cast(p.begin()); + Node *n = reinterpret_cast(p.at(from + 1)); + while (n-- != b) { + if (n->t() == t) + return n - b; + } + } + return -1; +} + +template + QBool QList::contains(const T &t) const +{ + Node *b = reinterpret_cast(p.begin()); + Node *i = reinterpret_cast(p.end()); + while (i-- != b) + if (i->t() == t) + return QBool(true); + return QBool(false); +} + +template + int QList::count(const T &t) const +{ + int c = 0; + Node *b = reinterpret_cast(p.begin()); + Node *i = reinterpret_cast(p.end()); + while (i-- != b) + if (i->t() == t) + ++c; + return c; +} + +template class QListIterator { typedef typename QList::const_iterator const_iterator; QList c; const_iterator i; public: inline QListIterator(const QList &container) : c(container), i(c.constBegin()) {} inline QListIterator &operator=(const QList &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; +template class QMutableListIterator { typedef typename QList::iterator iterator; typedef typename QList::const_iterator const_iterator; QList *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableListIterator(QList &container) : c(&container) { c->setSharable(false); i = c->begin(); n = c->end(); } inline ~QMutableListIterator() { c->setSharable(true); } inline QMutableListIterator &operator=(QList &container) { c->setSharable(true); c = &container; c->setSharable(false); i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qlist.h",903) : qt_noop()); return *n; } inline const T &value() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qlist.h",903) : qt_noop()); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; + + + + +# 51 "/usr/include/qt4/QtCore/qobject.h" 2 + + + +# 1 "/usr/include/qt4/QtCore/qscopedpointer.h" 1 +# 47 "/usr/include/qt4/QtCore/qscopedpointer.h" + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +template +struct QScopedPointerDeleter +{ + static inline void cleanup(T *pointer) + { + + + + typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; + (void) sizeof(IsIncompleteType); + + delete pointer; + } +}; + +template +struct QScopedPointerArrayDeleter +{ + static inline void cleanup(T *pointer) + { + + + + typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; + (void) sizeof(IsIncompleteType); + + delete [] pointer; + } +}; + +struct QScopedPointerPodDeleter +{ + static inline void cleanup(void *pointer) { if (pointer) qFree(pointer); } +}; + +template > +class QScopedPointer +{ + + typedef T *QScopedPointer:: *RestrictedBool; + +public: + explicit inline QScopedPointer(T *p = 0) : d(p) + { + } + + inline ~QScopedPointer() + { + T *oldD = this->d; + Cleanup::cleanup(oldD); + this->d = 0; + } + + inline T &operator*() const + { + ((!(d)) ? qt_assert("d","/usr/include/qt4/QtCore/qscopedpointer.h",106) : qt_noop()); + return *d; + } + + inline T *operator->() const + { + ((!(d)) ? qt_assert("d","/usr/include/qt4/QtCore/qscopedpointer.h",112) : qt_noop()); + return d; + } + + inline bool operator!() const + { + return !d; + } + + + + + + + + inline operator RestrictedBool() const + { + return isNull() ? 0 : &QScopedPointer::d; + } + + + inline T *data() const + { + return d; + } + + inline bool isNull() const + { + return !d; + } + + inline void reset(T *other = 0) + { + if (d == other) + return; + T *oldD = d; + d = other; + Cleanup::cleanup(oldD); + } + + inline T *take() + { + T *oldD = d; + d = 0; + return oldD; + } + + inline void swap(QScopedPointer &other) + { + qSwap(d, other.d); + } + + typedef T *pointer; + +protected: + T *d; + +private: + QScopedPointer(const QScopedPointer &); QScopedPointer &operator=(const QScopedPointer &); +}; + +template +inline bool operator==(const QScopedPointer &lhs, const QScopedPointer &rhs) +{ + return lhs.data() == rhs.data(); +} + +template +inline bool operator!=(const QScopedPointer &lhs, const QScopedPointer &rhs) +{ + return lhs.data() != rhs.data(); +} + +template +inline void qSwap(QScopedPointer &p1, QScopedPointer &p2) +{ p1.swap(p2); } + + + +namespace std { + template + inline void swap(::QScopedPointer &p1, ::QScopedPointer &p2) + { p1.swap(p2); } +} + + + + + +namespace QtPrivate { + template struct QScopedArrayEnsureSameType; + template struct QScopedArrayEnsureSameType { typedef X* Type; }; + template struct QScopedArrayEnsureSameType { typedef X* Type; }; +} + +template > +class QScopedArrayPointer : public QScopedPointer +{ +public: + inline QScopedArrayPointer() : QScopedPointer(0) {} + + template + explicit inline QScopedArrayPointer(D *p, typename QtPrivate::QScopedArrayEnsureSameType::Type = 0) + : QScopedPointer(p) + { + } + + inline T &operator[](int i) + { + return this->d[i]; + } + + inline const T &operator[](int i) const + { + return this->d[i]; + } + +private: + explicit inline QScopedArrayPointer(void *) { +# 239 "/usr/include/qt4/QtCore/qscopedpointer.h" + } + + QScopedArrayPointer(const QScopedArrayPointer &); QScopedArrayPointer &operator=(const QScopedArrayPointer &); +}; + + + +# 55 "/usr/include/qt4/QtCore/qobject.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QEvent; +class QTimerEvent; +class QChildEvent; +struct QMetaObject; +class QVariant; +class QObjectPrivate; +class QObject; +class QThread; +class QWidget; + +class QRegExp; + + +class QObjectUserData; + + +typedef QList QObjectList; + + void qt_qFindChildren_helper(const QObject *parent, const QString &name, const QRegExp *re, + const QMetaObject &mo, QList *list); + QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo); + +class + + + +QObjectData { +public: + virtual ~QObjectData() = 0; + QObject *q_ptr; + QObject *parent; + QObjectList children; + + uint isWidget : 1; + uint pendTimer : 1; + uint blockSig : 1; + uint wasDeleted : 1; + uint ownObjectName : 1; + uint sendChildEvents : 1; + uint receiveChildEvents : 1; + uint inEventHandler : 1; + uint inThreadChangeEvent : 1; + uint hasGuards : 1; + uint unused : 22; + int postedEvents; + QMetaObject *metaObject; +}; + + +class QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + inline QObjectPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QObjectPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QObjectPrivate; + +public: + explicit QObject(QObject *parent=0); + virtual ~QObject(); + + virtual bool event(QEvent *); + virtual bool eventFilter(QObject *, QEvent *); +# 143 "/usr/include/qt4/QtCore/qobject.h" + QString objectName() const; + void setObjectName(const QString &name); + + inline bool isWidgetType() const { return d_ptr->isWidget; } + + inline bool signalsBlocked() const { return d_ptr->blockSig; } + bool blockSignals(bool b); + + QThread *thread() const; + void moveToThread(QThread *thread); + + int startTimer(int interval); + void killTimer(int id); + + template + inline T findChild(const QString &aName = QString()) const + { return static_cast(qt_qFindChild_helper(this, aName, reinterpret_cast(0)->staticMetaObject)); } + + template + inline QList findChildren(const QString &aName = QString()) const + { + QList list; + union { + QList *typedList; + QList *voidList; + } u; + u.typedList = &list; + qt_qFindChildren_helper(this, aName, 0, reinterpret_cast(0)->staticMetaObject, u.voidList); + return list; + } + + + template + inline QList findChildren(const QRegExp &re) const + { + QList list; + union { + QList *typedList; + QList *voidList; + } u; + u.typedList = &list; + qt_qFindChildren_helper(this, QString(), &re, reinterpret_cast(0)->staticMetaObject, u.voidList); + return list; + } +# 197 "/usr/include/qt4/QtCore/qobject.h" + inline const QObjectList &children() const { return d_ptr->children; } + + void setParent(QObject *); + void installEventFilter(QObject *); + void removeEventFilter(QObject *); + + + static bool connect(const QObject *sender, const char *signal, + const QObject *receiver, const char *member, Qt::ConnectionType = + + + + + + + Qt::AutoConnection + + + ); + + static bool connect(const QObject *sender, const QMetaMethod &signal, + const QObject *receiver, const QMetaMethod &method, + Qt::ConnectionType type = + + + + + + + Qt::AutoConnection + + + ); + + inline bool connect(const QObject *sender, const char *signal, + const char *member, Qt::ConnectionType type = + + + + + + + Qt::AutoConnection + + + ) const; + + static bool disconnect(const QObject *sender, const char *signal, + const QObject *receiver, const char *member); + static bool disconnect(const QObject *sender, const QMetaMethod &signal, + const QObject *receiver, const QMetaMethod &member); + inline bool disconnect(const char *signal = 0, + const QObject *receiver = 0, const char *member = 0) + { return disconnect(this, signal, receiver, member); } + inline bool disconnect(const QObject *receiver, const char *member = 0) + { return disconnect(this, 0, receiver, member); } + + void dumpObjectTree(); + void dumpObjectInfo(); + + + bool setProperty(const char *name, const QVariant &value); + QVariant property(const char *name) const; + QList dynamicPropertyNames() const; + + + + static uint registerUserData(); + void setUserData(uint id, QObjectUserData* data); + QObjectUserData* userData(uint id) const; + + +protected: + void destroyed(QObject * = 0); + +public: + inline QObject *parent() const { return d_ptr->parent; } + + inline bool inherits(const char *classname) const + { return const_cast(this)->qt_metacast(classname) != 0; } + +public : + void deleteLater(); + +protected: + QObject *sender() const; + int senderSignalIndex() const; + int receivers(const char* signal) const; + + virtual void timerEvent(QTimerEvent *); + virtual void childEvent(QChildEvent *); + virtual void customEvent(QEvent *); + + virtual void connectNotify(const char *signal); + virtual void disconnectNotify(const char *signal); +# 316 "/usr/include/qt4/QtCore/qobject.h" +protected: + QObject(QObjectPrivate &dd, QObject *parent = 0); + +protected: + QScopedPointer d_ptr; + + static const QMetaObject staticQtMetaObject; + + friend struct QMetaObject; + friend class QApplication; + friend class QApplicationPrivate; + friend class QCoreApplication; + friend class QCoreApplicationPrivate; + friend class QWidget; + friend class QThreadData; + +private: + QObject(const QObject &); QObject &operator=(const QObject &); + +}; + +inline bool QObject::connect(const QObject *asender, const char *asignal, + const char *amember, Qt::ConnectionType atype) const +{ return connect(asender, asignal, this, amember, atype); } + + +class QObjectUserData { +public: + virtual ~QObjectUserData(); +}; +# 354 "/usr/include/qt4/QtCore/qobject.h" +template +inline T qFindChild(const QObject *o, const QString &name = QString()) +{ return o->findChild(name); } + +template +inline QList qFindChildren(const QObject *o, const QString &name = QString()) +{ + return o->findChildren(name); +} + + +template +inline QList qFindChildren(const QObject *o, const QRegExp &re) +{ + return o->findChildren(re); +} + + + + +template +inline T qobject_cast(QObject *object) +{ + + reinterpret_cast(object)->qt_check_for_QOBJECT_macro(*reinterpret_cast(object)); + + return static_cast(reinterpret_cast(object)->staticMetaObject.cast(object)); +} + +template +inline T qobject_cast(const QObject *object) +{ + + reinterpret_cast(object)->qt_check_for_QOBJECT_macro(*reinterpret_cast(const_cast(object))); + + return static_cast(reinterpret_cast(object)->staticMetaObject.cast(object)); +} + + +template inline const char * qobject_interface_iid() +{ return 0; } +# 407 "/usr/include/qt4/QtCore/qobject.h" + QDebug operator<<(QDebug, const QObject *); + + + + + +# 48 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtCore/qmargins.h" 1 +# 47 "/usr/include/qt4/QtCore/qmargins.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QMargins +{ +public: + QMargins(); + QMargins(int left, int top, int right, int bottom); + + bool isNull() const; + + int left() const; + int top() const; + int right() const; + int bottom() const; + + void setLeft(int left); + void setTop(int top); + void setRight(int right); + void setBottom(int bottom); + +private: + int m_left; + int m_top; + int m_right; + int m_bottom; + + friend inline bool operator==(const QMargins &, const QMargins &); + friend inline bool operator!=(const QMargins &, const QMargins &); +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QMargins)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QMargins"; } }; + + + + + +inline QMargins::QMargins() +{ m_top = m_bottom = m_left = m_right = 0; } + +inline QMargins::QMargins(int aleft, int atop, int aright, int abottom) + : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} + +inline bool QMargins::isNull() const +{ return m_left==0 && m_top==0 && m_right==0 && m_bottom==0; } + +inline int QMargins::left() const +{ return m_left; } + +inline int QMargins::top() const +{ return m_top; } + +inline int QMargins::right() const +{ return m_right; } + +inline int QMargins::bottom() const +{ return m_bottom; } + + +inline void QMargins::setLeft(int aleft) +{ m_left = aleft; } + +inline void QMargins::setTop(int atop) +{ m_top = atop; } + +inline void QMargins::setRight(int aright) +{ m_right = aright; } + +inline void QMargins::setBottom(int abottom) +{ m_bottom = abottom; } + +inline bool operator==(const QMargins &m1, const QMargins &m2) +{ + return + m1.m_left == m2.m_left && + m1.m_top == m2.m_top && + m1.m_right == m2.m_right && + m1.m_bottom == m2.m_bottom; +} + +inline bool operator!=(const QMargins &m1, const QMargins &m2) +{ + return + m1.m_left != m2.m_left || + m1.m_top != m2.m_top || + m1.m_right != m2.m_right || + m1.m_bottom != m2.m_bottom; +} + + + QDebug operator<<(QDebug, const QMargins &); + + + + + +# 49 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qpaintdevice.h" 1 +# 46 "/usr/include/qt4/QtGui/qpaintdevice.h" +# 1 "/usr/include/qt4/QtCore/qrect.h" 1 +# 45 "/usr/include/qt4/QtCore/qrect.h" +# 1 "/usr/include/qt4/QtCore/qsize.h" 1 +# 47 "/usr/include/qt4/QtCore/qsize.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QSize +{ +public: + QSize(); + QSize(int w, int h); + + bool isNull() const; + bool isEmpty() const; + bool isValid() const; + + int width() const; + int height() const; + void setWidth(int w); + void setHeight(int h); + void transpose(); + + void scale(int w, int h, Qt::AspectRatioMode mode); + void scale(const QSize &s, Qt::AspectRatioMode mode); + + QSize expandedTo(const QSize &) const; + QSize boundedTo(const QSize &) const; + + int &rwidth(); + int &rheight(); + + QSize &operator+=(const QSize &); + QSize &operator-=(const QSize &); + QSize &operator*=(qreal c); + QSize &operator/=(qreal c); + + friend inline bool operator==(const QSize &, const QSize &); + friend inline bool operator!=(const QSize &, const QSize &); + friend inline const QSize operator+(const QSize &, const QSize &); + friend inline const QSize operator-(const QSize &, const QSize &); + friend inline const QSize operator*(const QSize &, qreal); + friend inline const QSize operator*(qreal, const QSize &); + friend inline const QSize operator/(const QSize &, qreal); + +private: + int wd; + int ht; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QSize)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QSize"; } }; + + + + + + + QDataStream &operator<<(QDataStream &, const QSize &); + QDataStream &operator>>(QDataStream &, QSize &); + + + + + + + +inline QSize::QSize() +{ wd = ht = -1; } + +inline QSize::QSize(int w, int h) +{ wd = w; ht = h; } + +inline bool QSize::isNull() const +{ return wd==0 && ht==0; } + +inline bool QSize::isEmpty() const +{ return wd<1 || ht<1; } + +inline bool QSize::isValid() const +{ return wd>=0 && ht>=0; } + +inline int QSize::width() const +{ return wd; } + +inline int QSize::height() const +{ return ht; } + +inline void QSize::setWidth(int w) +{ wd = w; } + +inline void QSize::setHeight(int h) +{ ht = h; } + +inline void QSize::scale(int w, int h, Qt::AspectRatioMode mode) +{ scale(QSize(w, h), mode); } + +inline int &QSize::rwidth() +{ return wd; } + +inline int &QSize::rheight() +{ return ht; } + +inline QSize &QSize::operator+=(const QSize &s) +{ wd+=s.wd; ht+=s.ht; return *this; } + +inline QSize &QSize::operator-=(const QSize &s) +{ wd-=s.wd; ht-=s.ht; return *this; } + +inline QSize &QSize::operator*=(qreal c) +{ wd = qRound(wd*c); ht = qRound(ht*c); return *this; } + +inline bool operator==(const QSize &s1, const QSize &s2) +{ return s1.wd == s2.wd && s1.ht == s2.ht; } + +inline bool operator!=(const QSize &s1, const QSize &s2) +{ return s1.wd != s2.wd || s1.ht != s2.ht; } + +inline const QSize operator+(const QSize & s1, const QSize & s2) +{ return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } + +inline const QSize operator-(const QSize &s1, const QSize &s2) +{ return QSize(s1.wd-s2.wd, s1.ht-s2.ht); } + +inline const QSize operator*(const QSize &s, qreal c) +{ return QSize(qRound(s.wd*c), qRound(s.ht*c)); } + +inline const QSize operator*(qreal c, const QSize &s) +{ return QSize(qRound(s.wd*c), qRound(s.ht*c)); } + +inline QSize &QSize::operator/=(qreal c) +{ + ((!(!qFuzzyIsNull(c))) ? qt_assert("!qFuzzyIsNull(c)","/usr/include/qt4/QtCore/qsize.h",176) : qt_noop()); + wd = qRound(wd/c); ht = qRound(ht/c); + return *this; +} + +inline const QSize operator/(const QSize &s, qreal c) +{ + ((!(!qFuzzyIsNull(c))) ? qt_assert("!qFuzzyIsNull(c)","/usr/include/qt4/QtCore/qsize.h",183) : qt_noop()); + return QSize(qRound(s.wd/c), qRound(s.ht/c)); +} + +inline QSize QSize::expandedTo(const QSize & otherSize) const +{ + return QSize(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); +} + +inline QSize QSize::boundedTo(const QSize & otherSize) const +{ + return QSize(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); +} + + + QDebug operator<<(QDebug, const QSize &); + + + +class QSizeF +{ +public: + QSizeF(); + QSizeF(const QSize &sz); + QSizeF(qreal w, qreal h); + + bool isNull() const; + bool isEmpty() const; + bool isValid() const; + + qreal width() const; + qreal height() const; + void setWidth(qreal w); + void setHeight(qreal h); + void transpose(); + + void scale(qreal w, qreal h, Qt::AspectRatioMode mode); + void scale(const QSizeF &s, Qt::AspectRatioMode mode); + + QSizeF expandedTo(const QSizeF &) const; + QSizeF boundedTo(const QSizeF &) const; + + qreal &rwidth(); + qreal &rheight(); + + QSizeF &operator+=(const QSizeF &); + QSizeF &operator-=(const QSizeF &); + QSizeF &operator*=(qreal c); + QSizeF &operator/=(qreal c); + + friend inline bool operator==(const QSizeF &, const QSizeF &); + friend inline bool operator!=(const QSizeF &, const QSizeF &); + friend inline const QSizeF operator+(const QSizeF &, const QSizeF &); + friend inline const QSizeF operator-(const QSizeF &, const QSizeF &); + friend inline const QSizeF operator*(const QSizeF &, qreal); + friend inline const QSizeF operator*(qreal, const QSizeF &); + friend inline const QSizeF operator/(const QSizeF &, qreal); + + inline QSize toSize() const; + +private: + qreal wd; + qreal ht; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QSizeF)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QSizeF"; } }; + + + + + + + + QDataStream &operator<<(QDataStream &, const QSizeF &); + QDataStream &operator>>(QDataStream &, QSizeF &); + + + + + + + +inline QSizeF::QSizeF() +{ wd = ht = -1.; } + +inline QSizeF::QSizeF(const QSize &sz) + : wd(sz.width()), ht(sz.height()) +{ +} + +inline QSizeF::QSizeF(qreal w, qreal h) +{ wd = w; ht = h; } + +inline bool QSizeF::isNull() const +{ return qIsNull(wd) && qIsNull(ht); } + +inline bool QSizeF::isEmpty() const +{ return wd <= 0. || ht <= 0.; } + +inline bool QSizeF::isValid() const +{ return wd >= 0. && ht >= 0.; } + +inline qreal QSizeF::width() const +{ return wd; } + +inline qreal QSizeF::height() const +{ return ht; } + +inline void QSizeF::setWidth(qreal w) +{ wd = w; } + +inline void QSizeF::setHeight(qreal h) +{ ht = h; } + +inline void QSizeF::scale(qreal w, qreal h, Qt::AspectRatioMode mode) +{ scale(QSizeF(w, h), mode); } + +inline qreal &QSizeF::rwidth() +{ return wd; } + +inline qreal &QSizeF::rheight() +{ return ht; } + +inline QSizeF &QSizeF::operator+=(const QSizeF &s) +{ wd += s.wd; ht += s.ht; return *this; } + +inline QSizeF &QSizeF::operator-=(const QSizeF &s) +{ wd -= s.wd; ht -= s.ht; return *this; } + +inline QSizeF &QSizeF::operator*=(qreal c) +{ wd *= c; ht *= c; return *this; } + +inline bool operator==(const QSizeF &s1, const QSizeF &s2) +{ return qFuzzyCompare(s1.wd, s2.wd) && qFuzzyCompare(s1.ht, s2.ht); } + +inline bool operator!=(const QSizeF &s1, const QSizeF &s2) +{ return !qFuzzyCompare(s1.wd, s2.wd) || !qFuzzyCompare(s1.ht, s2.ht); } + +inline const QSizeF operator+(const QSizeF & s1, const QSizeF & s2) +{ return QSizeF(s1.wd+s2.wd, s1.ht+s2.ht); } + +inline const QSizeF operator-(const QSizeF &s1, const QSizeF &s2) +{ return QSizeF(s1.wd-s2.wd, s1.ht-s2.ht); } + +inline const QSizeF operator*(const QSizeF &s, qreal c) +{ return QSizeF(s.wd*c, s.ht*c); } + +inline const QSizeF operator*(qreal c, const QSizeF &s) +{ return QSizeF(s.wd*c, s.ht*c); } + +inline QSizeF &QSizeF::operator/=(qreal c) +{ + ((!(!qFuzzyIsNull(c))) ? qt_assert("!qFuzzyIsNull(c)","/usr/include/qt4/QtCore/qsize.h",334) : qt_noop()); + wd = wd/c; ht = ht/c; + return *this; +} + +inline const QSizeF operator/(const QSizeF &s, qreal c) +{ + ((!(!qFuzzyIsNull(c))) ? qt_assert("!qFuzzyIsNull(c)","/usr/include/qt4/QtCore/qsize.h",341) : qt_noop()); + return QSizeF(s.wd/c, s.ht/c); +} + +inline QSizeF QSizeF::expandedTo(const QSizeF & otherSize) const +{ + return QSizeF(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); +} + +inline QSizeF QSizeF::boundedTo(const QSizeF & otherSize) const +{ + return QSizeF(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); +} + +inline QSize QSizeF::toSize() const +{ + return QSize(qRound(wd), qRound(ht)); +} + + + QDebug operator<<(QDebug, const QSizeF &); + + + + + +# 46 "/usr/include/qt4/QtCore/qrect.h" 2 +# 1 "/usr/include/qt4/QtCore/qpoint.h" 1 +# 47 "/usr/include/qt4/QtCore/qpoint.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QPoint +{ +public: + QPoint(); + QPoint(int xpos, int ypos); + + bool isNull() const; + + int x() const; + int y() const; + void setX(int x); + void setY(int y); + + int manhattanLength() const; + + int &rx(); + int &ry(); + + QPoint &operator+=(const QPoint &p); + QPoint &operator-=(const QPoint &p); + + QPoint &operator*=(float c); + QPoint &operator*=(double c); + QPoint &operator*=(int c); + + QPoint &operator/=(qreal c); + + friend inline bool operator==(const QPoint &, const QPoint &); + friend inline bool operator!=(const QPoint &, const QPoint &); + friend inline const QPoint operator+(const QPoint &, const QPoint &); + friend inline const QPoint operator-(const QPoint &, const QPoint &); + friend inline const QPoint operator*(const QPoint &, float); + friend inline const QPoint operator*(float, const QPoint &); + friend inline const QPoint operator*(const QPoint &, double); + friend inline const QPoint operator*(double, const QPoint &); + friend inline const QPoint operator*(const QPoint &, int); + friend inline const QPoint operator*(int, const QPoint &); + friend inline const QPoint operator-(const QPoint &); + friend inline const QPoint operator/(const QPoint &, qreal); + +private: + friend class QTransform; + + + + + + int xp; + int yp; + +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QPoint)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QPoint"; } }; + + + + + + QDataStream &operator<<(QDataStream &, const QPoint &); + QDataStream &operator>>(QDataStream &, QPoint &); + + + + + + +inline QPoint::QPoint() +{ xp=0; yp=0; } + +inline QPoint::QPoint(int xpos, int ypos) +{ xp = xpos; yp = ypos; } + +inline bool QPoint::isNull() const +{ return xp == 0 && yp == 0; } + +inline int QPoint::x() const +{ return xp; } + +inline int QPoint::y() const +{ return yp; } + +inline void QPoint::setX(int xpos) +{ xp = xpos; } + +inline void QPoint::setY(int ypos) +{ yp = ypos; } + +inline int &QPoint::rx() +{ return xp; } + +inline int &QPoint::ry() +{ return yp; } + +inline QPoint &QPoint::operator+=(const QPoint &p) +{ xp+=p.xp; yp+=p.yp; return *this; } + +inline QPoint &QPoint::operator-=(const QPoint &p) +{ xp-=p.xp; yp-=p.yp; return *this; } + +inline QPoint &QPoint::operator*=(float c) +{ xp = qRound(xp*c); yp = qRound(yp*c); return *this; } + +inline QPoint &QPoint::operator*=(double c) +{ xp = qRound(xp*c); yp = qRound(yp*c); return *this; } + +inline QPoint &QPoint::operator*=(int c) +{ xp = xp*c; yp = yp*c; return *this; } + +inline bool operator==(const QPoint &p1, const QPoint &p2) +{ return p1.xp == p2.xp && p1.yp == p2.yp; } + +inline bool operator!=(const QPoint &p1, const QPoint &p2) +{ return p1.xp != p2.xp || p1.yp != p2.yp; } + +inline const QPoint operator+(const QPoint &p1, const QPoint &p2) +{ return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); } + +inline const QPoint operator-(const QPoint &p1, const QPoint &p2) +{ return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } + +inline const QPoint operator*(const QPoint &p, float c) +{ return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } + +inline const QPoint operator*(const QPoint &p, double c) +{ return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } + +inline const QPoint operator*(const QPoint &p, int c) +{ return QPoint(p.xp*c, p.yp*c); } + +inline const QPoint operator*(float c, const QPoint &p) +{ return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } + +inline const QPoint operator*(double c, const QPoint &p) +{ return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } + +inline const QPoint operator*(int c, const QPoint &p) +{ return QPoint(p.xp*c, p.yp*c); } + +inline const QPoint operator-(const QPoint &p) +{ return QPoint(-p.xp, -p.yp); } + +inline QPoint &QPoint::operator/=(qreal c) +{ + xp = qRound(xp/c); + yp = qRound(yp/c); + return *this; +} + +inline const QPoint operator/(const QPoint &p, qreal c) +{ + return QPoint(qRound(p.xp/c), qRound(p.yp/c)); +} + + + QDebug operator<<(QDebug, const QPoint &); + + + + + + +class QPointF +{ +public: + QPointF(); + QPointF(const QPoint &p); + QPointF(qreal xpos, qreal ypos); + + qreal manhattanLength() const; + + bool isNull() const; + + qreal x() const; + qreal y() const; + void setX(qreal x); + void setY(qreal y); + + qreal &rx(); + qreal &ry(); + + QPointF &operator+=(const QPointF &p); + QPointF &operator-=(const QPointF &p); + QPointF &operator*=(qreal c); + QPointF &operator/=(qreal c); + + friend inline bool operator==(const QPointF &, const QPointF &); + friend inline bool operator!=(const QPointF &, const QPointF &); + friend inline const QPointF operator+(const QPointF &, const QPointF &); + friend inline const QPointF operator-(const QPointF &, const QPointF &); + friend inline const QPointF operator*(qreal, const QPointF &); + friend inline const QPointF operator*(const QPointF &, qreal); + friend inline const QPointF operator-(const QPointF &); + friend inline const QPointF operator/(const QPointF &, qreal); + + QPoint toPoint() const; + +private: + friend class QMatrix; + friend class QTransform; + + qreal xp; + qreal yp; +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QPointF)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QPointF"; } }; + + + + + + QDataStream &operator<<(QDataStream &, const QPointF &); + QDataStream &operator>>(QDataStream &, QPointF &); + + + + + + +inline QPointF::QPointF() : xp(0), yp(0) { } + +inline QPointF::QPointF(qreal xpos, qreal ypos) : xp(xpos), yp(ypos) { } + +inline QPointF::QPointF(const QPoint &p) : xp(p.x()), yp(p.y()) { } + +inline bool QPointF::isNull() const +{ + return qIsNull(xp) && qIsNull(yp); +} + +inline qreal QPointF::x() const +{ + return xp; +} + +inline qreal QPointF::y() const +{ + return yp; +} + +inline void QPointF::setX(qreal xpos) +{ + xp = xpos; +} + +inline void QPointF::setY(qreal ypos) +{ + yp = ypos; +} + +inline qreal &QPointF::rx() +{ + return xp; +} + +inline qreal &QPointF::ry() +{ + return yp; +} + +inline QPointF &QPointF::operator+=(const QPointF &p) +{ + xp+=p.xp; + yp+=p.yp; + return *this; +} + +inline QPointF &QPointF::operator-=(const QPointF &p) +{ + xp-=p.xp; yp-=p.yp; return *this; +} + +inline QPointF &QPointF::operator*=(qreal c) +{ + xp*=c; yp*=c; return *this; +} + +inline bool operator==(const QPointF &p1, const QPointF &p2) +{ + return qFuzzyIsNull(p1.xp - p2.xp) && qFuzzyIsNull(p1.yp - p2.yp); +} + +inline bool operator!=(const QPointF &p1, const QPointF &p2) +{ + return !qFuzzyIsNull(p1.xp - p2.xp) || !qFuzzyIsNull(p1.yp - p2.yp); +} + +inline const QPointF operator+(const QPointF &p1, const QPointF &p2) +{ + return QPointF(p1.xp+p2.xp, p1.yp+p2.yp); +} + +inline const QPointF operator-(const QPointF &p1, const QPointF &p2) +{ + return QPointF(p1.xp-p2.xp, p1.yp-p2.yp); +} + +inline const QPointF operator*(const QPointF &p, qreal c) +{ + return QPointF(p.xp*c, p.yp*c); +} + +inline const QPointF operator*(qreal c, const QPointF &p) +{ + return QPointF(p.xp*c, p.yp*c); +} + +inline const QPointF operator-(const QPointF &p) +{ + return QPointF(-p.xp, -p.yp); +} + +inline QPointF &QPointF::operator/=(qreal c) +{ + xp/=c; + yp/=c; + return *this; +} + +inline const QPointF operator/(const QPointF &p, qreal c) +{ + return QPointF(p.xp/c, p.yp/c); +} + +inline QPoint QPointF::toPoint() const +{ + return QPoint(qRound(xp), qRound(yp)); +} + + + QDebug operator<<(QDebug d, const QPointF &p); + + + + + +# 47 "/usr/include/qt4/QtCore/qrect.h" 2 + + + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QRect +{ +public: + QRect() { x1 = y1 = 0; x2 = y2 = -1; } + QRect(const QPoint &topleft, const QPoint &bottomright); + QRect(const QPoint &topleft, const QSize &size); + QRect(int left, int top, int width, int height); + + bool isNull() const; + bool isEmpty() const; + bool isValid() const; + + int left() const; + int top() const; + int right() const; + int bottom() const; + QRect normalized() const; +# 85 "/usr/include/qt4/QtCore/qrect.h" + int x() const; + int y() const; + void setLeft(int pos); + void setTop(int pos); + void setRight(int pos); + void setBottom(int pos); + void setX(int x); + void setY(int y); + + void setTopLeft(const QPoint &p); + void setBottomRight(const QPoint &p); + void setTopRight(const QPoint &p); + void setBottomLeft(const QPoint &p); + + QPoint topLeft() const; + QPoint bottomRight() const; + QPoint topRight() const; + QPoint bottomLeft() const; + QPoint center() const; + + void moveLeft(int pos); + void moveTop(int pos); + void moveRight(int pos); + void moveBottom(int pos); + void moveTopLeft(const QPoint &p); + void moveBottomRight(const QPoint &p); + void moveTopRight(const QPoint &p); + void moveBottomLeft(const QPoint &p); + void moveCenter(const QPoint &p); + + inline void translate(int dx, int dy); + inline void translate(const QPoint &p); + inline QRect translated(int dx, int dy) const; + inline QRect translated(const QPoint &p) const; + + void moveTo(int x, int t); + void moveTo(const QPoint &p); + + + + + + + void setRect(int x, int y, int w, int h); + inline void getRect(int *x, int *y, int *w, int *h) const; + + void setCoords(int x1, int y1, int x2, int y2); + + + + inline void getCoords(int *x1, int *y1, int *x2, int *y2) const; + + inline void adjust(int x1, int y1, int x2, int y2); + inline QRect adjusted(int x1, int y1, int x2, int y2) const; + + QSize size() const; + int width() const; + int height() const; + void setWidth(int w); + void setHeight(int h); + void setSize(const QSize &s); + + QRect operator|(const QRect &r) const; + QRect operator&(const QRect &r) const; + QRect& operator|=(const QRect &r); + QRect& operator&=(const QRect &r); + + bool contains(const QPoint &p, bool proper=false) const; + bool contains(int x, int y) const; + bool contains(int x, int y, bool proper) const; + bool contains(const QRect &r, bool proper = false) const; + QRect unite(const QRect &r) const; + QRect united(const QRect &other) const; + QRect intersect(const QRect &r) const; + QRect intersected(const QRect &other) const; + bool intersects(const QRect &r) const; + + friend inline bool operator==(const QRect &, const QRect &); + friend inline bool operator!=(const QRect &, const QRect &); + + + + + + + +private: + + friend void qt_setCoords(QRect *r, int xp1, int yp1, int xp2, int yp2); +# 182 "/usr/include/qt4/QtCore/qrect.h" + int x1; + int y1; + int x2; + int y2; + + +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QRect)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QRect"; } }; + + inline bool operator==(const QRect &, const QRect &); + inline bool operator!=(const QRect &, const QRect &); + + + + + + + QDataStream &operator<<(QDataStream &, const QRect &); + QDataStream &operator>>(QDataStream &, QRect &); + + + + + + +inline QRect::QRect(int aleft, int atop, int awidth, int aheight) +{ + x1 = aleft; + y1 = atop; + x2 = (aleft + awidth - 1); + y2 = (atop + aheight - 1); +} + +inline QRect::QRect(const QPoint &atopLeft, const QPoint &abottomRight) +{ + x1 = atopLeft.x(); + y1 = atopLeft.y(); + x2 = abottomRight.x(); + y2 = abottomRight.y(); +} + +inline QRect::QRect(const QPoint &atopLeft, const QSize &asize) +{ + x1 = atopLeft.x(); + y1 = atopLeft.y(); + x2 = (x1+asize.width() - 1); + y2 = (y1+asize.height() - 1); +} + +inline bool QRect::isNull() const +{ return x2 == x1 - 1 && y2 == y1 - 1; } + +inline bool QRect::isEmpty() const +{ return x1 > x2 || y1 > y2; } + +inline bool QRect::isValid() const +{ return x1 <= x2 && y1 <= y2; } + +inline int QRect::left() const +{ return x1; } + +inline int QRect::top() const +{ return y1; } + +inline int QRect::right() const +{ return x2; } + +inline int QRect::bottom() const +{ return y2; } + +inline int QRect::x() const +{ return x1; } + +inline int QRect::y() const +{ return y1; } + +inline void QRect::setLeft(int pos) +{ x1 = pos; } + +inline void QRect::setTop(int pos) +{ y1 = pos; } + +inline void QRect::setRight(int pos) +{ x2 = pos; } + +inline void QRect::setBottom(int pos) +{ y2 = pos; } + +inline void QRect::setTopLeft(const QPoint &p) +{ x1 = p.x(); y1 = p.y(); } + +inline void QRect::setBottomRight(const QPoint &p) +{ x2 = p.x(); y2 = p.y(); } + +inline void QRect::setTopRight(const QPoint &p) +{ x2 = p.x(); y1 = p.y(); } + +inline void QRect::setBottomLeft(const QPoint &p) +{ x1 = p.x(); y2 = p.y(); } + +inline void QRect::setX(int ax) +{ x1 = ax; } + +inline void QRect::setY(int ay) +{ y1 = ay; } + +inline QPoint QRect::topLeft() const +{ return QPoint(x1, y1); } + +inline QPoint QRect::bottomRight() const +{ return QPoint(x2, y2); } + +inline QPoint QRect::topRight() const +{ return QPoint(x2, y1); } + +inline QPoint QRect::bottomLeft() const +{ return QPoint(x1, y2); } + +inline QPoint QRect::center() const +{ return QPoint((x1+x2)/2, (y1+y2)/2); } + +inline int QRect::width() const +{ return x2 - x1 + 1; } + +inline int QRect::height() const +{ return y2 - y1 + 1; } + +inline QSize QRect::size() const +{ return QSize(width(), height()); } + +inline void QRect::translate(int dx, int dy) +{ + x1 += dx; + y1 += dy; + x2 += dx; + y2 += dy; +} + +inline void QRect::translate(const QPoint &p) +{ + x1 += p.x(); + y1 += p.y(); + x2 += p.x(); + y2 += p.y(); +} + +inline QRect QRect::translated(int dx, int dy) const +{ return QRect(QPoint(x1 + dx, y1 + dy), QPoint(x2 + dx, y2 + dy)); } + +inline QRect QRect::translated(const QPoint &p) const +{ return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); } + +inline void QRect::moveTo(int ax, int ay) +{ + x2 += ax - x1; + y2 += ay - y1; + x1 = ax; + y1 = ay; +} + +inline void QRect::moveTo(const QPoint &p) +{ + x2 += p.x() - x1; + y2 += p.y() - y1; + x1 = p.x(); + y1 = p.y(); +} + +inline void QRect::moveLeft(int pos) +{ x2 += (pos - x1); x1 = pos; } + +inline void QRect::moveTop(int pos) +{ y2 += (pos - y1); y1 = pos; } + +inline void QRect::moveRight(int pos) +{ + x1 += (pos - x2); + x2 = pos; +} + +inline void QRect::moveBottom(int pos) +{ + y1 += (pos - y2); + y2 = pos; +} + +inline void QRect::moveTopLeft(const QPoint &p) +{ + moveLeft(p.x()); + moveTop(p.y()); +} + +inline void QRect::moveBottomRight(const QPoint &p) +{ + moveRight(p.x()); + moveBottom(p.y()); +} + +inline void QRect::moveTopRight(const QPoint &p) +{ + moveRight(p.x()); + moveTop(p.y()); +} + +inline void QRect::moveBottomLeft(const QPoint &p) +{ + moveLeft(p.x()); + moveBottom(p.y()); +} + +inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const +{ + *ax = x1; + *ay = y1; + *aw = x2 - x1 + 1; + *ah = y2 - y1 + 1; +} + +inline void QRect::setRect(int ax, int ay, int aw, int ah) +{ + x1 = ax; + y1 = ay; + x2 = (ax + aw - 1); + y2 = (ay + ah - 1); +} + +inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const +{ + *xp1 = x1; + *yp1 = y1; + *xp2 = x2; + *yp2 = y2; +} + +inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2) +{ + x1 = xp1; + y1 = yp1; + x2 = xp2; + y2 = yp2; +} +# 431 "/usr/include/qt4/QtCore/qrect.h" +inline QRect QRect::adjusted(int xp1, int yp1, int xp2, int yp2) const +{ return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); } + +inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2) +{ + x1 += dx1; + y1 += dy1; + x2 += dx2; + y2 += dy2; +} + +inline void QRect::setWidth(int w) +{ x2 = (x1 + w - 1); } + +inline void QRect::setHeight(int h) +{ y2 = (y1 + h - 1); } + +inline void QRect::setSize(const QSize &s) +{ + x2 = (s.width() + x1 - 1); + y2 = (s.height() + y1 - 1); +} + +inline bool QRect::contains(int ax, int ay, bool aproper) const +{ + return contains(QPoint(ax, ay), aproper); +} + +inline bool QRect::contains(int ax, int ay) const +{ + return contains(QPoint(ax, ay), false); +} + +inline QRect& QRect::operator|=(const QRect &r) +{ + *this = *this | r; + return *this; +} + +inline QRect& QRect::operator&=(const QRect &r) +{ + *this = *this & r; + return *this; +} + +inline QRect QRect::intersect(const QRect &r) const +{ + return *this & r; +} + +inline QRect QRect::intersected(const QRect &other) const +{ + return intersect(other); +} + +inline QRect QRect::unite(const QRect &r) const +{ + return *this | r; +} + +inline QRect QRect::united(const QRect &r) const +{ + return unite(r); +} + +inline bool operator==(const QRect &r1, const QRect &r2) +{ + return r1.x1==r2.x1 && r1.x2==r2.x2 && r1.y1==r2.y1 && r1.y2==r2.y2; +} + +inline bool operator!=(const QRect &r1, const QRect &r2) +{ + return r1.x1!=r2.x1 || r1.x2!=r2.x2 || r1.y1!=r2.y1 || r1.y2!=r2.y2; +} + + + QDebug operator<<(QDebug, const QRect &); + + + +class QRectF +{ +public: + QRectF() { xp = yp = 0.; w = h = 0.; } + QRectF(const QPointF &topleft, const QSizeF &size); + QRectF(const QPointF &topleft, const QPointF &bottomRight); + QRectF(qreal left, qreal top, qreal width, qreal height); + QRectF(const QRect &rect); + + bool isNull() const; + bool isEmpty() const; + bool isValid() const; + QRectF normalized() const; + + inline qreal left() const { return xp; } + inline qreal top() const { return yp; } + inline qreal right() const { return xp + w; } + inline qreal bottom() const { return yp + h; } + + inline qreal x() const; + inline qreal y() const; + inline void setLeft(qreal pos); + inline void setTop(qreal pos); + inline void setRight(qreal pos); + inline void setBottom(qreal pos); + inline void setX(qreal pos) { setLeft(pos); } + inline void setY(qreal pos) { setTop(pos); } + + inline QPointF topLeft() const { return QPointF(xp, yp); } + inline QPointF bottomRight() const { return QPointF(xp+w, yp+h); } + inline QPointF topRight() const { return QPointF(xp+w, yp); } + inline QPointF bottomLeft() const { return QPointF(xp, yp+h); } + inline QPointF center() const; + + void setTopLeft(const QPointF &p); + void setBottomRight(const QPointF &p); + void setTopRight(const QPointF &p); + void setBottomLeft(const QPointF &p); + + void moveLeft(qreal pos); + void moveTop(qreal pos); + void moveRight(qreal pos); + void moveBottom(qreal pos); + void moveTopLeft(const QPointF &p); + void moveBottomRight(const QPointF &p); + void moveTopRight(const QPointF &p); + void moveBottomLeft(const QPointF &p); + void moveCenter(const QPointF &p); + + void translate(qreal dx, qreal dy); + void translate(const QPointF &p); + + QRectF translated(qreal dx, qreal dy) const; + QRectF translated(const QPointF &p) const; + + void moveTo(qreal x, qreal t); + void moveTo(const QPointF &p); + + void setRect(qreal x, qreal y, qreal w, qreal h); + void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const; + + void setCoords(qreal x1, qreal y1, qreal x2, qreal y2); + void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const; + + inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2); + inline QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const; + + QSizeF size() const; + qreal width() const; + qreal height() const; + void setWidth(qreal w); + void setHeight(qreal h); + void setSize(const QSizeF &s); + + QRectF operator|(const QRectF &r) const; + QRectF operator&(const QRectF &r) const; + QRectF& operator|=(const QRectF &r); + QRectF& operator&=(const QRectF &r); + + bool contains(const QPointF &p) const; + bool contains(qreal x, qreal y) const; + bool contains(const QRectF &r) const; + QRectF unite(const QRectF &r) const; + QRectF united(const QRectF &other) const; + QRectF intersect(const QRectF &r) const; + QRectF intersected(const QRectF &other) const; + bool intersects(const QRectF &r) const; + + friend inline bool operator==(const QRectF &, const QRectF &); + friend inline bool operator!=(const QRectF &, const QRectF &); + + QRect toRect() const; + QRect toAlignedRect() const; + +private: + qreal xp; + qreal yp; + qreal w; + qreal h; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QRectF)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QRectF"; } }; + + inline bool operator==(const QRectF &, const QRectF &); + inline bool operator!=(const QRectF &, const QRectF &); + + + + + + + QDataStream &operator<<(QDataStream &, const QRectF &); + QDataStream &operator>>(QDataStream &, QRectF &); + + + + + + +inline QRectF::QRectF(qreal aleft, qreal atop, qreal awidth, qreal aheight) + : xp(aleft), yp(atop), w(awidth), h(aheight) +{ +} + +inline QRectF::QRectF(const QPointF &atopLeft, const QSizeF &asize) +{ + xp = atopLeft.x(); + yp = atopLeft.y(); + w = asize.width(); + h = asize.height(); +} + +inline QRectF::QRectF(const QPointF &atopLeft, const QPointF &abottomRight) +{ + xp = atopLeft.x(); + yp = atopLeft.y(); + w = abottomRight.x() - xp; + h = abottomRight.y() - yp; +} + +inline QRectF::QRectF(const QRect &r) + : xp(r.x()), yp(r.y()), w(r.width()), h(r.height()) +{ +} + +inline bool QRectF::isNull() const +{ return w == 0. && h == 0.; } + +inline bool QRectF::isEmpty() const +{ return w <= 0. || h <= 0.; } + +inline bool QRectF::isValid() const +{ return w > 0. && h > 0.; } + +inline qreal QRectF::x() const +{ return xp; } + +inline qreal QRectF::y() const +{ return yp; } + +inline void QRectF::setLeft(qreal pos) { qreal diff = pos - xp; xp += diff; w -= diff; } + +inline void QRectF::setRight(qreal pos) { w = pos - xp; } + +inline void QRectF::setTop(qreal pos) { qreal diff = pos - yp; yp += diff; h -= diff; } + +inline void QRectF::setBottom(qreal pos) { h = pos - yp; } + +inline void QRectF::setTopLeft(const QPointF &p) { setLeft(p.x()); setTop(p.y()); } + +inline void QRectF::setTopRight(const QPointF &p) { setRight(p.x()); setTop(p.y()); } + +inline void QRectF::setBottomLeft(const QPointF &p) { setLeft(p.x()); setBottom(p.y()); } + +inline void QRectF::setBottomRight(const QPointF &p) { setRight(p.x()); setBottom(p.y()); } + +inline QPointF QRectF::center() const +{ return QPointF(xp + w/2, yp + h/2); } + +inline void QRectF::moveLeft(qreal pos) { xp = pos; } + +inline void QRectF::moveTop(qreal pos) { yp = pos; } + +inline void QRectF::moveRight(qreal pos) { xp = pos - w; } + +inline void QRectF::moveBottom(qreal pos) { yp = pos - h; } + +inline void QRectF::moveTopLeft(const QPointF &p) { moveLeft(p.x()); moveTop(p.y()); } + +inline void QRectF::moveTopRight(const QPointF &p) { moveRight(p.x()); moveTop(p.y()); } + +inline void QRectF::moveBottomLeft(const QPointF &p) { moveLeft(p.x()); moveBottom(p.y()); } + +inline void QRectF::moveBottomRight(const QPointF &p) { moveRight(p.x()); moveBottom(p.y()); } + +inline void QRectF::moveCenter(const QPointF &p) { xp = p.x() - w/2; yp = p.y() - h/2; } + +inline qreal QRectF::width() const +{ return w; } + +inline qreal QRectF::height() const +{ return h; } + +inline QSizeF QRectF::size() const +{ return QSizeF(w, h); } + +inline void QRectF::translate(qreal dx, qreal dy) +{ + xp += dx; + yp += dy; +} + +inline void QRectF::translate(const QPointF &p) +{ + xp += p.x(); + yp += p.y(); +} + +inline void QRectF::moveTo(qreal ax, qreal ay) +{ + xp = ax; + yp = ay; +} + +inline void QRectF::moveTo(const QPointF &p) +{ + xp = p.x(); + yp = p.y(); +} + +inline QRectF QRectF::translated(qreal dx, qreal dy) const +{ return QRectF(xp + dx, yp + dy, w, h); } + +inline QRectF QRectF::translated(const QPointF &p) const +{ return QRectF(xp + p.x(), yp + p.y(), w, h); } + +inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const +{ + *ax = this->xp; + *ay = this->yp; + *aaw = this->w; + *aah = this->h; +} + +inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah) +{ + this->xp = ax; + this->yp = ay; + this->w = aaw; + this->h = aah; +} + +inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const +{ + *xp1 = xp; + *yp1 = yp; + *xp2 = xp + w; + *yp2 = yp + h; +} + +inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2) +{ + xp = xp1; + yp = yp1; + w = xp2 - xp1; + h = yp2 - yp1; +} + +inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2) +{ xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; } + +inline QRectF QRectF::adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const +{ return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); } + +inline void QRectF::setWidth(qreal aw) +{ this->w = aw; } + +inline void QRectF::setHeight(qreal ah) +{ this->h = ah; } + +inline void QRectF::setSize(const QSizeF &s) +{ + w = s.width(); + h = s.height(); +} + +inline bool QRectF::contains(qreal ax, qreal ay) const +{ + return contains(QPointF(ax, ay)); +} + +inline QRectF& QRectF::operator|=(const QRectF &r) +{ + *this = *this | r; + return *this; +} + +inline QRectF& QRectF::operator&=(const QRectF &r) +{ + *this = *this & r; + return *this; +} + +inline QRectF QRectF::intersect(const QRectF &r) const +{ + return *this & r; +} + +inline QRectF QRectF::intersected(const QRectF &r) const +{ + return intersect(r); +} + +inline QRectF QRectF::unite(const QRectF &r) const +{ + return *this | r; +} + +inline QRectF QRectF::united(const QRectF &r) const +{ + return unite(r); +} + +inline bool operator==(const QRectF &r1, const QRectF &r2) +{ + return qFuzzyCompare(r1.xp, r2.xp) && qFuzzyCompare(r1.yp, r2.yp) + && qFuzzyCompare(r1.w, r2.w) && qFuzzyCompare(r1.h, r2.h); +} + +inline bool operator!=(const QRectF &r1, const QRectF &r2) +{ + return !qFuzzyCompare(r1.xp, r2.xp) || !qFuzzyCompare(r1.yp, r2.yp) + || !qFuzzyCompare(r1.w, r2.w) || !qFuzzyCompare(r1.h, r2.h); +} + +inline QRect QRectF::toRect() const +{ + return QRect(qRound(xp), qRound(yp), qRound(w), qRound(h)); +} + + + QDebug operator<<(QDebug, const QRectF &); + + + + + +# 47 "/usr/include/qt4/QtGui/qpaintdevice.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + + + +class QPaintEngine; + +class QPaintDevice +{ +public: + enum PaintDeviceMetric { + PdmWidth = 1, + PdmHeight, + PdmWidthMM, + PdmHeightMM, + PdmNumColors, + PdmDepth, + PdmDpiX, + PdmDpiY, + PdmPhysicalDpiX, + PdmPhysicalDpiY + }; + + virtual ~QPaintDevice(); + + virtual int devType() const; + bool paintingActive() const; + virtual QPaintEngine *paintEngine() const = 0; +# 91 "/usr/include/qt4/QtGui/qpaintdevice.h" + int width() const { return metric(PdmWidth); } + int height() const { return metric(PdmHeight); } + int widthMM() const { return metric(PdmWidthMM); } + int heightMM() const { return metric(PdmHeightMM); } + int logicalDpiX() const { return metric(PdmDpiX); } + int logicalDpiY() const { return metric(PdmDpiY); } + int physicalDpiX() const { return metric(PdmPhysicalDpiX); } + int physicalDpiY() const { return metric(PdmPhysicalDpiY); } + + int numColors() const { return metric(PdmNumColors); } + + int colorCount() const { return metric(PdmNumColors); } + int depth() const { return metric(PdmDepth); } + +protected: + QPaintDevice(); + virtual int metric(PaintDeviceMetric metric) const; + + ushort painters; + +private: + QPaintDevice(const QPaintDevice &); QPaintDevice &operator=(const QPaintDevice &); +# 140 "/usr/include/qt4/QtGui/qpaintdevice.h" + friend class QPainter; + friend class QFontEngineMac; + friend class QX11PaintEngine; + friend int qt_paint_device_metric(const QPaintDevice *device, PaintDeviceMetric metric); +}; +# 167 "/usr/include/qt4/QtGui/qpaintdevice.h" +inline int QPaintDevice::devType() const +{ return QInternal::UnknownDevice; } + +inline bool QPaintDevice::paintingActive() const +{ return painters != 0; } + + + + +# 50 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qpalette.h" 1 +# 46 "/usr/include/qt4/QtGui/qpalette.h" +# 1 "/usr/include/qt4/QtGui/qcolor.h" 1 +# 45 "/usr/include/qt4/QtGui/qcolor.h" +# 1 "/usr/include/qt4/QtGui/qrgb.h" 1 +# 47 "/usr/include/qt4/QtGui/qrgb.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +typedef unsigned int QRgb; + +const QRgb RGB_MASK = 0x00ffffff; + + inline int qRed(QRgb rgb) +{ return ((rgb >> 16) & 0xff); } + + inline int qGreen(QRgb rgb) +{ return ((rgb >> 8) & 0xff); } + + inline int qBlue(QRgb rgb) +{ return (rgb & 0xff); } + + inline int qAlpha(QRgb rgb) +{ return rgb >> 24; } + + inline QRgb qRgb(int r, int g, int b) +{ return (0xffu << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); } + + inline QRgb qRgba(int r, int g, int b, int a) +{ return ((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); } + + inline int qGray(int r, int g, int b) +{ return (r*11+g*16+b*5)/32; } + + inline int qGray(QRgb rgb) +{ return qGray(qRed(rgb), qGreen(rgb), qBlue(rgb)); } + + inline bool qIsGray(QRgb rgb) +{ return qRed(rgb) == qGreen(rgb) && qRed(rgb) == qBlue(rgb); } + + + + +# 46 "/usr/include/qt4/QtGui/qcolor.h" 2 + +# 1 "/usr/include/qt4/QtCore/qstringlist.h" 1 +# 46 "/usr/include/qt4/QtCore/qstringlist.h" +# 1 "/usr/include/qt4/QtCore/qdatastream.h" 1 +# 46 "/usr/include/qt4/QtCore/qdatastream.h" +# 1 "/usr/include/qt4/QtCore/qiodevice.h" 1 +# 57 "/usr/include/qt4/QtCore/qiodevice.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QByteArray; +class QIODevicePrivate; + +class QIODevice + + : public QObject + +{ + + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + enum OpenModeFlag { + NotOpen = 0x0000, + ReadOnly = 0x0001, + WriteOnly = 0x0002, + ReadWrite = ReadOnly | WriteOnly, + Append = 0x0004, + Truncate = 0x0008, + Text = 0x0010, + Unbuffered = 0x0020 + }; + typedef QFlags OpenMode; + + QIODevice(); + + explicit QIODevice(QObject *parent); + + virtual ~QIODevice(); + + OpenMode openMode() const; + + void setTextModeEnabled(bool enabled); + bool isTextModeEnabled() const; + + bool isOpen() const; + bool isReadable() const; + bool isWritable() const; + virtual bool isSequential() const; + + virtual bool open(OpenMode mode); + virtual void close(); + + + + virtual qint64 pos() const; + virtual qint64 size() const; + virtual bool seek(qint64 pos); + virtual bool atEnd() const; + virtual bool reset(); + + virtual qint64 bytesAvailable() const; + virtual qint64 bytesToWrite() const; + + qint64 read(char *data, qint64 maxlen); + QByteArray read(qint64 maxlen); + QByteArray readAll(); + qint64 readLine(char *data, qint64 maxlen); + QByteArray readLine(qint64 maxlen = 0); + virtual bool canReadLine() const; + + qint64 write(const char *data, qint64 len); + qint64 write(const char *data); + inline qint64 write(const QByteArray &data) + { return write(data.constData(), data.size()); } + + qint64 peek(char *data, qint64 maxlen); + QByteArray peek(qint64 maxlen); + + virtual bool waitForReadyRead(int msecs); + virtual bool waitForBytesWritten(int msecs); + + void ungetChar(char c); + bool putChar(char c); + bool getChar(char *c); + + QString errorString() const; + + +protected: + void readyRead(); + void bytesWritten(qint64 bytes); + void aboutToClose(); + void readChannelFinished(); + + +protected: + + + + QIODevice(QIODevicePrivate &dd, QObject *parent = 0); + + virtual qint64 readData(char *data, qint64 maxlen) = 0; + virtual qint64 readLineData(char *data, qint64 maxlen); + virtual qint64 writeData(const char *data, qint64 len) = 0; + + void setOpenMode(OpenMode openMode); + + void setErrorString(const QString &errorString); + + + + + +private: + inline QIODevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QIODevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QIODevicePrivate; + QIODevice(const QIODevice &); QIODevice &operator=(const QIODevice &); +# 204 "/usr/include/qt4/QtCore/qiodevice.h" +}; + +constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QIODevice::OpenMode::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QIODevice::OpenMode::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +# 246 "/usr/include/qt4/QtCore/qiodevice.h" +class QDebug; + QDebug operator<<(QDebug debug, QIODevice::OpenMode modes); + + + + + +# 47 "/usr/include/qt4/QtCore/qdatastream.h" 2 + + + + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QByteArray; +class QIODevice; + +template class QList; +template class QLinkedList; +template class QVector; +template class QSet; +template class QHash; +template class QMap; + + +class QDataStreamPrivate; +class QDataStream +{ +public: + enum Version { + Qt_1_0 = 1, + Qt_2_0 = 2, + Qt_2_1 = 3, + Qt_3_0 = 4, + Qt_3_1 = 5, + Qt_3_3 = 6, + Qt_4_0 = 7, + Qt_4_1 = Qt_4_0, + Qt_4_2 = 8, + Qt_4_3 = 9, + Qt_4_4 = 10, + Qt_4_5 = 11, + Qt_4_6 = 12, + Qt_4_7 = Qt_4_6, + Qt_4_8 = Qt_4_7 + + + + + }; + + enum ByteOrder { + BigEndian = QSysInfo::BigEndian, + LittleEndian = QSysInfo::LittleEndian + }; + + enum Status { + Ok, + ReadPastEnd, + ReadCorruptData, + WriteFailed + }; + + enum FloatingPointPrecision { + SinglePrecision, + DoublePrecision + }; + + QDataStream(); + explicit QDataStream(QIODevice *); + + + + QDataStream(QByteArray *, QIODevice::OpenMode flags); + QDataStream(const QByteArray &); + virtual ~QDataStream(); + + QIODevice *device() const; + void setDevice(QIODevice *); + void unsetDevice(); + + bool atEnd() const; + + + + + Status status() const; + void setStatus(Status status); + void resetStatus(); + + FloatingPointPrecision floatingPointPrecision() const; + void setFloatingPointPrecision(FloatingPointPrecision precision); + + ByteOrder byteOrder() const; + void setByteOrder(ByteOrder); + + int version() const; + void setVersion(int); + + QDataStream &operator>>(qint8 &i); + QDataStream &operator>>(quint8 &i); + QDataStream &operator>>(qint16 &i); + QDataStream &operator>>(quint16 &i); + QDataStream &operator>>(qint32 &i); + QDataStream &operator>>(quint32 &i); + QDataStream &operator>>(qint64 &i); + QDataStream &operator>>(quint64 &i); + + QDataStream &operator>>(bool &i); + QDataStream &operator>>(float &f); + QDataStream &operator>>(double &f); + QDataStream &operator>>(char *&str); + + QDataStream &operator<<(qint8 i); + QDataStream &operator<<(quint8 i); + QDataStream &operator<<(qint16 i); + QDataStream &operator<<(quint16 i); + QDataStream &operator<<(qint32 i); + QDataStream &operator<<(quint32 i); + QDataStream &operator<<(qint64 i); + QDataStream &operator<<(quint64 i); + QDataStream &operator<<(bool i); + QDataStream &operator<<(float f); + QDataStream &operator<<(double f); + QDataStream &operator<<(const char *str); + + QDataStream &readBytes(char *&, uint &len); + int readRawData(char *, int len); + + QDataStream &writeBytes(const char *, uint len); + int writeRawData(const char *, int len); + + int skipRawData(int len); +# 188 "/usr/include/qt4/QtCore/qdatastream.h" +private: + QDataStream(const QDataStream &); QDataStream &operator=(const QDataStream &); + + QScopedPointer d; + + QIODevice *dev; + bool owndev; + bool noswap; + ByteOrder byteorder; + int ver; + Status q_status; +}; + + + + + + +inline QIODevice *QDataStream::device() const +{ return dev; } + +inline QDataStream::ByteOrder QDataStream::byteOrder() const +{ return byteorder; } + +inline int QDataStream::version() const +{ return ver; } + +inline void QDataStream::setVersion(int v) +{ ver = v; } + +inline QDataStream &QDataStream::operator>>(quint8 &i) +{ return *this >> reinterpret_cast(i); } + +inline QDataStream &QDataStream::operator>>(quint16 &i) +{ return *this >> reinterpret_cast(i); } + +inline QDataStream &QDataStream::operator>>(quint32 &i) +{ return *this >> reinterpret_cast(i); } + +inline QDataStream &QDataStream::operator>>(quint64 &i) +{ return *this >> reinterpret_cast(i); } + +inline QDataStream &QDataStream::operator<<(quint8 i) +{ return *this << qint8(i); } + +inline QDataStream &QDataStream::operator<<(quint16 i) +{ return *this << qint16(i); } + +inline QDataStream &QDataStream::operator<<(quint32 i) +{ return *this << qint32(i); } + +inline QDataStream &QDataStream::operator<<(quint64 i) +{ return *this << qint64(i); } + +template +QDataStream& operator>>(QDataStream& s, QList& l) +{ + l.clear(); + quint32 c; + s >> c; + l.reserve(c); + for(quint32 i = 0; i < c; ++i) + { + T t; + s >> t; + l.append(t); + if (s.atEnd()) + break; + } + return s; +} + +template +QDataStream& operator<<(QDataStream& s, const QList& l) +{ + s << quint32(l.size()); + for (int i = 0; i < l.size(); ++i) + s << l.at(i); + return s; +} + +template +QDataStream& operator>>(QDataStream& s, QLinkedList& l) +{ + l.clear(); + quint32 c; + s >> c; + for(quint32 i = 0; i < c; ++i) + { + T t; + s >> t; + l.append(t); + if (s.atEnd()) + break; + } + return s; +} + +template +QDataStream& operator<<(QDataStream& s, const QLinkedList& l) +{ + s << quint32(l.size()); + typename QLinkedList::ConstIterator it = l.constBegin(); + for(; it != l.constEnd(); ++it) + s << *it; + return s; +} + +template +QDataStream& operator>>(QDataStream& s, QVector& v) +{ + v.clear(); + quint32 c; + s >> c; + v.resize(c); + for(quint32 i = 0; i < c; ++i) { + T t; + s >> t; + v[i] = t; + } + return s; +} + +template +QDataStream& operator<<(QDataStream& s, const QVector& v) +{ + s << quint32(v.size()); + for (typename QVector::const_iterator it = v.begin(); it != v.end(); ++it) + s << *it; + return s; +} + +template +QDataStream &operator>>(QDataStream &in, QSet &set) +{ + set.clear(); + quint32 c; + in >> c; + for (quint32 i = 0; i < c; ++i) { + T t; + in >> t; + set << t; + if (in.atEnd()) + break; + } + return in; +} + +template +QDataStream& operator<<(QDataStream &out, const QSet &set) +{ + out << quint32(set.size()); + typename QSet::const_iterator i = set.constBegin(); + while (i != set.constEnd()) { + out << *i; + ++i; + } + return out; +} + +template + QDataStream &operator>>(QDataStream &in, QHash &hash) +{ + QDataStream::Status oldStatus = in.status(); + in.resetStatus(); + hash.clear(); + + quint32 n; + in >> n; + + for (quint32 i = 0; i < n; ++i) { + if (in.status() != QDataStream::Ok) + break; + + Key k; + T t; + in >> k >> t; + hash.insertMulti(k, t); + } + + if (in.status() != QDataStream::Ok) + hash.clear(); + if (oldStatus != QDataStream::Ok) + in.setStatus(oldStatus); + return in; +} + +template + QDataStream &operator<<(QDataStream &out, const QHash& hash) +{ + out << quint32(hash.size()); + typename QHash::ConstIterator it = hash.end(); + typename QHash::ConstIterator begin = hash.begin(); + while (it != begin) { + --it; + out << it.key() << it.value(); + } + return out; +} + + + + +template + QDataStream &operator>>(QDataStream &in, QMap &map) + +{ + QDataStream::Status oldStatus = in.status(); + in.resetStatus(); + map.clear(); + + quint32 n; + in >> n; + + map.detach(); + map.setInsertInOrder(true); + for (quint32 i = 0; i < n; ++i) { + if (in.status() != QDataStream::Ok) + break; + + aKey key; + aT value; + in >> key >> value; + map.insertMulti(key, value); + } + map.setInsertInOrder(false); + if (in.status() != QDataStream::Ok) + map.clear(); + if (oldStatus != QDataStream::Ok) + in.setStatus(oldStatus); + return in; +} + +template + QDataStream &operator<<(QDataStream &out, const QMap &map) +{ + out << quint32(map.size()); + typename QMap::ConstIterator it = map.end(); + typename QMap::ConstIterator begin = map.begin(); + while (it != begin) { + --it; + out << it.key() << it.value(); + } + return out; +} + + + + + + +# 47 "/usr/include/qt4/QtCore/qstringlist.h" 2 + +# 1 "/usr/include/qt4/QtCore/qregexp.h" 1 +# 52 "/usr/include/qt4/QtCore/qregexp.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +struct QRegExpPrivate; +class QStringList; + +class QRegExp +{ +public: + enum PatternSyntax { + RegExp, + Wildcard, + FixedString, + RegExp2, + WildcardUnix, + W3CXmlSchema11 }; + enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; + + QRegExp(); + explicit QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, + PatternSyntax syntax = RegExp); + QRegExp(const QRegExp &rx); + ~QRegExp(); + QRegExp &operator=(const QRegExp &rx); + + inline QRegExp &operator=(QRegExp &&other) + { qSwap(priv,other.priv); return *this; } + + inline void swap(QRegExp &other) { qSwap(priv, other.priv); } + + bool operator==(const QRegExp &rx) const; + inline bool operator!=(const QRegExp &rx) const { return !operator==(rx); } + + bool isEmpty() const; + bool isValid() const; + QString pattern() const; + void setPattern(const QString &pattern); + Qt::CaseSensitivity caseSensitivity() const; + void setCaseSensitivity(Qt::CaseSensitivity cs); + + + + + + PatternSyntax patternSyntax() const; + void setPatternSyntax(PatternSyntax syntax); + + + + + + + bool isMinimal() const; + void setMinimal(bool minimal); + + + + + bool exactMatch(const QString &str) const; + + int indexIn(const QString &str, int offset = 0, CaretMode caretMode = CaretAtZero) const; + int lastIndexIn(const QString &str, int offset = -1, CaretMode caretMode = CaretAtZero) const; +# 125 "/usr/include/qt4/QtCore/qregexp.h" + int matchedLength() const; + + + int numCaptures() const; + + int captureCount() const; + QStringList capturedTexts() const; + QStringList capturedTexts(); + QString cap(int nth = 0) const; + QString cap(int nth = 0); + int pos(int nth = 0) const; + int pos(int nth = 0); + QString errorString() const; + QString errorString(); + + + static QString escape(const QString &str); +# 152 "/usr/include/qt4/QtCore/qregexp.h" +private: + QRegExpPrivate *priv; +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QRegExp)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QRegExp"; } }; + + + QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); + QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); + + + + + +# 49 "/usr/include/qt4/QtCore/qstringlist.h" 2 + +# 1 "/usr/include/qt4/QtCore/qstringmatcher.h" 1 +# 47 "/usr/include/qt4/QtCore/qstringmatcher.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QStringMatcherPrivate; + +class QStringMatcher +{ +public: + QStringMatcher(); + QStringMatcher(const QString &pattern, + Qt::CaseSensitivity cs = Qt::CaseSensitive); + QStringMatcher(const QChar *uc, int len, + Qt::CaseSensitivity cs = Qt::CaseSensitive); + QStringMatcher(const QStringMatcher &other); + ~QStringMatcher(); + + QStringMatcher &operator=(const QStringMatcher &other); + + void setPattern(const QString &pattern); + void setCaseSensitivity(Qt::CaseSensitivity cs); + + int indexIn(const QString &str, int from = 0) const; + int indexIn(const QChar *str, int length, int from = 0) const; + QString pattern() const; + inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; } + +private: + QStringMatcherPrivate *d_ptr; + QString q_pattern; + Qt::CaseSensitivity q_cs; + + + + + + struct Data { + uchar q_skiptable[256]; + const QChar *uc; + int len; + }; + union { + uint q_data[256]; + Data p; + }; + + + +}; + + + + +# 51 "/usr/include/qt4/QtCore/qstringlist.h" 2 + + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QRegExp; + +typedef QListIterator QStringListIterator; +typedef QMutableListIterator QMutableStringListIterator; + +class QStringList : public QList +{ +public: + inline QStringList() { } + inline explicit QStringList(const QString &i) { append(i); } + inline QStringList(const QStringList &l) : QList(l) { } + inline QStringList(const QList &l) : QList(l) { } + + inline QStringList(std::initializer_list args) : QList(args) { } + + + inline void sort(); + inline int removeDuplicates(); + + inline QString join(const QString &sep) const; + + inline QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + inline QBool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + + inline QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); + + inline QStringList operator+(const QStringList &other) const + { QStringList n = *this; n += other; return n; } + inline QStringList &operator<<(const QString &str) + { append(str); return *this; } + inline QStringList &operator<<(const QStringList &l) + { *this += l; return *this; } + + + inline QStringList filter(const QRegExp &rx) const; + inline QStringList &replaceInStrings(const QRegExp &rx, const QString &after); + inline int indexOf(const QRegExp &rx, int from = 0) const; + inline int lastIndexOf(const QRegExp &rx, int from = -1) const; + inline int indexOf(QRegExp &rx, int from = 0) const; + inline int lastIndexOf(QRegExp &rx, int from = -1) const; + + + using QList::indexOf; + using QList::lastIndexOf; +# 129 "/usr/include/qt4/QtCore/qstringlist.h" +}; + +namespace QtPrivate { + void QStringList_sort(QStringList *that); + int QStringList_removeDuplicates(QStringList *that); + QString QStringList_join(const QStringList *that, const QString &sep); + QStringList QStringList_filter(const QStringList *that, const QString &str, + Qt::CaseSensitivity cs); + + QBool QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); + void QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, + Qt::CaseSensitivity cs); + + + void QStringList_replaceInStrings(QStringList *that, const QRegExp &rx, const QString &after); + QStringList QStringList_filter(const QStringList *that, const QRegExp &re); + int QStringList_indexOf(const QStringList *that, const QRegExp &rx, int from); + int QStringList_lastIndexOf(const QStringList *that, const QRegExp &rx, int from); + int QStringList_indexOf(const QStringList *that, QRegExp &rx, int from); + int QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int from); + +} + +inline void QStringList::sort() +{ + QtPrivate::QStringList_sort(this); +} + +inline int QStringList::removeDuplicates() +{ + return QtPrivate::QStringList_removeDuplicates(this); +} + +inline QString QStringList::join(const QString &sep) const +{ + return QtPrivate::QStringList_join(this, sep); +} + +inline QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs) const +{ + return QtPrivate::QStringList_filter(this, str, cs); +} + +inline QBool QStringList::contains(const QString &str, Qt::CaseSensitivity cs) const +{ + return QtPrivate::QStringList_contains(this, str, cs); +} + +inline QStringList &QStringList::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs) +{ + QtPrivate::QStringList_replaceInStrings(this, before, after, cs); + return *this; +} + + +inline QStringList &QStringList::replaceInStrings(const QRegExp &rx, const QString &after) +{ + QtPrivate::QStringList_replaceInStrings(this, rx, after); + return *this; +} + +inline QStringList QStringList::filter(const QRegExp &rx) const +{ + return QtPrivate::QStringList_filter(this, rx); +} + +inline int QStringList::indexOf(const QRegExp &rx, int from) const +{ + return QtPrivate::QStringList_indexOf(this, rx, from); +} + +inline int QStringList::lastIndexOf(const QRegExp &rx, int from) const +{ + return QtPrivate::QStringList_lastIndexOf(this, rx, from); +} + +inline int QStringList::indexOf(QRegExp &rx, int from) const +{ + return QtPrivate::QStringList_indexOf(this, rx, from); +} + +inline int QStringList::lastIndexOf(QRegExp &rx, int from) const +{ + return QtPrivate::QStringList_lastIndexOf(this, rx, from); +} +# 248 "/usr/include/qt4/QtCore/qstringlist.h" +inline QDataStream &operator>>(QDataStream &in, QStringList &list) +{ + return operator>>(in, static_cast &>(list)); +} +inline QDataStream &operator<<(QDataStream &out, const QStringList &list) +{ + return operator<<(out, static_cast &>(list)); +} + + + + + +# 48 "/usr/include/qt4/QtGui/qcolor.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QColor; +class QColormap; +class QVariant; + + + QDebug operator<<(QDebug, const QColor &); + + + QDataStream &operator<<(QDataStream &, const QColor &); + QDataStream &operator>>(QDataStream &, QColor &); + + +class QColor +{ +public: + enum Spec { Invalid, Rgb, Hsv, Cmyk, Hsl }; + + QColor(); + QColor(Qt::GlobalColor color); + QColor(int r, int g, int b, int a = 255); + QColor(QRgb rgb); + QColor(const QString& name); + QColor(const char *name); + QColor(const QColor &color); + QColor(Spec spec); + + bool isValid() const; + + QString name() const; + void setNamedColor(const QString& name); + + static QStringList colorNames(); + + inline Spec spec() const + { return cspec; } + + int alpha() const; + void setAlpha(int alpha); + + qreal alphaF() const; + void setAlphaF(qreal alpha); + + int red() const; + int green() const; + int blue() const; + void setRed(int red); + void setGreen(int green); + void setBlue(int blue); + + qreal redF() const; + qreal greenF() const; + qreal blueF() const; + void setRedF(qreal red); + void setGreenF(qreal green); + void setBlueF(qreal blue); + + void getRgb(int *r, int *g, int *b, int *a = 0) const; + void setRgb(int r, int g, int b, int a = 255); + + void getRgbF(qreal *r, qreal *g, qreal *b, qreal *a = 0) const; + void setRgbF(qreal r, qreal g, qreal b, qreal a = 1.0); + + QRgb rgba() const; + void setRgba(QRgb rgba); + + QRgb rgb() const; + void setRgb(QRgb rgb); + + int hue() const; + int saturation() const; + int hsvHue() const; + int hsvSaturation() const; + int value() const; + + qreal hueF() const; + qreal saturationF() const; + qreal hsvHueF() const; + qreal hsvSaturationF() const; + qreal valueF() const; + + void getHsv(int *h, int *s, int *v, int *a = 0) const; + void setHsv(int h, int s, int v, int a = 255); + + void getHsvF(qreal *h, qreal *s, qreal *v, qreal *a = 0) const; + void setHsvF(qreal h, qreal s, qreal v, qreal a = 1.0); + + int cyan() const; + int magenta() const; + int yellow() const; + int black() const; + + qreal cyanF() const; + qreal magentaF() const; + qreal yellowF() const; + qreal blackF() const; + + void getCmyk(int *c, int *m, int *y, int *k, int *a = 0); + void setCmyk(int c, int m, int y, int k, int a = 255); + + void getCmykF(qreal *c, qreal *m, qreal *y, qreal *k, qreal *a = 0); + void setCmykF(qreal c, qreal m, qreal y, qreal k, qreal a = 1.0); + + int hslHue() const; + int hslSaturation() const; + int lightness() const; + + qreal hslHueF() const; + qreal hslSaturationF() const; + qreal lightnessF() const; + + void getHsl(int *h, int *s, int *l, int *a = 0) const; + void setHsl(int h, int s, int l, int a = 255); + + void getHslF(qreal *h, qreal *s, qreal *l, qreal *a = 0) const; + void setHslF(qreal h, qreal s, qreal l, qreal a = 1.0); + + QColor toRgb() const; + QColor toHsv() const; + QColor toCmyk() const; + QColor toHsl() const; + + QColor convertTo(Spec colorSpec) const; + + static QColor fromRgb(QRgb rgb); + static QColor fromRgba(QRgb rgba); + + static QColor fromRgb(int r, int g, int b, int a = 255); + static QColor fromRgbF(qreal r, qreal g, qreal b, qreal a = 1.0); + + static QColor fromHsv(int h, int s, int v, int a = 255); + static QColor fromHsvF(qreal h, qreal s, qreal v, qreal a = 1.0); + + static QColor fromCmyk(int c, int m, int y, int k, int a = 255); + static QColor fromCmykF(qreal c, qreal m, qreal y, qreal k, qreal a = 1.0); + + static QColor fromHsl(int h, int s, int l, int a = 255); + static QColor fromHslF(qreal h, qreal s, qreal l, qreal a = 1.0); + + QColor light(int f = 150) const; + QColor lighter(int f = 150) const; + QColor dark(int f = 200) const; + QColor darker(int f = 200) const; + + QColor &operator=(const QColor &); + QColor &operator=(Qt::GlobalColor color); + + bool operator==(const QColor &c) const; + bool operator!=(const QColor &c) const; + + operator QVariant() const; + + + static bool allowX11ColorNames(); + static void setAllowX11ColorNames(bool enabled); +# 228 "/usr/include/qt4/QtGui/qcolor.h" + static bool isValidColor(const QString &name); + +private: + + + QColor(int, int, int, Spec); + + + void invalidate(); + bool setColorFromString(const QString &name); + + Spec cspec; + union { + struct { + ushort alpha; + ushort red; + ushort green; + ushort blue; + ushort pad; + } argb; + struct { + ushort alpha; + ushort hue; + ushort saturation; + ushort value; + ushort pad; + } ahsv; + struct { + ushort alpha; + ushort cyan; + ushort magenta; + ushort yellow; + ushort black; + } acmyk; + struct { + ushort alpha; + ushort hue; + ushort saturation; + ushort lightness; + ushort pad; + } ahsl; + ushort array[5]; + } ct; + + friend class QColormap; + + friend QDataStream &operator<<(QDataStream &, const QColor &); + friend QDataStream &operator>>(QDataStream &, QColor &); + +}; + +inline QColor::QColor() +{ invalidate(); } + +inline QColor::QColor(int r, int g, int b, int a) +{ setRgb(r, g, b, a); } + +inline QColor::QColor(const char *aname) +{ setNamedColor(QLatin1String(aname)); } + +inline QColor::QColor(const QString& aname) +{ setNamedColor(aname); } + +inline QColor::QColor(const QColor &acolor) + : cspec(acolor.cspec) +{ ct.argb = acolor.ct.argb; } + +inline bool QColor::isValid() const +{ return cspec != Invalid; } + +inline QColor QColor::lighter(int f) const +{ return light(f); } + +inline QColor QColor::darker(int f) const +{ return dark(f); } + + + + +# 47 "/usr/include/qt4/QtGui/qpalette.h" 2 +# 1 "/usr/include/qt4/QtGui/qbrush.h" 1 +# 45 "/usr/include/qt4/QtGui/qbrush.h" +# 1 "/usr/include/qt4/QtCore/qpair.h" 1 +# 47 "/usr/include/qt4/QtCore/qpair.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +template +struct QPair +{ + typedef T1 first_type; + typedef T2 second_type; + + QPair() : first(T1()), second(T2()) {} + QPair(const T1 &t1, const T2 &t2) : first(t1), second(t2) {} + + QPair &operator=(const QPair &other) + { first = other.first; second = other.second; return *this; } + + T1 first; + T2 second; +}; + +template +inline bool operator==(const QPair &p1, const QPair &p2) +{ return p1.first == p2.first && p1.second == p2.second; } + +template +inline bool operator!=(const QPair &p1, const QPair &p2) +{ return !(p1 == p2); } + +template +inline bool operator<(const QPair &p1, const QPair &p2) +{ + return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); +} + +template +inline bool operator>(const QPair &p1, const QPair &p2) +{ + return p2 < p1; +} + +template +inline bool operator<=(const QPair &p1, const QPair &p2) +{ + return !(p2 < p1); +} + +template +inline bool operator>=(const QPair &p1, const QPair &p2) +{ + return !(p1 < p2); +} + +template + QPair qMakePair(const T1 &x, const T2 &y) +{ + return QPair(x, y); +} + + +template +inline QDataStream& operator>>(QDataStream& s, QPair& p) +{ + s >> p.first >> p.second; + return s; +} + +template +inline QDataStream& operator<<(QDataStream& s, const QPair& p) +{ + s << p.first << p.second; + return s; +} + + + + + +# 46 "/usr/include/qt4/QtGui/qbrush.h" 2 + +# 1 "/usr/include/qt4/QtCore/qvector.h" 1 +# 60 "/usr/include/qt4/QtCore/qvector.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +struct QVectorData +{ + QBasicAtomicInt ref; + int alloc; + int size; + + + + + + + uint sharable : 1; + uint capacity : 1; + uint reserved : 30; + + + static QVectorData shared_null; + + + + static QVectorData *malloc(int sizeofTypedData, int size, int sizeofT, QVectorData *init); + static QVectorData *allocate(int size, int alignment); + static QVectorData *reallocate(QVectorData *old, int newsize, int oldsize, int alignment); + static void free(QVectorData *data, int alignment); + static int grow(int sizeofTypedData, int size, int sizeofT, bool excessive); +}; + +template +struct QVectorTypedData : private QVectorData +{ + + T array[1]; + + static inline void free(QVectorTypedData *x, int alignment) { QVectorData::free(static_cast(x), alignment); } +}; + +class QRegion; + +template +class QVector +{ + typedef QVectorTypedData Data; + union { + QVectorData *d; + + + + Data *p; + + }; + +public: + + + inline QVector() : d(&QVectorData::shared_null) { d->ref.ref(); } + explicit QVector(int size); + QVector(int size, const T &t); + inline QVector(const QVector &v) : d(v.d) { d->ref.ref(); if (!d->sharable) detach_helper(); } + inline ~QVector() { if (!d) return; if (!d->ref.deref()) free(p); } + QVector &operator=(const QVector &v); + + inline QVector operator=(QVector &&other) + { qSwap(p, other.p); return *this; } + + inline void swap(QVector &other) { qSwap(d, other.d); } + + inline QVector(std::initializer_list args); + + bool operator==(const QVector &v) const; + inline bool operator!=(const QVector &v) const { return !(*this == v); } + + inline int size() const { return d->size; } + + inline bool isEmpty() const { return d->size == 0; } + + void resize(int size); + + inline int capacity() const { return d->alloc; } + void reserve(int size); + inline void squeeze() { realloc(d->size, d->size); d->capacity = 0; } + + inline void detach() { if (d->ref != 1) detach_helper(); } + inline bool isDetached() const { return d->ref == 1; } + inline void setSharable(bool sharable) { if (!sharable) detach(); d->sharable = sharable; } + inline bool isSharedWith(const QVector &other) const { return d == other.d; } + + inline T *data() { detach(); return p->array; } + inline const T *data() const { return p->array; } + inline const T *constData() const { return p->array; } + void clear(); + + const T &at(int i) const; + T &operator[](int i); + const T &operator[](int i) const; + void append(const T &t); + void prepend(const T &t); + void insert(int i, const T &t); + void insert(int i, int n, const T &t); + void replace(int i, const T &t); + void remove(int i); + void remove(int i, int n); + + QVector &fill(const T &t, int size = -1); + + int indexOf(const T &t, int from = 0) const; + int lastIndexOf(const T &t, int from = -1) const; + bool contains(const T &t) const; + int count(const T &t) const; +# 244 "/usr/include/qt4/QtCore/qvector.h" + typedef T* iterator; + typedef const T* const_iterator; + + inline iterator begin() { detach(); return p->array; } + inline const_iterator begin() const { return p->array; } + inline const_iterator constBegin() const { return p->array; } + inline iterator end() { detach(); return p->array + d->size; } + inline const_iterator end() const { return p->array + d->size; } + inline const_iterator constEnd() const { return p->array + d->size; } + iterator insert(iterator before, int n, const T &x); + inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); } + iterator erase(iterator begin, iterator end); + inline iterator erase(iterator pos) { return erase(pos, pos+1); } + + + inline int count() const { return d->size; } + inline T& first() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qvector.h",260) : qt_noop()); return *begin(); } + inline const T &first() const { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qvector.h",261) : qt_noop()); return *begin(); } + inline T& last() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qvector.h",262) : qt_noop()); return *(end()-1); } + inline const T &last() const { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qvector.h",263) : qt_noop()); return *(end()-1); } + inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } + inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } + QVector mid(int pos, int length = -1) const; + + T value(int i) const; + T value(int i, const T &defaultValue) const; + + + typedef T value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef qptrdiff difference_type; + typedef iterator Iterator; + typedef const_iterator ConstIterator; + typedef int size_type; + inline void push_back(const T &t) { append(t); } + inline void push_front(const T &t) { prepend(t); } + void pop_back() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qvector.h",283) : qt_noop()); erase(end()-1); } + void pop_front() { ((!(!isEmpty())) ? qt_assert("!isEmpty()","/usr/include/qt4/QtCore/qvector.h",284) : qt_noop()); erase(begin()); } + inline bool empty() const + { return d->size == 0; } + inline T& front() { return first(); } + inline const_reference front() const { return first(); } + inline reference back() { return last(); } + inline const_reference back() const { return last(); } + + + QVector &operator+=(const QVector &l); + inline QVector operator+(const QVector &l) const + { QVector n = *this; n += l; return n; } + inline QVector &operator+=(const T &t) + { append(t); return *this; } + inline QVector &operator<< (const T &t) + { append(t); return *this; } + inline QVector &operator<<(const QVector &l) + { *this += l; return *this; } + + QList toList() const; + + static QVector fromList(const QList &list); + + + static inline QVector fromStdVector(const std::vector &vector) + { QVector tmp; tmp.reserve(int(vector.size())); qCopy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } + inline std::vector toStdVector() const + { std::vector tmp; tmp.reserve(size()); qCopy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } + +private: + friend class QRegion; + + void detach_helper(); + QVectorData *malloc(int alloc); + void realloc(int size, int alloc); + void free(Data *d); + int sizeOfTypedData() { + + + return reinterpret_cast(&(reinterpret_cast(this))->array[1]) - reinterpret_cast(this); + } + inline int alignOfTypedData() const + { + + return qMax(sizeof(void*), __alignof__(Data)); + + + + } +}; + +template +void QVector::detach_helper() +{ realloc(d->size, d->alloc); } +template +void QVector::reserve(int asize) +{ if (asize > d->alloc) realloc(d->size, asize); if (d->ref == 1) d->capacity = 1; } +template +void QVector::resize(int asize) +{ realloc(asize, (asize > d->alloc || (!d->capacity && asize < d->size && asize < (d->alloc >> 1))) ? + QVectorData::grow(sizeOfTypedData(), asize, sizeof(T), QTypeInfo::isStatic) + : d->alloc); } +template +inline void QVector::clear() +{ *this = QVector(); } +template +inline const T &QVector::at(int i) const +{ ((!(i >= 0 && i < d->size)) ? qt_assert_x("QVector::at", "index out of range","/usr/include/qt4/QtCore/qvector.h",351) : qt_noop()); + return p->array[i]; } +template +inline const T &QVector::operator[](int i) const +{ ((!(i >= 0 && i < d->size)) ? qt_assert_x("QVector::operator[]", "index out of range","/usr/include/qt4/QtCore/qvector.h",355) : qt_noop()); + return p->array[i]; } +template +inline T &QVector::operator[](int i) +{ ((!(i >= 0 && i < d->size)) ? qt_assert_x("QVector::operator[]", "index out of range","/usr/include/qt4/QtCore/qvector.h",359) : qt_noop()); + return data()[i]; } +template +inline void QVector::insert(int i, const T &t) +{ ((!(i >= 0 && i <= d->size)) ? qt_assert_x("QVector::insert", "index out of range","/usr/include/qt4/QtCore/qvector.h",363) : qt_noop()); + insert(begin() + i, 1, t); } +template +inline void QVector::insert(int i, int n, const T &t) +{ ((!(i >= 0 && i <= d->size)) ? qt_assert_x("QVector::insert", "index out of range","/usr/include/qt4/QtCore/qvector.h",367) : qt_noop()); + insert(begin() + i, n, t); } +template +inline void QVector::remove(int i, int n) +{ ((!(i >= 0 && n >= 0 && i + n <= d->size)) ? qt_assert_x("QVector::remove", "index out of range","/usr/include/qt4/QtCore/qvector.h",371) : qt_noop()); + erase(begin() + i, begin() + i + n); } +template +inline void QVector::remove(int i) +{ ((!(i >= 0 && i < d->size)) ? qt_assert_x("QVector::remove", "index out of range","/usr/include/qt4/QtCore/qvector.h",375) : qt_noop()); + erase(begin() + i, begin() + i + 1); } +template +inline void QVector::prepend(const T &t) +{ insert(begin(), 1, t); } + +template +inline void QVector::replace(int i, const T &t) +{ + ((!(i >= 0 && i < d->size)) ? qt_assert_x("QVector::replace", "index out of range","/usr/include/qt4/QtCore/qvector.h",384) : qt_noop()); + const T copy(t); + data()[i] = copy; +} + +template +QVector &QVector::operator=(const QVector &v) +{ + QVectorData *o = v.d; + o->ref.ref(); + if (!d->ref.deref()) + free(p); + d = o; + if (!d->sharable) + detach_helper(); + return *this; +} + +template +inline QVectorData *QVector::malloc(int aalloc) +{ + QVectorData *vectordata = QVectorData::allocate(sizeOfTypedData() + (aalloc - 1) * sizeof(T), alignOfTypedData()); + do { if (!(vectordata)) qBadAlloc(); } while (0); + return vectordata; +} + +template +QVector::QVector(int asize) +{ + d = malloc(asize); + d->ref = 1; + d->alloc = d->size = asize; + d->sharable = true; + d->capacity = false; + if (QTypeInfo::isComplex) { + T* b = p->array; + T* i = p->array + d->size; + while (i != b) + new (--i) T; + } else { + qMemSet(p->array, 0, asize * sizeof(T)); + } +} + +template +QVector::QVector(int asize, const T &t) +{ + d = malloc(asize); + d->ref = 1; + d->alloc = d->size = asize; + d->sharable = true; + d->capacity = false; + T* i = p->array + d->size; + while (i != p->array) + new (--i) T(t); +} + + +template +QVector::QVector(std::initializer_list args) +{ + d = malloc(int(args.size())); + d->ref = 1; + d->alloc = d->size = int(args.size()); + d->sharable = true; + d->capacity = false; + T* i = p->array + d->size; + auto it = args.end(); + while (i != p->array) + new (--i) T(*(--it)); +} + + +template +void QVector::free(Data *x) +{ + if (QTypeInfo::isComplex) { + T* b = x->array; + union { QVectorData *d; Data *p; } u; + u.p = x; + T* i = b + u.d->size; + while (i-- != b) + i->~T(); + } + x->free(x, alignOfTypedData()); +} + +template +void QVector::realloc(int asize, int aalloc) +{ + ((!(asize <= aalloc)) ? qt_assert("asize <= aalloc","/usr/include/qt4/QtCore/qvector.h",474) : qt_noop()); + T *pOld; + T *pNew; + union { QVectorData *d; Data *p; } x; + x.d = d; + + if (QTypeInfo::isComplex && asize < d->size && d->ref == 1 ) { + + + pOld = p->array + d->size; + pNew = p->array + asize; + while (asize < d->size) { + (--pOld)->~T(); + d->size--; + } + } + + if (aalloc != d->alloc || d->ref != 1) { + + if (QTypeInfo::isStatic) { + x.d = malloc(aalloc); + do { if (!(x.p)) qBadAlloc(); } while (0); + x.d->size = 0; + } else if (d->ref != 1) { + x.d = malloc(aalloc); + do { if (!(x.p)) qBadAlloc(); } while (0); + if (QTypeInfo::isComplex) { + x.d->size = 0; + } else { + ::memcpy(x.p, p, sizeOfTypedData() + (qMin(aalloc, d->alloc) - 1) * sizeof(T)); + x.d->size = d->size; + } + } else { + try { + QVectorData *mem = QVectorData::reallocate(d, sizeOfTypedData() + (aalloc - 1) * sizeof(T), + sizeOfTypedData() + (d->alloc - 1) * sizeof(T), alignOfTypedData()); + do { if (!(mem)) qBadAlloc(); } while (0); + x.d = d = mem; + x.d->size = d->size; + } catch (const std::bad_alloc &) { + if (aalloc > d->alloc) + throw; + } + } + x.d->ref = 1; + x.d->alloc = aalloc; + x.d->sharable = true; + x.d->capacity = d->capacity; + x.d->reserved = 0; + } + + if (QTypeInfo::isComplex) { + try { + pOld = p->array + x.d->size; + pNew = x.p->array + x.d->size; + + const int toMove = qMin(asize, d->size); + while (x.d->size < toMove) { + new (pNew++) T(*pOld++); + x.d->size++; + } + + while (x.d->size < asize) { + new (pNew++) T; + x.d->size++; + } + } catch (...) { + free(x.p); + throw; + } + + } else if (asize > x.d->size) { + + qMemSet(x.p->array + x.d->size, 0, (asize - x.d->size) * sizeof(T)); + } + x.d->size = asize; + + if (d != x.d) { + if (!d->ref.deref()) + free(p); + d = x.d; + } +} + +template + T QVector::value(int i) const +{ + if (i < 0 || i >= d->size) { + return T(); + } + return p->array[i]; +} +template + T QVector::value(int i, const T &defaultValue) const +{ + return ((i < 0 || i >= d->size) ? defaultValue : p->array[i]); +} + +template +void QVector::append(const T &t) +{ + if (d->ref != 1 || d->size + 1 > d->alloc) { + const T copy(t); + realloc(d->size, QVectorData::grow(sizeOfTypedData(), d->size + 1, sizeof(T), + QTypeInfo::isStatic)); + if (QTypeInfo::isComplex) + new (p->array + d->size) T(copy); + else + p->array[d->size] = copy; + } else { + if (QTypeInfo::isComplex) + new (p->array + d->size) T(t); + else + p->array[d->size] = t; + } + ++d->size; +} + +template +typename QVector::iterator QVector::insert(iterator before, size_type n, const T &t) +{ + int offset = int(before - p->array); + if (n != 0) { + const T copy(t); + if (d->ref != 1 || d->size + n > d->alloc) + realloc(d->size, QVectorData::grow(sizeOfTypedData(), d->size + n, sizeof(T), + QTypeInfo::isStatic)); + if (QTypeInfo::isStatic) { + T *b = p->array + d->size; + T *i = p->array + d->size + n; + while (i != b) + new (--i) T; + i = p->array + d->size; + T *j = i + n; + b = p->array + offset; + while (i != b) + *--j = *--i; + i = b+n; + while (i != b) + *--i = copy; + } else { + T *b = p->array + offset; + T *i = b + n; + memmove(i, b, (d->size - offset) * sizeof(T)); + while (i != b) + new (--i) T(copy); + } + d->size += n; + } + return p->array + offset; +} + +template +typename QVector::iterator QVector::erase(iterator abegin, iterator aend) +{ + int f = int(abegin - p->array); + int l = int(aend - p->array); + int n = l - f; + detach(); + if (QTypeInfo::isComplex) { + qCopy(p->array+l, p->array+d->size, p->array+f); + T *i = p->array+d->size; + T* b = p->array+d->size-n; + while (i != b) { + --i; + i->~T(); + } + } else { + memmove(p->array + f, p->array + l, (d->size-l)*sizeof(T)); + } + d->size -= n; + return p->array + f; +} + +template +bool QVector::operator==(const QVector &v) const +{ + if (d->size != v.d->size) + return false; + if (d == v.d) + return true; + T* b = p->array; + T* i = b + d->size; + T* j = v.p->array + d->size; + while (i != b) + if (!(*--i == *--j)) + return false; + return true; +} + +template +QVector &QVector::fill(const T &from, int asize) +{ + const T copy(from); + resize(asize < 0 ? d->size : asize); + if (d->size) { + T *i = p->array + d->size; + T *b = p->array; + while (i != b) + *--i = copy; + } + return *this; +} + +template +QVector &QVector::operator+=(const QVector &l) +{ + int newSize = d->size + l.d->size; + realloc(d->size, newSize); + + T *w = p->array + newSize; + T *i = l.p->array + l.d->size; + T *b = l.p->array; + while (i != b) { + if (QTypeInfo::isComplex) + new (--w) T(*--i); + else + *--w = *--i; + } + d->size = newSize; + return *this; +} + +template +int QVector::indexOf(const T &t, int from) const +{ + if (from < 0) + from = qMax(from + d->size, 0); + if (from < d->size) { + T* n = p->array + from - 1; + T* e = p->array + d->size; + while (++n != e) + if (*n == t) + return n - p->array; + } + return -1; +} + +template +int QVector::lastIndexOf(const T &t, int from) const +{ + if (from < 0) + from += d->size; + else if (from >= d->size) + from = d->size-1; + if (from >= 0) { + T* b = p->array; + T* n = p->array + from + 1; + while (n != b) { + if (*--n == t) + return n - b; + } + } + return -1; +} + +template +bool QVector::contains(const T &t) const +{ + T* b = p->array; + T* i = p->array + d->size; + while (i != b) + if (*--i == t) + return true; + return false; +} + +template +int QVector::count(const T &t) const +{ + int c = 0; + T* b = p->array; + T* i = p->array + d->size; + while (i != b) + if (*--i == t) + ++c; + return c; +} + +template + QVector QVector::mid(int pos, int length) const +{ + if (length < 0) + length = size() - pos; + if (pos == 0 && length == size()) + return *this; + if (pos + length > size()) + length = size() - pos; + QVector copy; + copy.reserve(length); + for (int i = pos; i < pos + length; ++i) + copy += at(i); + return copy; +} + +template + QList QVector::toList() const +{ + QList result; + result.reserve(size()); + for (int i = 0; i < size(); ++i) + result.append(at(i)); + return result; +} + +template + QVector QList::toVector() const +{ + QVector result(size()); + for (int i = 0; i < size(); ++i) + result[i] = at(i); + return result; +} + +template +QVector QVector::fromList(const QList &list) +{ + return list.toVector(); +} + +template +QList QList::fromVector(const QVector &vector) +{ + return vector.toList(); +} + +template class QVectorIterator { typedef typename QVector::const_iterator const_iterator; QVector c; const_iterator i; public: inline QVectorIterator(const QVector &container) : c(container), i(c.constBegin()) {} inline QVectorIterator &operator=(const QVector &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; +template class QMutableVectorIterator { typedef typename QVector::iterator iterator; typedef typename QVector::const_iterator const_iterator; QVector *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableVectorIterator(QVector &container) : c(&container) { c->setSharable(false); i = c->begin(); n = c->end(); } inline ~QMutableVectorIterator() { c->setSharable(true); } inline QMutableVectorIterator &operator=(QVector &container) { c->setSharable(true); c = &container; c->setSharable(false); i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qvector.h",801) : qt_noop()); return *n; } inline const T &value() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qvector.h",801) : qt_noop()); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; +# 825 "/usr/include/qt4/QtCore/qvector.h" + + + +# 48 "/usr/include/qt4/QtGui/qbrush.h" 2 + + +# 1 "/usr/include/qt4/QtGui/qmatrix.h" 1 +# 45 "/usr/include/qt4/QtGui/qmatrix.h" +# 1 "/usr/include/qt4/QtGui/qpolygon.h" 1 +# 49 "/usr/include/qt4/QtGui/qpolygon.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QMatrix; +class QTransform; +class QRect; +class QVariant; + +class QPolygon : public QVector +{ +public: + inline QPolygon() {} + inline ~QPolygon() {} + inline QPolygon(int size); + inline QPolygon(const QPolygon &a) : QVector(a) {} + inline QPolygon(const QVector &v) : QVector(v) {} + QPolygon(const QRect &r, bool closed=false); + QPolygon(int nPoints, const int *points); + inline void swap(QPolygon &other) { QVector::swap(other); } + + operator QVariant() const; + + void translate(int dx, int dy); + void translate(const QPoint &offset); + + QPolygon translated(int dx, int dy) const; + inline QPolygon translated(const QPoint &offset) const; + + QRect boundingRect() const; + + void point(int i, int *x, int *y) const; + QPoint point(int i) const; + void setPoint(int index, int x, int y); + void setPoint(int index, const QPoint &p); + void setPoints(int nPoints, const int *points); + void setPoints(int nPoints, int firstx, int firsty, ...); + void putPoints(int index, int nPoints, const int *points); + void putPoints(int index, int nPoints, int firstx, int firsty, ...); + void putPoints(int index, int nPoints, const QPolygon & from, int fromIndex=0); + + bool containsPoint(const QPoint &pt, Qt::FillRule fillRule) const; + + QPolygon united(const QPolygon &r) const; + QPolygon intersected(const QPolygon &r) const; + QPolygon subtracted(const QPolygon &r) const; +}; + +inline QPolygon::QPolygon(int asize) : QVector(asize) {} + + + QDebug operator<<(QDebug, const QPolygon &); + + + + + + + QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon); + QDataStream &operator>>(QDataStream &stream, QPolygon &polygon); + + + + + + +inline void QPolygon::setPoint(int index, const QPoint &pt) +{ (*this)[index] = pt; } + +inline void QPolygon::setPoint(int index, int x, int y) +{ (*this)[index] = QPoint(x, y); } + +inline QPoint QPolygon::point(int index) const +{ return at(index); } + +inline void QPolygon::translate(const QPoint &offset) +{ translate(offset.x(), offset.y()); } + +inline QPolygon QPolygon::translated(const QPoint &offset) const +{ return translated(offset.x(), offset.y()); } + +class QRectF; + +class QPolygonF : public QVector +{ +public: + inline QPolygonF() {} + inline ~QPolygonF() {} + inline QPolygonF(int size); + inline QPolygonF(const QPolygonF &a) : QVector(a) {} + inline QPolygonF(const QVector &v) : QVector(v) {} + QPolygonF(const QRectF &r); + QPolygonF(const QPolygon &a); + inline void swap(QPolygonF &other) { QVector::swap(other); } + + inline void translate(qreal dx, qreal dy); + void translate(const QPointF &offset); + + inline QPolygonF translated(qreal dx, qreal dy) const; + QPolygonF translated(const QPointF &offset) const; + + QPolygon toPolygon() const; + + bool isClosed() const { return !isEmpty() && first() == last(); } + + QRectF boundingRect() const; + + bool containsPoint(const QPointF &pt, Qt::FillRule fillRule) const; + + QPolygonF united(const QPolygonF &r) const; + QPolygonF intersected(const QPolygonF &r) const; + QPolygonF subtracted(const QPolygonF &r) const; +}; + +inline QPolygonF::QPolygonF(int asize) : QVector(asize) {} + + + QDebug operator<<(QDebug, const QPolygonF &); + + + + + + + QDataStream &operator<<(QDataStream &stream, const QPolygonF &array); + QDataStream &operator>>(QDataStream &stream, QPolygonF &array); + + +inline void QPolygonF::translate(qreal dx, qreal dy) +{ translate(QPointF(dx, dy)); } + +inline QPolygonF QPolygonF::translated(qreal dx, qreal dy) const +{ return translated(QPointF(dx, dy)); } + + + + +# 46 "/usr/include/qt4/QtGui/qmatrix.h" 2 +# 1 "/usr/include/qt4/QtGui/qregion.h" 1 +# 53 "/usr/include/qt4/QtGui/qregion.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +template class QVector; +class QVariant; + + +struct QRegionPrivate; + + +class QBitmap; + +class QRegion +{ +public: + enum RegionType { Rectangle, Ellipse }; + + QRegion(); + QRegion(int x, int y, int w, int h, RegionType t = Rectangle); + QRegion(const QRect &r, RegionType t = Rectangle); + QRegion(const QPolygon &pa, Qt::FillRule fillRule = Qt::OddEvenFill); + + + + QRegion(const QRegion ®ion); + QRegion(const QBitmap &bitmap); + ~QRegion(); + QRegion &operator=(const QRegion &); + + inline QRegion &operator=(QRegion &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QRegion &other) { qSwap(d, other.d); } + + + + bool isEmpty() const; + + bool contains(const QPoint &p) const; + bool contains(const QRect &r) const; + + void translate(int dx, int dy); + inline void translate(const QPoint &p) { translate(p.x(), p.y()); } + QRegion translated(int dx, int dy) const; + inline QRegion translated(const QPoint &p) const { return translated(p.x(), p.y()); } + + + QRegion unite(const QRegion &r) const; + QRegion unite(const QRect &r) const; + QRegion intersect(const QRegion &r) const; + QRegion intersect(const QRect &r) const; + QRegion subtract(const QRegion &r) const; + QRegion eor(const QRegion &r) const; + + inline QRegion united(const QRegion &r) const { return unite(r); } + inline QRegion united(const QRect &r) const { return unite(r); } + inline QRegion intersected(const QRegion &r) const { return intersect(r); } + inline QRegion intersected(const QRect &r) const { return intersect(r); } + inline QRegion subtracted(const QRegion &r) const { return subtract(r); } + inline QRegion xored(const QRegion &r) const { return eor(r); } + + bool intersects(const QRegion &r) const; + bool intersects(const QRect &r) const; + + QRect boundingRect() const; + QVector rects() const; + void setRects(const QRect *rect, int num); + + int numRects() const; + + int rectCount() const; + + const QRegion operator|(const QRegion &r) const; + const QRegion operator+(const QRegion &r) const; + const QRegion operator+(const QRect &r) const; + const QRegion operator&(const QRegion &r) const; + const QRegion operator&(const QRect &r) const; + const QRegion operator-(const QRegion &r) const; + const QRegion operator^(const QRegion &r) const; + QRegion& operator|=(const QRegion &r); + QRegion& operator+=(const QRegion &r); + QRegion& operator+=(const QRect &r); + QRegion& operator&=(const QRegion &r); + QRegion& operator&=(const QRect &r); + QRegion& operator-=(const QRegion &r); + QRegion& operator^=(const QRegion &r); + + bool operator==(const QRegion &r) const; + inline bool operator!=(const QRegion &r) const { return !(operator==(r)); } + operator QVariant() const; +# 154 "/usr/include/qt4/QtGui/qregion.h" + inline Region handle() const { if(!d->rgn) updateX11Region(); return d->rgn; } +# 176 "/usr/include/qt4/QtGui/qregion.h" + friend QDataStream &operator<<(QDataStream &, const QRegion &); + friend QDataStream &operator>>(QDataStream &, QRegion &); + +private: + QRegion copy() const; + void detach(); + + + + + void updateX11Region() const; + void *clipRectangles(int &num) const; + friend void *qt_getClipRects(const QRegion &r, int &num); + + + + + friend bool qt_region_strictContains(const QRegion ®ion, + const QRect &rect); + friend struct QRegionPrivate; + + + void exec(const QByteArray &ba, int ver = 0, QDataStream::ByteOrder byteOrder = QDataStream::BigEndian); + + struct QRegionData { + QBasicAtomicInt ref; + + + + Region rgn; + void *xrectangles; + + + + + QRegionPrivate *qt_rgn; + + }; + + + + struct QRegionData *d; + static struct QRegionData shared_empty; + static void cleanUp(QRegionData *x); +}; + + + + + + + QDataStream &operator<<(QDataStream &, const QRegion &); + QDataStream &operator>>(QDataStream &, QRegion &); + + + + QDebug operator<<(QDebug, const QRegion &); + + + + + +# 47 "/usr/include/qt4/QtGui/qmatrix.h" 2 + +# 1 "/usr/include/qt4/QtCore/qline.h" 1 +# 47 "/usr/include/qt4/QtCore/qline.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + + + +class QLine +{ +public: + inline QLine(); + inline QLine(const QPoint &pt1, const QPoint &pt2); + inline QLine(int x1, int y1, int x2, int y2); + + inline bool isNull() const; + + inline QPoint p1() const; + inline QPoint p2() const; + + inline int x1() const; + inline int y1() const; + + inline int x2() const; + inline int y2() const; + + inline int dx() const; + inline int dy() const; + + inline void translate(const QPoint &p); + inline void translate(int dx, int dy); + + inline QLine translated(const QPoint &p) const; + inline QLine translated(int dx, int dy) const; + + inline void setP1(const QPoint &p1); + inline void setP2(const QPoint &p2); + inline void setPoints(const QPoint &p1, const QPoint &p2); + inline void setLine(int x1, int y1, int x2, int y2); + + inline bool operator==(const QLine &d) const; + inline bool operator!=(const QLine &d) const { return !(*this == d); } + +private: + QPoint pt1, pt2; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QLine)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QLine"; } }; + + + + + +inline QLine::QLine() { } + +inline QLine::QLine(const QPoint &pt1_, const QPoint &pt2_) : pt1(pt1_), pt2(pt2_) { } + +inline QLine::QLine(int x1pos, int y1pos, int x2pos, int y2pos) : pt1(QPoint(x1pos, y1pos)), pt2(QPoint(x2pos, y2pos)) { } + +inline bool QLine::isNull() const +{ + return pt1 == pt2; +} + +inline int QLine::x1() const +{ + return pt1.x(); +} + +inline int QLine::y1() const +{ + return pt1.y(); +} + +inline int QLine::x2() const +{ + return pt2.x(); +} + +inline int QLine::y2() const +{ + return pt2.y(); +} + +inline QPoint QLine::p1() const +{ + return pt1; +} + +inline QPoint QLine::p2() const +{ + return pt2; +} + +inline int QLine::dx() const +{ + return pt2.x() - pt1.x(); +} + +inline int QLine::dy() const +{ + return pt2.y() - pt1.y(); +} + +inline void QLine::translate(const QPoint &point) +{ + pt1 += point; + pt2 += point; +} + +inline void QLine::translate(int adx, int ady) +{ + this->translate(QPoint(adx, ady)); +} + +inline QLine QLine::translated(const QPoint &p) const +{ + return QLine(pt1 + p, pt2 + p); +} + +inline QLine QLine::translated(int adx, int ady) const +{ + return translated(QPoint(adx, ady)); +} + +inline void QLine::setP1(const QPoint &aP1) +{ + pt1 = aP1; +} + +inline void QLine::setP2(const QPoint &aP2) +{ + pt2 = aP2; +} + +inline void QLine::setPoints(const QPoint &aP1, const QPoint &aP2) +{ + pt1 = aP1; + pt2 = aP2; +} + +inline void QLine::setLine(int aX1, int aY1, int aX2, int aY2) +{ + pt1 = QPoint(aX1, aY1); + pt2 = QPoint(aX2, aY2); +} + +inline bool QLine::operator==(const QLine &d) const +{ + return pt1 == d.pt1 && pt2 == d.pt2; +} + + + QDebug operator<<(QDebug d, const QLine &p); + + + + QDataStream &operator<<(QDataStream &, const QLine &); + QDataStream &operator>>(QDataStream &, QLine &); + + + + + +class QLineF { +public: + + enum IntersectType { NoIntersection, BoundedIntersection, UnboundedIntersection }; + + inline QLineF(); + inline QLineF(const QPointF &pt1, const QPointF &pt2); + inline QLineF(qreal x1, qreal y1, qreal x2, qreal y2); + inline QLineF(const QLine &line) : pt1(line.p1()), pt2(line.p2()) { } + + static QLineF fromPolar(qreal length, qreal angle); + + bool isNull() const; + + inline QPointF p1() const; + inline QPointF p2() const; + + inline qreal x1() const; + inline qreal y1() const; + + inline qreal x2() const; + inline qreal y2() const; + + inline qreal dx() const; + inline qreal dy() const; + + qreal length() const; + void setLength(qreal len); + + qreal angle() const; + void setAngle(qreal angle); + + qreal angleTo(const QLineF &l) const; + + QLineF unitVector() const; + QLineF normalVector() const; + + + IntersectType intersect(const QLineF &l, QPointF *intersectionPoint) const; + + qreal angle(const QLineF &l) const; + + QPointF pointAt(qreal t) const; + inline void translate(const QPointF &p); + inline void translate(qreal dx, qreal dy); + + inline QLineF translated(const QPointF &p) const; + inline QLineF translated(qreal dx, qreal dy) const; + + inline void setP1(const QPointF &p1); + inline void setP2(const QPointF &p2); + inline void setPoints(const QPointF &p1, const QPointF &p2); + inline void setLine(qreal x1, qreal y1, qreal x2, qreal y2); + + inline bool operator==(const QLineF &d) const; + inline bool operator!=(const QLineF &d) const { return !(*this == d); } + + QLine toLine() const; + +private: + QPointF pt1, pt2; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QLineF)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QLineF"; } }; + + + + + +inline QLineF::QLineF() +{ +} + +inline QLineF::QLineF(const QPointF &apt1, const QPointF &apt2) + : pt1(apt1), pt2(apt2) +{ +} + +inline QLineF::QLineF(qreal x1pos, qreal y1pos, qreal x2pos, qreal y2pos) + : pt1(x1pos, y1pos), pt2(x2pos, y2pos) +{ +} + +inline qreal QLineF::x1() const +{ + return pt1.x(); +} + +inline qreal QLineF::y1() const +{ + return pt1.y(); +} + +inline qreal QLineF::x2() const +{ + return pt2.x(); +} + +inline qreal QLineF::y2() const +{ + return pt2.y(); +} + +inline QPointF QLineF::p1() const +{ + return pt1; +} + +inline QPointF QLineF::p2() const +{ + return pt2; +} + +inline qreal QLineF::dx() const +{ + return pt2.x() - pt1.x(); +} + +inline qreal QLineF::dy() const +{ + return pt2.y() - pt1.y(); +} + +inline QLineF QLineF::normalVector() const +{ + return QLineF(p1(), p1() + QPointF(dy(), -dx())); +} + +inline void QLineF::translate(const QPointF &point) +{ + pt1 += point; + pt2 += point; +} + +inline void QLineF::translate(qreal adx, qreal ady) +{ + this->translate(QPointF(adx, ady)); +} + +inline QLineF QLineF::translated(const QPointF &p) const +{ + return QLineF(pt1 + p, pt2 + p); +} + +inline QLineF QLineF::translated(qreal adx, qreal ady) const +{ + return translated(QPointF(adx, ady)); +} + +inline void QLineF::setLength(qreal len) +{ + if (isNull()) + return; + QLineF v = unitVector(); + pt2 = QPointF(pt1.x() + v.dx() * len, pt1.y() + v.dy() * len); +} + +inline QPointF QLineF::pointAt(qreal t) const +{ + qreal vx = pt2.x() - pt1.x(); + qreal vy = pt2.y() - pt1.y(); + return QPointF(pt1.x() + vx * t, pt1.y() + vy * t); +} + +inline QLine QLineF::toLine() const +{ + return QLine(pt1.toPoint(), pt2.toPoint()); +} + + +inline void QLineF::setP1(const QPointF &aP1) +{ + pt1 = aP1; +} + +inline void QLineF::setP2(const QPointF &aP2) +{ + pt2 = aP2; +} + +inline void QLineF::setPoints(const QPointF &aP1, const QPointF &aP2) +{ + pt1 = aP1; + pt2 = aP2; +} + +inline void QLineF::setLine(qreal aX1, qreal aY1, qreal aX2, qreal aY2) +{ + pt1 = QPointF(aX1, aY1); + pt2 = QPointF(aX2, aY2); +} + + +inline bool QLineF::operator==(const QLineF &d) const +{ + return pt1 == d.pt1 && pt2 == d.pt2; +} + + + + + QDebug operator<<(QDebug d, const QLineF &p); + + + + QDataStream &operator<<(QDataStream &, const QLineF &); + QDataStream &operator>>(QDataStream &, QLineF &); + + + + + +# 49 "/usr/include/qt4/QtGui/qmatrix.h" 2 + + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QPainterPath; +class QVariant; + +class QMatrix +{ +public: + inline explicit QMatrix(Qt::Initialization) {} + QMatrix(); + QMatrix(qreal m11, qreal m12, qreal m21, qreal m22, + qreal dx, qreal dy); + QMatrix(const QMatrix &matrix); + + void setMatrix(qreal m11, qreal m12, qreal m21, qreal m22, + qreal dx, qreal dy); + + qreal m11() const { return _m11; } + qreal m12() const { return _m12; } + qreal m21() const { return _m21; } + qreal m22() const { return _m22; } + qreal dx() const { return _dx; } + qreal dy() const { return _dy; } + + void map(int x, int y, int *tx, int *ty) const; + void map(qreal x, qreal y, qreal *tx, qreal *ty) const; + QRect mapRect(const QRect &) const; + QRectF mapRect(const QRectF &) const; + + QPoint map(const QPoint &p) const; + QPointF map(const QPointF&p) const; + QLine map(const QLine &l) const; + QLineF map(const QLineF &l) const; + QPolygonF map(const QPolygonF &a) const; + QPolygon map(const QPolygon &a) const; + QRegion map(const QRegion &r) const; + QPainterPath map(const QPainterPath &p) const; + QPolygon mapToPolygon(const QRect &r) const; + + void reset(); + inline bool isIdentity() const; + + QMatrix &translate(qreal dx, qreal dy); + QMatrix &scale(qreal sx, qreal sy); + QMatrix &shear(qreal sh, qreal sv); + QMatrix &rotate(qreal a); + + bool isInvertible() const { return !qFuzzyIsNull(_m11*_m22 - _m12*_m21); } + qreal determinant() const { return _m11*_m22 - _m12*_m21; } + + qreal det() const { return _m11*_m22 - _m12*_m21; } + + + QMatrix inverted(bool *invertible = 0) const; + + bool operator==(const QMatrix &) const; + bool operator!=(const QMatrix &) const; + + QMatrix &operator*=(const QMatrix &); + QMatrix operator*(const QMatrix &o) const; + + QMatrix &operator=(const QMatrix &); + + operator QVariant() const; + + + + + + + +private: + inline QMatrix(bool) + : _m11(1.) + , _m12(0.) + , _m21(0.) + , _m22(1.) + , _dx(0.) + , _dy(0.) {} + inline QMatrix(qreal am11, qreal am12, qreal am21, qreal am22, qreal adx, qreal ady, bool) + : _m11(am11) + , _m12(am12) + , _m21(am21) + , _m22(am22) + , _dx(adx) + , _dy(ady) {} + friend class QTransform; + qreal _m11, _m12; + qreal _m21, _m22; + qreal _dx, _dy; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QMatrix)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QMatrix"; } }; + + + inline QPoint operator*(const QPoint &p, const QMatrix &m) +{ return m.map(p); } + inline QPointF operator*(const QPointF &p, const QMatrix &m) +{ return m.map(p); } + inline QLineF operator*(const QLineF &l, const QMatrix &m) +{ return m.map(l); } + inline QLine operator*(const QLine &l, const QMatrix &m) +{ return m.map(l); } + inline QPolygon operator *(const QPolygon &a, const QMatrix &m) +{ return m.map(a); } + inline QPolygonF operator *(const QPolygonF &a, const QMatrix &m) +{ return m.map(a); } + inline QRegion operator *(const QRegion &r, const QMatrix &m) +{ return m.map(r); } + QPainterPath operator *(const QPainterPath &p, const QMatrix &m); + +inline bool QMatrix::isIdentity() const +{ + return qFuzzyIsNull(_m11 - 1) && qFuzzyIsNull(_m22 - 1) && qFuzzyIsNull(_m12) + && qFuzzyIsNull(_m21) && qFuzzyIsNull(_dx) && qFuzzyIsNull(_dy); +} + +inline bool qFuzzyCompare(const QMatrix& m1, const QMatrix& m2) +{ + return qFuzzyCompare(m1.m11(), m2.m11()) + && qFuzzyCompare(m1.m12(), m2.m12()) + && qFuzzyCompare(m1.m21(), m2.m21()) + && qFuzzyCompare(m1.m22(), m2.m22()) + && qFuzzyCompare(m1.dx(), m2.dx()) + && qFuzzyCompare(m1.dy(), m2.dy()); +} + + + + + + + + QDataStream &operator<<(QDataStream &, const QMatrix &); + QDataStream &operator>>(QDataStream &, QMatrix &); + + + + QDebug operator<<(QDebug, const QMatrix &); +# 202 "/usr/include/qt4/QtGui/qmatrix.h" + + + +# 51 "/usr/include/qt4/QtGui/qbrush.h" 2 +# 1 "/usr/include/qt4/QtGui/qtransform.h" 1 +# 45 "/usr/include/qt4/QtGui/qtransform.h" +# 1 "/usr/include/qt4/QtGui/qpainterpath.h" 1 +# 52 "/usr/include/qt4/QtGui/qpainterpath.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QFont; +class QPainterPathPrivate; +struct QPainterPathPrivateDeleter; +class QPainterPathData; +class QPainterPathStrokerPrivate; +class QPolygonF; +class QRegion; +class QVectorPath; + +class QPainterPath +{ +public: + enum ElementType { + MoveToElement, + LineToElement, + CurveToElement, + CurveToDataElement + }; + + class Element { + public: + qreal x; + qreal y; + ElementType type; + + bool isMoveTo() const { return type == MoveToElement; } + bool isLineTo() const { return type == LineToElement; } + bool isCurveTo() const { return type == CurveToElement; } + + operator QPointF () const { return QPointF(x, y); } + + bool operator==(const Element &e) const { return qFuzzyCompare(x, e.x) + && qFuzzyCompare(y, e.y) && type == e.type; } + inline bool operator!=(const Element &e) const { return !operator==(e); } + }; + + QPainterPath(); + explicit QPainterPath(const QPointF &startPoint); + QPainterPath(const QPainterPath &other); + QPainterPath &operator=(const QPainterPath &other); + + inline QPainterPath &operator=(QPainterPath &&other) + { qSwap(d_ptr, other.d_ptr); return *this; } + + ~QPainterPath(); + inline void swap(QPainterPath &other) { d_ptr.swap(other.d_ptr); } + + void closeSubpath(); + + void moveTo(const QPointF &p); + inline void moveTo(qreal x, qreal y); + + void lineTo(const QPointF &p); + inline void lineTo(qreal x, qreal y); + + void arcMoveTo(const QRectF &rect, qreal angle); + inline void arcMoveTo(qreal x, qreal y, qreal w, qreal h, qreal angle); + + void arcTo(const QRectF &rect, qreal startAngle, qreal arcLength); + inline void arcTo(qreal x, qreal y, qreal w, qreal h, qreal startAngle, qreal arcLength); + + void cubicTo(const QPointF &ctrlPt1, const QPointF &ctrlPt2, const QPointF &endPt); + inline void cubicTo(qreal ctrlPt1x, qreal ctrlPt1y, qreal ctrlPt2x, qreal ctrlPt2y, + qreal endPtx, qreal endPty); + void quadTo(const QPointF &ctrlPt, const QPointF &endPt); + inline void quadTo(qreal ctrlPtx, qreal ctrlPty, qreal endPtx, qreal endPty); + + QPointF currentPosition() const; + + void addRect(const QRectF &rect); + inline void addRect(qreal x, qreal y, qreal w, qreal h); + void addEllipse(const QRectF &rect); + inline void addEllipse(qreal x, qreal y, qreal w, qreal h); + inline void addEllipse(const QPointF ¢er, qreal rx, qreal ry); + void addPolygon(const QPolygonF &polygon); + void addText(const QPointF &point, const QFont &f, const QString &text); + inline void addText(qreal x, qreal y, const QFont &f, const QString &text); + void addPath(const QPainterPath &path); + void addRegion(const QRegion ®ion); + + void addRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, + Qt::SizeMode mode = Qt::AbsoluteSize); + inline void addRoundedRect(qreal x, qreal y, qreal w, qreal h, + qreal xRadius, qreal yRadius, + Qt::SizeMode mode = Qt::AbsoluteSize); + + void addRoundRect(const QRectF &rect, int xRnd, int yRnd); + inline void addRoundRect(qreal x, qreal y, qreal w, qreal h, + int xRnd, int yRnd); + inline void addRoundRect(const QRectF &rect, int roundness); + inline void addRoundRect(qreal x, qreal y, qreal w, qreal h, + int roundness); + + void connectPath(const QPainterPath &path); + + bool contains(const QPointF &pt) const; + bool contains(const QRectF &rect) const; + bool intersects(const QRectF &rect) const; + + void translate(qreal dx, qreal dy); + inline void translate(const QPointF &offset); + + QPainterPath translated(qreal dx, qreal dy) const; + inline QPainterPath translated(const QPointF &offset) const; + + QRectF boundingRect() const; + QRectF controlPointRect() const; + + Qt::FillRule fillRule() const; + void setFillRule(Qt::FillRule fillRule); + + inline bool isEmpty() const; + + QPainterPath toReversed() const; + QList toSubpathPolygons(const QMatrix &matrix = QMatrix()) const; + QList toFillPolygons(const QMatrix &matrix = QMatrix()) const; + QPolygonF toFillPolygon(const QMatrix &matrix = QMatrix()) const; + QList toSubpathPolygons(const QTransform &matrix) const; + QList toFillPolygons(const QTransform &matrix) const; + QPolygonF toFillPolygon(const QTransform &matrix) const; + + inline int elementCount() const; + inline const QPainterPath::Element &elementAt(int i) const; + inline void setElementPositionAt(int i, qreal x, qreal y); + + qreal length() const; + qreal percentAtLength(qreal t) const; + QPointF pointAtPercent(qreal t) const; + qreal angleAtPercent(qreal t) const; + qreal slopeAtPercent(qreal t) const; + + bool intersects(const QPainterPath &p) const; + bool contains(const QPainterPath &p) const; + QPainterPath united(const QPainterPath &r) const; + QPainterPath intersected(const QPainterPath &r) const; + QPainterPath subtracted(const QPainterPath &r) const; + QPainterPath subtractedInverted(const QPainterPath &r) const; + + QPainterPath simplified() const; + + bool operator==(const QPainterPath &other) const; + bool operator!=(const QPainterPath &other) const; + + QPainterPath operator&(const QPainterPath &other) const; + QPainterPath operator|(const QPainterPath &other) const; + QPainterPath operator+(const QPainterPath &other) const; + QPainterPath operator-(const QPainterPath &other) const; + QPainterPath &operator&=(const QPainterPath &other); + QPainterPath &operator|=(const QPainterPath &other); + QPainterPath &operator+=(const QPainterPath &other); + QPainterPath &operator-=(const QPainterPath &other); + +private: + QScopedPointer d_ptr; + + inline void ensureData() { if (!d_ptr) ensureData_helper(); } + void ensureData_helper(); + inline void detach(); + void detach_helper(); + void setDirty(bool); + void computeBoundingRect() const; + void computeControlPointRect() const; + + QPainterPathData *d_func() const { return reinterpret_cast(d_ptr.data()); } + + friend class QPainterPathData; + friend class QPainterPathStroker; + friend class QPainterPathStrokerPrivate; + friend class QMatrix; + friend class QTransform; + friend class QVectorPath; + friend const QVectorPath &qtVectorPathForPath(const QPainterPath &); + + + friend QDataStream &operator<<(QDataStream &, const QPainterPath &); + friend QDataStream &operator>>(QDataStream &, QPainterPath &); + +}; + +class QPainterPathPrivate +{ +public: + friend class QPainterPath; + friend class QPainterPathData; + friend class QPainterPathStroker; + friend class QPainterPathStrokerPrivate; + friend class QMatrix; + friend class QTransform; + friend class QVectorPath; + friend struct QPainterPathPrivateDeleter; + + friend QDataStream &operator<<(QDataStream &, const QPainterPath &); + friend QDataStream &operator>>(QDataStream &, QPainterPath &); + +private: + QAtomicInt ref; + QVector elements; +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QPainterPath::Element)>sizeof(void*)), isPointer = false, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QPainterPath::Element"; } }; + + + QDataStream &operator<<(QDataStream &, const QPainterPath &); + QDataStream &operator>>(QDataStream &, QPainterPath &); + + +class QPainterPathStroker +{ + inline QPainterPathStrokerPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QPainterPathStrokerPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QPainterPathStrokerPrivate; +public: + QPainterPathStroker(); + ~QPainterPathStroker(); + + void setWidth(qreal width); + qreal width() const; + + void setCapStyle(Qt::PenCapStyle style); + Qt::PenCapStyle capStyle() const; + + void setJoinStyle(Qt::PenJoinStyle style); + Qt::PenJoinStyle joinStyle() const; + + void setMiterLimit(qreal length); + qreal miterLimit() const; + + void setCurveThreshold(qreal threshold); + qreal curveThreshold() const; + + void setDashPattern(Qt::PenStyle); + void setDashPattern(const QVector &dashPattern); + QVector dashPattern() const; + + void setDashOffset(qreal offset); + qreal dashOffset() const; + + QPainterPath createStroke(const QPainterPath &path) const; + +private: + QPainterPathStroker(const QPainterPathStroker &); QPainterPathStroker &operator=(const QPainterPathStroker &); + + friend class QX11PaintEngine; + + QScopedPointer d_ptr; +}; + +inline void QPainterPath::moveTo(qreal x, qreal y) +{ + moveTo(QPointF(x, y)); +} + +inline void QPainterPath::lineTo(qreal x, qreal y) +{ + lineTo(QPointF(x, y)); +} + +inline void QPainterPath::arcTo(qreal x, qreal y, qreal w, qreal h, qreal startAngle, qreal arcLength) +{ + arcTo(QRectF(x, y, w, h), startAngle, arcLength); +} + +inline void QPainterPath::arcMoveTo(qreal x, qreal y, qreal w, qreal h, qreal angle) +{ + arcMoveTo(QRectF(x, y, w, h), angle); +} + +inline void QPainterPath::cubicTo(qreal ctrlPt1x, qreal ctrlPt1y, qreal ctrlPt2x, qreal ctrlPt2y, + qreal endPtx, qreal endPty) +{ + cubicTo(QPointF(ctrlPt1x, ctrlPt1y), QPointF(ctrlPt2x, ctrlPt2y), + QPointF(endPtx, endPty)); +} + +inline void QPainterPath::quadTo(qreal ctrlPtx, qreal ctrlPty, qreal endPtx, qreal endPty) +{ + quadTo(QPointF(ctrlPtx, ctrlPty), QPointF(endPtx, endPty)); +} + +inline void QPainterPath::addEllipse(qreal x, qreal y, qreal w, qreal h) +{ + addEllipse(QRectF(x, y, w, h)); +} + +inline void QPainterPath::addEllipse(const QPointF ¢er, qreal rx, qreal ry) +{ + addEllipse(QRectF(center.x() - rx, center.y() - ry, 2 * rx, 2 * ry)); +} + +inline void QPainterPath::addRect(qreal x, qreal y, qreal w, qreal h) +{ + addRect(QRectF(x, y, w, h)); +} + +inline void QPainterPath::addRoundedRect(qreal x, qreal y, qreal w, qreal h, + qreal xRadius, qreal yRadius, + Qt::SizeMode mode) +{ + addRoundedRect(QRectF(x, y, w, h), xRadius, yRadius, mode); +} + +inline void QPainterPath::addRoundRect(qreal x, qreal y, qreal w, qreal h, + int xRnd, int yRnd) +{ + addRoundRect(QRectF(x, y, w, h), xRnd, yRnd); +} + +inline void QPainterPath::addRoundRect(const QRectF &rect, + int roundness) +{ + int xRnd = roundness; + int yRnd = roundness; + if (rect.width() > rect.height()) + xRnd = int(roundness * rect.height()/rect.width()); + else + yRnd = int(roundness * rect.width()/rect.height()); + addRoundRect(rect, xRnd, yRnd); +} + +inline void QPainterPath::addRoundRect(qreal x, qreal y, qreal w, qreal h, + int roundness) +{ + addRoundRect(QRectF(x, y, w, h), roundness); +} + +inline void QPainterPath::addText(qreal x, qreal y, const QFont &f, const QString &text) +{ + addText(QPointF(x, y), f, text); +} + +inline void QPainterPath::translate(const QPointF &offset) +{ translate(offset.x(), offset.y()); } + +inline QPainterPath QPainterPath::translated(const QPointF &offset) const +{ return translated(offset.x(), offset.y()); } + +inline bool QPainterPath::isEmpty() const +{ + return !d_ptr || (d_ptr->elements.size() == 1 && d_ptr->elements.first().type == MoveToElement); +} + +inline int QPainterPath::elementCount() const +{ + return d_ptr ? d_ptr->elements.size() : 0; +} + +inline const QPainterPath::Element &QPainterPath::elementAt(int i) const +{ + ((!(d_ptr)) ? qt_assert("d_ptr","/usr/include/qt4/QtGui/qpainterpath.h",404) : qt_noop()); + ((!(i >= 0 && i < elementCount())) ? qt_assert("i >= 0 && i < elementCount()","/usr/include/qt4/QtGui/qpainterpath.h",405) : qt_noop()); + return d_ptr->elements.at(i); +} + +inline void QPainterPath::setElementPositionAt(int i, qreal x, qreal y) +{ + ((!(d_ptr)) ? qt_assert("d_ptr","/usr/include/qt4/QtGui/qpainterpath.h",411) : qt_noop()); + ((!(i >= 0 && i < elementCount())) ? qt_assert("i >= 0 && i < elementCount()","/usr/include/qt4/QtGui/qpainterpath.h",412) : qt_noop()); + detach(); + QPainterPath::Element &e = d_ptr->elements[i]; + e.x = x; + e.y = y; +} + + +inline void QPainterPath::detach() +{ + if (d_ptr->ref != 1) + detach_helper(); + setDirty(true); +} + + + QDebug operator<<(QDebug, const QPainterPath &); + + + + + +# 46 "/usr/include/qt4/QtGui/qtransform.h" 2 +# 57 "/usr/include/qt4/QtGui/qtransform.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QVariant; + +class QTransform +{ +public: + enum TransformationType { + TxNone = 0x00, + TxTranslate = 0x01, + TxScale = 0x02, + TxRotate = 0x04, + TxShear = 0x08, + TxProject = 0x10 + }; + + inline explicit QTransform(Qt::Initialization) : affine(Qt::Uninitialized) {} + QTransform(); + QTransform(qreal h11, qreal h12, qreal h13, + qreal h21, qreal h22, qreal h23, + qreal h31, qreal h32, qreal h33 = 1.0); + QTransform(qreal h11, qreal h12, qreal h21, + qreal h22, qreal dx, qreal dy); + explicit QTransform(const QMatrix &mtx); + + bool isAffine() const; + bool isIdentity() const; + bool isInvertible() const; + bool isScaling() const; + bool isRotating() const; + bool isTranslating() const; + + TransformationType type() const; + + inline qreal determinant() const; + qreal det() const; + + qreal m11() const; + qreal m12() const; + qreal m13() const; + qreal m21() const; + qreal m22() const; + qreal m23() const; + qreal m31() const; + qreal m32() const; + qreal m33() const; + qreal dx() const; + qreal dy() const; + + void setMatrix(qreal m11, qreal m12, qreal m13, + qreal m21, qreal m22, qreal m23, + qreal m31, qreal m32, qreal m33); + + QTransform inverted(bool *invertible = 0) const; + QTransform adjoint() const; + QTransform transposed() const; + + QTransform &translate(qreal dx, qreal dy); + QTransform &scale(qreal sx, qreal sy); + QTransform &shear(qreal sh, qreal sv); + QTransform &rotate(qreal a, Qt::Axis axis = Qt::ZAxis); + QTransform &rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis); + + static bool squareToQuad(const QPolygonF &square, QTransform &result); + static bool quadToSquare(const QPolygonF &quad, QTransform &result); + static bool quadToQuad(const QPolygonF &one, + const QPolygonF &two, + QTransform &result); + + bool operator==(const QTransform &) const; + bool operator!=(const QTransform &) const; + + QTransform &operator*=(const QTransform &); + QTransform operator*(const QTransform &o) const; + + QTransform &operator=(const QTransform &); + + operator QVariant() const; + + void reset(); + QPoint map(const QPoint &p) const; + QPointF map(const QPointF &p) const; + QLine map(const QLine &l) const; + QLineF map(const QLineF &l) const; + QPolygonF map(const QPolygonF &a) const; + QPolygon map(const QPolygon &a) const; + QRegion map(const QRegion &r) const; + QPainterPath map(const QPainterPath &p) const; + QPolygon mapToPolygon(const QRect &r) const; + QRect mapRect(const QRect &) const; + QRectF mapRect(const QRectF &) const; + void map(int x, int y, int *tx, int *ty) const; + void map(qreal x, qreal y, qreal *tx, qreal *ty) const; + + const QMatrix &toAffine() const; + + QTransform &operator*=(qreal div); + QTransform &operator/=(qreal div); + QTransform &operator+=(qreal div); + QTransform &operator-=(qreal div); + + static QTransform fromTranslate(qreal dx, qreal dy); + static QTransform fromScale(qreal dx, qreal dy); + +private: + inline QTransform(qreal h11, qreal h12, qreal h13, + qreal h21, qreal h22, qreal h23, + qreal h31, qreal h32, qreal h33, bool) + : affine(h11, h12, h21, h22, h31, h32, true) + , m_13(h13), m_23(h23), m_33(h33) + , m_type(TxNone) + , m_dirty(TxProject) {} + inline QTransform(bool) + : affine(true) + , m_13(0), m_23(0), m_33(1) + , m_type(TxNone) + , m_dirty(TxNone) {} + inline TransformationType inline_type() const; + QMatrix affine; + qreal m_13; + qreal m_23; + qreal m_33; + + mutable uint m_type : 5; + mutable uint m_dirty : 5; + + class Private; + Private *d; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QTransform)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QTransform"; } }; + + +inline QTransform::TransformationType QTransform::inline_type() const +{ + if (m_dirty == TxNone) + return static_cast(m_type); + return type(); +} + +inline bool QTransform::isAffine() const +{ + return inline_type() < TxProject; +} +inline bool QTransform::isIdentity() const +{ + return inline_type() == TxNone; +} + +inline bool QTransform::isInvertible() const +{ + return !qFuzzyIsNull(determinant()); +} + +inline bool QTransform::isScaling() const +{ + return type() >= TxScale; +} +inline bool QTransform::isRotating() const +{ + return inline_type() >= TxRotate; +} + +inline bool QTransform::isTranslating() const +{ + return inline_type() >= TxTranslate; +} + +inline qreal QTransform::determinant() const +{ + return affine._m11*(m_33*affine._m22-affine._dy*m_23) - + affine._m21*(m_33*affine._m12-affine._dy*m_13)+affine._dx*(m_23*affine._m12-affine._m22*m_13); +} +inline qreal QTransform::det() const +{ + return determinant(); +} +inline qreal QTransform::m11() const +{ + return affine._m11; +} +inline qreal QTransform::m12() const +{ + return affine._m12; +} +inline qreal QTransform::m13() const +{ + return m_13; +} +inline qreal QTransform::m21() const +{ + return affine._m21; +} +inline qreal QTransform::m22() const +{ + return affine._m22; +} +inline qreal QTransform::m23() const +{ + return m_23; +} +inline qreal QTransform::m31() const +{ + return affine._dx; +} +inline qreal QTransform::m32() const +{ + return affine._dy; +} +inline qreal QTransform::m33() const +{ + return m_33; +} +inline qreal QTransform::dx() const +{ + return affine._dx; +} +inline qreal QTransform::dy() const +{ + return affine._dy; +} + +inline QTransform &QTransform::operator*=(qreal num) +{ + if (num == 1.) + return *this; + affine._m11 *= num; + affine._m12 *= num; + m_13 *= num; + affine._m21 *= num; + affine._m22 *= num; + m_23 *= num; + affine._dx *= num; + affine._dy *= num; + m_33 *= num; + if (m_dirty < TxScale) + m_dirty = TxScale; + return *this; +} +inline QTransform &QTransform::operator/=(qreal div) +{ + if (div == 0) + return *this; + div = 1/div; + return operator*=(div); +} +inline QTransform &QTransform::operator+=(qreal num) +{ + if (num == 0) + return *this; + affine._m11 += num; + affine._m12 += num; + m_13 += num; + affine._m21 += num; + affine._m22 += num; + m_23 += num; + affine._dx += num; + affine._dy += num; + m_33 += num; + m_dirty = TxProject; + return *this; +} +inline QTransform &QTransform::operator-=(qreal num) +{ + if (num == 0) + return *this; + affine._m11 -= num; + affine._m12 -= num; + m_13 -= num; + affine._m21 -= num; + affine._m22 -= num; + m_23 -= num; + affine._dx -= num; + affine._dy -= num; + m_33 -= num; + m_dirty = TxProject; + return *this; +} + +inline bool qFuzzyCompare(const QTransform& t1, const QTransform& t2) +{ + return qFuzzyCompare(t1.m11(), t2.m11()) + && qFuzzyCompare(t1.m12(), t2.m12()) + && qFuzzyCompare(t1.m13(), t2.m13()) + && qFuzzyCompare(t1.m21(), t2.m21()) + && qFuzzyCompare(t1.m22(), t2.m22()) + && qFuzzyCompare(t1.m23(), t2.m23()) + && qFuzzyCompare(t1.m31(), t2.m31()) + && qFuzzyCompare(t1.m32(), t2.m32()) + && qFuzzyCompare(t1.m33(), t2.m33()); +} + + + + + QDataStream &operator<<(QDataStream &, const QTransform &); + QDataStream &operator>>(QDataStream &, QTransform &); + + + + QDebug operator<<(QDebug, const QTransform &); + + + + + inline QPoint operator*(const QPoint &p, const QTransform &m) +{ return m.map(p); } + inline QPointF operator*(const QPointF &p, const QTransform &m) +{ return m.map(p); } + inline QLineF operator*(const QLineF &l, const QTransform &m) +{ return m.map(l); } + inline QLine operator*(const QLine &l, const QTransform &m) +{ return m.map(l); } + inline QPolygon operator *(const QPolygon &a, const QTransform &m) +{ return m.map(a); } + inline QPolygonF operator *(const QPolygonF &a, const QTransform &m) +{ return m.map(a); } + inline QRegion operator *(const QRegion &r, const QTransform &m) +{ return m.map(r); } + inline QPainterPath operator *(const QPainterPath &p, const QTransform &m) +{ return m.map(p); } + + inline QTransform operator *(const QTransform &a, qreal n) +{ QTransform t(a); t *= n; return t; } + inline QTransform operator /(const QTransform &a, qreal n) +{ QTransform t(a); t /= n; return t; } + inline QTransform operator +(const QTransform &a, qreal n) +{ QTransform t(a); t += n; return t; } + inline QTransform operator -(const QTransform &a, qreal n) +{ QTransform t(a); t -= n; return t; } + + + + +# 52 "/usr/include/qt4/QtGui/qbrush.h" 2 +# 1 "/usr/include/qt4/QtGui/qimage.h" 1 +# 52 "/usr/include/qt4/QtGui/qimage.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QIODevice; +class QStringList; +class QMatrix; +class QTransform; +class QVariant; +template class QList; +template class QVector; + +struct QImageData; +class QImageDataMisc; + +class QImageTextKeyLang { +public: + QImageTextKeyLang(const char* k, const char* l) : key(k), lang(l) { } + QImageTextKeyLang() { } + + QByteArray key; + QByteArray lang; + + bool operator< (const QImageTextKeyLang& other) const + { return key < other.key || (key==other.key && lang < other.lang); } + bool operator== (const QImageTextKeyLang& other) const + { return key==other.key && lang==other.lang; } + inline bool operator!= (const QImageTextKeyLang &other) const + { return !operator==(other); } +}; + + + +class QImage : public QPaintDevice +{ +public: + enum InvertMode { InvertRgb, InvertRgba }; + enum Format { + Format_Invalid, + Format_Mono, + Format_MonoLSB, + Format_Indexed8, + Format_RGB32, + Format_ARGB32, + Format_ARGB32_Premultiplied, + Format_RGB16, + Format_ARGB8565_Premultiplied, + Format_RGB666, + Format_ARGB6666_Premultiplied, + Format_RGB555, + Format_ARGB8555_Premultiplied, + Format_RGB888, + Format_RGB444, + Format_ARGB4444_Premultiplied, +# 119 "/usr/include/qt4/QtGui/qimage.h" + NImageFormats + + }; + + QImage(); + QImage(const QSize &size, Format format); + QImage(int width, int height, Format format); + QImage(uchar *data, int width, int height, Format format); + QImage(const uchar *data, int width, int height, Format format); + QImage(uchar *data, int width, int height, int bytesPerLine, Format format); + QImage(const uchar *data, int width, int height, int bytesPerLine, Format format); + + + explicit QImage(const char * const xpm[]); + + explicit QImage(const QString &fileName, const char *format = 0); + + explicit QImage(const char *fileName, const char *format = 0); + + + QImage(const QImage &); + ~QImage(); + + QImage &operator=(const QImage &); + + inline QImage &operator=(QImage &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QImage &other) { qSwap(d, other.d); } + + bool isNull() const; + + int devType() const; + + bool operator==(const QImage &) const; + bool operator!=(const QImage &) const; + operator QVariant() const; + void detach(); + bool isDetached() const; + + QImage copy(const QRect &rect = QRect()) const; + inline QImage copy(int x, int y, int w, int h) const + { return copy(QRect(x, y, w, h)); } + + Format format() const; + + QImage convertToFormat(Format f, Qt::ImageConversionFlags flags = Qt::AutoColor) const __attribute__ ((warn_unused_result)); + QImage convertToFormat(Format f, const QVector &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const __attribute__ ((warn_unused_result)); + + int width() const; + int height() const; + QSize size() const; + QRect rect() const; + + int depth() const; + + int numColors() const; + + int colorCount() const; + int bitPlaneCount() const; + + QRgb color(int i) const; + void setColor(int i, QRgb c); + + void setNumColors(int); + + void setColorCount(int); + + bool allGray() const; + bool isGrayscale() const; + + uchar *bits(); + const uchar *bits() const; + const uchar *constBits() const; + + int numBytes() const; + + int byteCount() const; + + uchar *scanLine(int); + const uchar *scanLine(int) const; + const uchar *constScanLine(int) const; + int bytesPerLine() const; + + bool valid(int x, int y) const; + bool valid(const QPoint &pt) const; + + int pixelIndex(int x, int y) const; + int pixelIndex(const QPoint &pt) const; + + QRgb pixel(int x, int y) const; + QRgb pixel(const QPoint &pt) const; + + void setPixel(int x, int y, uint index_or_rgb); + void setPixel(const QPoint &pt, uint index_or_rgb); + + QVector colorTable() const; + void setColorTable(const QVector colors); + + void fill(uint pixel); + void fill(const QColor &color); + void fill(Qt::GlobalColor color); + + + bool hasAlphaChannel() const; + void setAlphaChannel(const QImage &alphaChannel); + QImage alphaChannel() const; + QImage createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const; + + QImage createHeuristicMask(bool clipTight = true) const; + + QImage createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const; + + inline QImage scaled(int w, int h, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, + Qt::TransformationMode mode = Qt::FastTransformation) const + { return scaled(QSize(w, h), aspectMode, mode); } + QImage scaled(const QSize &s, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, + Qt::TransformationMode mode = Qt::FastTransformation) const; + QImage scaledToWidth(int w, Qt::TransformationMode mode = Qt::FastTransformation) const; + QImage scaledToHeight(int h, Qt::TransformationMode mode = Qt::FastTransformation) const; + QImage transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; + static QMatrix trueMatrix(const QMatrix &, int w, int h); + QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; + static QTransform trueMatrix(const QTransform &, int w, int h); + QImage mirrored(bool horizontally = false, bool vertically = true) const; + QImage rgbSwapped() const; + void invertPixels(InvertMode = InvertRgb); + + + bool load(QIODevice *device, const char* format); + bool load(const QString &fileName, const char* format=0); + bool loadFromData(const uchar *buf, int len, const char *format = 0); + inline bool loadFromData(const QByteArray &data, const char* aformat=0) + { return loadFromData(reinterpret_cast(data.constData()), data.size(), aformat); } + + bool save(const QString &fileName, const char* format=0, int quality=-1) const; + bool save(QIODevice *device, const char* format=0, int quality=-1) const; + + static QImage fromData(const uchar *data, int size, const char *format = 0); + inline static QImage fromData(const QByteArray &data, const char *format = 0) + { return fromData(reinterpret_cast(data.constData()), data.size(), format); } + + int serialNumber() const; + qint64 cacheKey() const; + + QPaintEngine *paintEngine() const; + + + int dotsPerMeterX() const; + int dotsPerMeterY() const; + void setDotsPerMeterX(int); + void setDotsPerMeterY(int); + QPoint offset() const; + void setOffset(const QPoint&); + + QStringList textKeys() const; + QString text(const QString &key = QString()) const; + void setText(const QString &key, const QString &value); + + + QString text(const char* key, const char* lang=0) const; + QList textList() const; + QStringList textLanguages() const; + QString text(const QImageTextKeyLang&) const; + void setText(const char* key, const char* lang, const QString&); +# 331 "/usr/include/qt4/QtGui/qimage.h" +protected: + virtual int metric(PaintDeviceMetric metric) const; + +private: + friend class QWSOnScreenSurface; + QImageData *d; + + friend class QRasterPixmapData; + friend class QBlittablePixmapData; + friend class QPixmapCacheEntry; + friend qint64 qt_image_id(const QImage &image); + friend const QVector *qt_image_colortable(const QImage &image); + +public: + typedef QImageData * DataPtr; + inline DataPtr &data_ptr() { return d; } +}; + +template <> inline bool qIsDetached(QImage &t) { return t.isDetached(); } template <> inline void qSwap(QImage &value1, QImage &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QImage>(::QImage &value1, ::QImage &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QImage)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QImage"; } }; + + + + inline bool QImage::valid(const QPoint &pt) const { return valid(pt.x(), pt.y()); } + inline int QImage::pixelIndex(const QPoint &pt) const { return pixelIndex(pt.x(), pt.y());} + inline QRgb QImage::pixel(const QPoint &pt) const { return pixel(pt.x(), pt.y()); } + inline void QImage::setPixel(const QPoint &pt, uint index_or_rgb) { setPixel(pt.x(), pt.y(), index_or_rgb); } + + + + + QDataStream &operator<<(QDataStream &, const QImage &); + QDataStream &operator>>(QDataStream &, QImage &); + + + + + + + + + + +# 53 "/usr/include/qt4/QtGui/qbrush.h" 2 +# 1 "/usr/include/qt4/QtGui/qpixmap.h" 1 +# 49 "/usr/include/qt4/QtGui/qpixmap.h" +# 1 "/usr/include/qt4/QtCore/qsharedpointer.h" 1 +# 47 "/usr/include/qt4/QtCore/qsharedpointer.h" +# 1 "/usr/include/qt4/QtCore/qshareddata.h" 1 +# 48 "/usr/include/qt4/QtCore/qshareddata.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +template class QSharedDataPointer; + +class QSharedData +{ +public: + mutable QAtomicInt ref; + + inline QSharedData() : ref(0) { } + inline QSharedData(const QSharedData &) : ref(0) { } + +private: + + QSharedData &operator=(const QSharedData &); +}; + +template class QSharedDataPointer +{ +public: + typedef T Type; + typedef T *pointer; + + inline void detach() { if (d && d->ref != 1) detach_helper(); } + inline T &operator*() { detach(); return *d; } + inline const T &operator*() const { return *d; } + inline T *operator->() { detach(); return d; } + inline const T *operator->() const { return d; } + inline operator T *() { detach(); return d; } + inline operator const T *() const { return d; } + inline T *data() { detach(); return d; } + inline const T *data() const { return d; } + inline const T *constData() const { return d; } + + inline bool operator==(const QSharedDataPointer &other) const { return d == other.d; } + inline bool operator!=(const QSharedDataPointer &other) const { return d != other.d; } + + inline QSharedDataPointer() { d = 0; } + inline ~QSharedDataPointer() { if (d && !d->ref.deref()) delete d; } + + explicit QSharedDataPointer(T *data); + inline QSharedDataPointer(const QSharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } + inline QSharedDataPointer & operator=(const QSharedDataPointer &o) { + if (o.d != d) { + if (o.d) + o.d->ref.ref(); + T *old = d; + d = o.d; + if (old && !old->ref.deref()) + delete old; + } + return *this; + } + inline QSharedDataPointer &operator=(T *o) { + if (o != d) { + if (o) + o->ref.ref(); + T *old = d; + d = o; + if (old && !old->ref.deref()) + delete old; + } + return *this; + } + + QSharedDataPointer(QSharedDataPointer &&o) : d(o.d) { o.d = 0; } + inline QSharedDataPointer &operator=(QSharedDataPointer &&other) + { qSwap(d, other.d); return *this; } + + + inline bool operator!() const { return !d; } + + inline void swap(QSharedDataPointer &other) + { qSwap(d, other.d); } + +protected: + T *clone(); + +private: + void detach_helper(); + + T *d; +}; + +template class QExplicitlySharedDataPointer +{ +public: + typedef T Type; + typedef T *pointer; + + inline T &operator*() const { return *d; } + inline T *operator->() { return d; } + inline T *operator->() const { return d; } + inline T *data() const { return d; } + inline const T *constData() const { return d; } + + inline void detach() { if (d && d->ref != 1) detach_helper(); } + + inline void reset() + { + if(d && !d->ref.deref()) + delete d; + + d = 0; + } + + inline operator bool () const { return d != 0; } + + inline bool operator==(const QExplicitlySharedDataPointer &other) const { return d == other.d; } + inline bool operator!=(const QExplicitlySharedDataPointer &other) const { return d != other.d; } + inline bool operator==(const T *ptr) const { return d == ptr; } + inline bool operator!=(const T *ptr) const { return d != ptr; } + + inline QExplicitlySharedDataPointer() { d = 0; } + inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; } + + explicit QExplicitlySharedDataPointer(T *data); + inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } + + template + inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(static_cast(o.data())) + { + if(d) + d->ref.ref(); + } + + inline QExplicitlySharedDataPointer & operator=(const QExplicitlySharedDataPointer &o) { + if (o.d != d) { + if (o.d) + o.d->ref.ref(); + T *old = d; + d = o.d; + if (old && !old->ref.deref()) + delete old; + } + return *this; + } + inline QExplicitlySharedDataPointer &operator=(T *o) { + if (o != d) { + if (o) + o->ref.ref(); + T *old = d; + d = o; + if (old && !old->ref.deref()) + delete old; + } + return *this; + } + + inline QExplicitlySharedDataPointer(QExplicitlySharedDataPointer &&o) : d(o.d) { o.d = 0; } + inline QExplicitlySharedDataPointer &operator=(QExplicitlySharedDataPointer &&other) + { qSwap(d, other.d); return *this; } + + + inline bool operator!() const { return !d; } + + inline void swap(QExplicitlySharedDataPointer &other) + { qSwap(d, other.d); } + +protected: + T *clone(); + +private: + void detach_helper(); + + T *d; +}; + +template +inline QSharedDataPointer::QSharedDataPointer(T *adata) : d(adata) +{ if (d) d->ref.ref(); } + +template +inline T *QSharedDataPointer::clone() +{ + return new T(*d); +} + +template + void QSharedDataPointer::detach_helper() +{ + T *x = clone(); + x->ref.ref(); + if (!d->ref.deref()) + delete d; + d = x; +} + +template +inline T *QExplicitlySharedDataPointer::clone() +{ + return new T(*d); +} + +template + void QExplicitlySharedDataPointer::detach_helper() +{ + T *x = clone(); + x->ref.ref(); + if (!d->ref.deref()) + delete d; + d = x; +} + +template +inline QExplicitlySharedDataPointer::QExplicitlySharedDataPointer(T *adata) : d(adata) +{ if (d) d->ref.ref(); } + +template +inline void qSwap(QSharedDataPointer &p1, QSharedDataPointer &p2) +{ p1.swap(p2); } + +template +inline void qSwap(QExplicitlySharedDataPointer &p1, QExplicitlySharedDataPointer &p2) +{ p1.swap(p2); } + + + +namespace std { + template + inline void swap(::QSharedDataPointer &p1, ::QSharedDataPointer &p2) + { p1.swap(p2); } + + template + inline void swap(::QExplicitlySharedDataPointer &p1, ::QExplicitlySharedDataPointer &p2) + { p1.swap(p2); } +} + + + + + + +# 48 "/usr/include/qt4/QtCore/qsharedpointer.h" 2 + + +# 1 "/usr/include/qt4/QtCore/qsharedpointer_impl.h" 1 +# 65 "/usr/include/qt4/QtCore/qsharedpointer_impl.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; +# 80 "/usr/include/qt4/QtCore/qsharedpointer_impl.h" +template inline void qt_sharedpointer_cast_check(T *) { } + + + + + + + +template class QWeakPointer; +template class QSharedPointer; + +template +QSharedPointer qSharedPointerCast(const QSharedPointer &ptr); +template +QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &ptr); +template +QSharedPointer qSharedPointerConstCast(const QSharedPointer &ptr); + + +template +QSharedPointer qSharedPointerObjectCast(const QSharedPointer &ptr); + + +namespace QtSharedPointer { + template class InternalRefCount; + template class ExternalRefCount; + + template QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); + + + void internalSafetyCheckAdd2(const void *, const volatile void *); + void internalSafetyCheckRemove2(const void *); + + template + inline void executeDeleter(T *t, RetVal (Klass:: *memberDeleter)()) + { (t->*memberDeleter)(); } + template + inline void executeDeleter(T *t, Deleter d) + { d(t); } + template inline void normalDeleter(T *t) { delete t; } + + + template struct RemovePointer; + template struct RemovePointer { typedef T Type; }; + template struct RemovePointer > { typedef T Type; }; + template struct RemovePointer > { typedef T Type; }; + + + + + template + class Basic + { + + typedef T *Basic:: *RestrictedBool; + + public: + typedef T Type; + typedef T element_type; + typedef T value_type; + typedef value_type *pointer; + typedef const value_type *const_pointer; + typedef value_type &reference; + typedef const value_type &const_reference; + typedef qptrdiff difference_type; + + inline T *data() const { return value; } + inline bool isNull() const { return !data(); } + + inline operator RestrictedBool() const { return isNull() ? 0 : &Basic::value; } + + + + inline bool operator !() const { return isNull(); } + inline T &operator*() const { return *data(); } + inline T *operator->() const { return data(); } + + protected: + inline Basic(T *ptr = 0) : value(ptr) { } + inline Basic(Qt::Initialization) { } + + + inline void internalConstruct(T *ptr) + { + value = ptr; + } + + + + + template friend class ::QWeakPointer; + + + Type *value; + }; + + + + + + + + struct ExternalRefCountData + { + QBasicAtomicInt weakref; + QBasicAtomicInt strongref; + + inline ExternalRefCountData() + { + strongref = 1; + weakref = 1; + } + inline ExternalRefCountData(Qt::Initialization) { } + virtual inline ~ExternalRefCountData() { ((!(!weakref)) ? qt_assert("!weakref","/usr/include/qt4/QtCore/qsharedpointer_impl.h",193) : qt_noop()); ((!(strongref <= 0)) ? qt_assert("strongref <= 0","/usr/include/qt4/QtCore/qsharedpointer_impl.h",193) : qt_noop()); } + + + + + virtual inline bool destroy() { return false; } + + + static ExternalRefCountData *getAndRef(const QObject *); + void setQObjectShared(const QObject *, bool enable); + + inline void setQObjectShared(...) { } + }; + + + + + struct ExternalRefCountWithDestroyFn: public ExternalRefCountData + { + typedef void (*DestroyerFn)(ExternalRefCountData *); + DestroyerFn destroyer; + + inline ExternalRefCountWithDestroyFn(DestroyerFn d) + : destroyer(d) + { } + + inline bool destroy() { destroyer(this); return true; } + inline void operator delete(void *ptr) { ::operator delete(ptr); } + inline void operator delete(void *, void *) { } + }; + + + + + + template + struct ExternalRefCountWithCustomDeleter: public ExternalRefCountWithDestroyFn + { + typedef ExternalRefCountWithCustomDeleter Self; + typedef ExternalRefCountWithDestroyFn BaseClass; + + struct CustomDeleter + { + Deleter deleter; + T *ptr; + + inline CustomDeleter(T *p, Deleter d) : deleter(d), ptr(p) {} + }; + CustomDeleter extra; + + + + + static inline void deleter(ExternalRefCountData *self) + { + Self *realself = static_cast(self); + executeDeleter(realself->extra.ptr, realself->extra.deleter); + + + realself->extra.~CustomDeleter(); + } + static void safetyCheckDeleter(ExternalRefCountData *self) + { + internalSafetyCheckRemove2(self); + deleter(self); + } + + static inline Self *create(T *ptr, Deleter userDeleter) + { + + + + DestroyerFn destroy = &deleter; + + Self *d = static_cast(::operator new(sizeof(Self))); + + + new (&d->extra) CustomDeleter(ptr, userDeleter); + new (d) BaseClass(destroy); + + return d; + } + private: + + ExternalRefCountWithCustomDeleter(); + ~ExternalRefCountWithCustomDeleter(); + }; + + + + + + template + struct ExternalRefCountWithContiguousData: public ExternalRefCountWithDestroyFn + { + typedef ExternalRefCountWithDestroyFn Parent; + T data; + + static void deleter(ExternalRefCountData *self) + { + ExternalRefCountWithContiguousData *that = + static_cast(self); + that->data.~T(); + } + static void safetyCheckDeleter(ExternalRefCountData *self) + { + internalSafetyCheckRemove2(self); + deleter(self); + } + + static inline ExternalRefCountData *create(T **ptr) + { + + + + DestroyerFn destroy = &deleter; + + ExternalRefCountWithContiguousData *d = + static_cast(::operator new(sizeof(ExternalRefCountWithContiguousData))); + + + + new (d) Parent(destroy); + + *ptr = &d->data; + return d; + } + + private: + + ExternalRefCountWithContiguousData(); + ~ExternalRefCountWithContiguousData(); + }; + + + + template + class ExternalRefCount: public Basic + { + protected: + typedef ExternalRefCountData Data; + + inline void deref() + { deref(d, this->value); } + static inline void deref(Data *d, T *value) + { + if (!d) return; + if (!d->strongref.deref()) { + if (!d->destroy()) + delete value; + } + if (!d->weakref.deref()) + delete d; + } + + inline void internalConstruct(T *ptr) + { + + + + if (ptr) + d = new Data; + else + d = 0; + internalFinishConstruction(ptr); + + } + + template + inline void internalConstruct(T *ptr, Deleter deleter) + { + if (ptr) + d = ExternalRefCountWithCustomDeleter::create(ptr, deleter); + else + d = 0; + internalFinishConstruction(ptr); + } + + inline void internalCreate() + { + T *ptr; + d = ExternalRefCountWithContiguousData::create(&ptr); + Basic::internalConstruct(ptr); + } + + inline void internalFinishConstruction(T *ptr) + { + Basic::internalConstruct(ptr); + + + + if (ptr) d->setQObjectShared(ptr, true); + } + + inline ExternalRefCount() : d(0) { } + inline ExternalRefCount(Qt::Initialization i) : Basic(i) { } + + inline ExternalRefCount(T *ptr) : Basic(Qt::Uninitialized) + { internalConstruct(ptr); } + template + inline ExternalRefCount(T *ptr, Deleter deleter) : Basic(Qt::Uninitialized) + { internalConstruct(ptr, deleter); } + + inline ExternalRefCount(const ExternalRefCount &other) : Basic(other), d(other.d) + { if (d) ref(); } + template + inline ExternalRefCount(const ExternalRefCount &other) : Basic(other.value), d(other.d) + { if (d) ref(); } + inline ~ExternalRefCount() { deref(); } + + template + inline void internalCopy(const ExternalRefCount &other) + { + Data *o = other.d; + T *actual = other.value; + if (o) + other.ref(); + qSwap(d, o); + qSwap(this->value, actual); + deref(o, actual); + } + + inline void internalSwap(ExternalRefCount &other) + { + qSwap(d, other.d); + qSwap(this->value, other.value); + } + + + + + template friend class ExternalRefCount; + template friend class ::QWeakPointer; + template friend QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); + + inline void ref() const { d->weakref.ref(); d->strongref.ref(); } + + inline void internalSet(Data *o, T *actual) + { + if (o) { + + + int tmp = o->strongref; + while (tmp > 0) { + + if (o->strongref.testAndSetRelaxed(tmp, tmp + 1)) + break; + tmp = o->strongref; + } + + if (tmp > 0) + o->weakref.ref(); + else + o = 0; + } + + qSwap(d, o); + qSwap(this->value, actual); + if (!d || d->strongref == 0) + this->value = 0; + + + deref(o, actual); + } + + Data *d; + + private: + template ExternalRefCount(const InternalRefCount &); + }; +} + +template +class QSharedPointer: public QtSharedPointer::ExternalRefCount +{ + typedef typename QtSharedPointer::ExternalRefCount BaseClass; +public: + inline QSharedPointer() { } + + + inline explicit QSharedPointer(T *ptr) : BaseClass(ptr) + { } + + template + inline QSharedPointer(T *ptr, Deleter d) : BaseClass(ptr, d) + { } + + inline QSharedPointer(const QSharedPointer &other) : BaseClass(other) { } + inline QSharedPointer &operator=(const QSharedPointer &other) + { + BaseClass::internalCopy(other); + return *this; + } + + inline QSharedPointer &operator=(QSharedPointer &&other) + { + QSharedPointer::internalSwap(other); + return *this; + } + + + template + inline QSharedPointer(const QSharedPointer &other) : BaseClass(other) + { } + + template + inline QSharedPointer &operator=(const QSharedPointer &other) + { + qt_sharedpointer_cast_check(static_cast(0)); + BaseClass::internalCopy(other); + return *this; + } + + template + inline QSharedPointer(const QWeakPointer &other) : BaseClass(Qt::Uninitialized) + { this->d = 0; *this = other; } + + template + inline QSharedPointer &operator=(const QWeakPointer &other) + { BaseClass::internalSet(other.d, other.value); return *this; } + + inline void swap(QSharedPointer &other) + { QSharedPointer::internalSwap(other); } + + template + QSharedPointer staticCast() const + { + return qSharedPointerCast(*this); + } + + template + QSharedPointer dynamicCast() const + { + return qSharedPointerDynamicCast(*this); + } + + template + QSharedPointer constCast() const + { + return qSharedPointerConstCast(*this); + } + + + template + QSharedPointer objectCast() const + { + return qSharedPointerObjectCast(*this); + } + + + inline void clear() { *this = QSharedPointer(); } + + QWeakPointer toWeakRef() const; + +protected: + inline explicit QSharedPointer(Qt::Initialization i) : BaseClass(i) {} + +public: + static inline QSharedPointer create() + { + QSharedPointer result(Qt::Uninitialized); + result.internalCreate(); + + + new (result.data()) T(); + result.internalFinishConstruction(result.data()); + return result; + } +}; + +template +class QWeakPointer +{ + + typedef T *QWeakPointer:: *RestrictedBool; + + typedef QtSharedPointer::ExternalRefCountData Data; + +public: + typedef T element_type; + typedef T value_type; + typedef value_type *pointer; + typedef const value_type *const_pointer; + typedef value_type &reference; + typedef const value_type &const_reference; + typedef qptrdiff difference_type; + + inline bool isNull() const { return d == 0 || d->strongref == 0 || value == 0; } + + inline operator RestrictedBool() const { return isNull() ? 0 : &QWeakPointer::value; } + + + + inline bool operator !() const { return isNull(); } + inline T *data() const { return d == 0 || d->strongref == 0 ? 0 : value; } + + inline QWeakPointer() : d(0), value(0) { } + inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } + + + + template + inline QWeakPointer(X *ptr) : d(ptr ? Data::getAndRef(ptr) : 0), value(ptr) + { } + + template + inline QWeakPointer &operator=(X *ptr) + { return *this = QWeakPointer(ptr); } + + inline QWeakPointer(const QWeakPointer &o) : d(o.d), value(o.value) + { if (d) d->weakref.ref(); } + inline QWeakPointer &operator=(const QWeakPointer &o) + { + internalSet(o.d, o.value); + return *this; + } + + inline QWeakPointer(const QSharedPointer &o) : d(o.d), value(o.data()) + { if (d) d->weakref.ref();} + inline QWeakPointer &operator=(const QSharedPointer &o) + { + internalSet(o.d, o.value); + return *this; + } + + template + inline QWeakPointer(const QWeakPointer &o) : d(0), value(0) + { *this = o; } + + template + inline QWeakPointer &operator=(const QWeakPointer &o) + { + + + *this = o.toStrongRef(); + return *this; + } + + template + inline bool operator==(const QWeakPointer &o) const + { return d == o.d && value == static_cast(o.value); } + + template + inline bool operator!=(const QWeakPointer &o) const + { return !(*this == o); } + + template + inline QWeakPointer(const QSharedPointer &o) : d(0), value(0) + { *this = o; } + + template + inline QWeakPointer &operator=(const QSharedPointer &o) + { + qt_sharedpointer_cast_check(static_cast(0)); + internalSet(o.d, o.data()); + return *this; + } + + template + inline bool operator==(const QSharedPointer &o) const + { return d == o.d; } + + template + inline bool operator!=(const QSharedPointer &o) const + { return !(*this == o); } + + inline void clear() { *this = QWeakPointer(); } + + inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } + + + + + +private: + + + + + template friend class QSharedPointer; + + + inline void internalSet(Data *o, T *actual) + { + if (d == o) return; + if (o) + o->weakref.ref(); + if (d && !d->weakref.deref()) + delete d; + d = o; + value = actual; + } + + Data *d; + T *value; +}; + + + + +template +bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2) +{ + return ptr1.data() == ptr2.data(); +} +template +bool operator!=(const QSharedPointer &ptr1, const QSharedPointer &ptr2) +{ + return ptr1.data() != ptr2.data(); +} + +template +bool operator==(const QSharedPointer &ptr1, const X *ptr2) +{ + return ptr1.data() == ptr2; +} +template +bool operator==(const T *ptr1, const QSharedPointer &ptr2) +{ + return ptr1 == ptr2.data(); +} +template +bool operator!=(const QSharedPointer &ptr1, const X *ptr2) +{ + return !(ptr1 == ptr2); +} +template +bool operator!=(const T *ptr1, const QSharedPointer &ptr2) +{ + return !(ptr2 == ptr1); +} + +template +bool operator==(const QSharedPointer &ptr1, const QWeakPointer &ptr2) +{ + return ptr2 == ptr1; +} +template +bool operator!=(const QSharedPointer &ptr1, const QWeakPointer &ptr2) +{ + return ptr2 != ptr1; +} + + + + +template +inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, const QSharedPointer &ptr2) +{ + return ptr1.data() - ptr2.data(); +} +template +inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, X *ptr2) +{ + return ptr1.data() - ptr2; +} +template +inline typename QSharedPointer::difference_type operator-(T *ptr1, const QSharedPointer &ptr2) +{ + return ptr1 - ptr2.data(); +} + + + + +template +inline bool operator<(const QSharedPointer &ptr1, const QSharedPointer &ptr2) +{ + return ptr1.data() < ptr2.data(); +} +template +inline bool operator<(const QSharedPointer &ptr1, X *ptr2) +{ + return ptr1.data() < ptr2; +} +template +inline bool operator<(T *ptr1, const QSharedPointer &ptr2) +{ + return ptr1 < ptr2.data(); +} + + + + +template inline uint qHash(const T *key); +template +inline uint qHash(const QSharedPointer &ptr) +{ + return ::qHash(ptr.data()); +} + + +template +inline QWeakPointer QSharedPointer::toWeakRef() const +{ + return QWeakPointer(*this); +} + +template +inline void qSwap(QSharedPointer &p1, QSharedPointer &p2) +{ + p1.swap(p2); +} + + + +namespace std { + template + inline void swap(::QSharedPointer &p1, ::QSharedPointer &p2) + { p1.swap(p2); } +} + + + +namespace QtSharedPointer { + + template + inline QSharedPointer copyAndSetPointer(X *ptr, const QSharedPointer &src) + { + QSharedPointer result; + result.internalSet(src.d, ptr); + return result; + } +} + + +template +inline QSharedPointer qSharedPointerCast(const QSharedPointer &src) +{ + X *ptr = static_cast(src.data()); + return QtSharedPointer::copyAndSetPointer(ptr, src); +} +template +inline QSharedPointer qSharedPointerCast(const QWeakPointer &src) +{ + return qSharedPointerCast(src.toStrongRef()); +} + +template +inline QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &src) +{ + X *ptr = dynamic_cast(src.data()); + if (!ptr) + return QSharedPointer(); + return QtSharedPointer::copyAndSetPointer(ptr, src); +} +template +inline QSharedPointer qSharedPointerDynamicCast(const QWeakPointer &src) +{ + return qSharedPointerDynamicCast(src.toStrongRef()); +} + +template +inline QSharedPointer qSharedPointerConstCast(const QSharedPointer &src) +{ + X *ptr = const_cast(src.data()); + return QtSharedPointer::copyAndSetPointer(ptr, src); +} +template +inline QSharedPointer qSharedPointerConstCast(const QWeakPointer &src) +{ + return qSharedPointerConstCast(src.toStrongRef()); +} + +template +inline +QWeakPointer qWeakPointerCast(const QSharedPointer &src) +{ + return qSharedPointerCast(src).toWeakRef(); +} + + +template +inline QSharedPointer qSharedPointerObjectCast(const QSharedPointer &src) +{ + X *ptr = qobject_cast(src.data()); + return QtSharedPointer::copyAndSetPointer(ptr, src); +} +template +inline QSharedPointer qSharedPointerObjectCast(const QWeakPointer &src) +{ + return qSharedPointerObjectCast(src.toStrongRef()); +} + +template +inline QSharedPointer::Type> +qobject_cast(const QSharedPointer &src) +{ + return qSharedPointerObjectCast::Type, T>(src); +} +template +inline QSharedPointer::Type> +qobject_cast(const QWeakPointer &src) +{ + return qSharedPointerObjectCast::Type, T>(src); +} + + + +template class QTypeInfo > { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QWeakPointer)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QWeakPointer"; } }; +template class QTypeInfo > { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QSharedPointer)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QSharedPointer"; } }; + + + + + +# 51 "/usr/include/qt4/QtCore/qsharedpointer.h" 2 +# 50 "/usr/include/qt4/QtGui/qpixmap.h" 2 + + + + + + + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QImageWriter; +class QImageReader; +class QColor; +class QVariant; +class QX11Info; +class QPixmapData; + +class QPixmap : public QPaintDevice +{ +public: + QPixmap(); + explicit QPixmap(QPixmapData *data); + QPixmap(int w, int h); + QPixmap(const QSize &); + QPixmap(const QString& fileName, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); + + QPixmap(const char * const xpm[]); + + QPixmap(const QPixmap &); + ~QPixmap(); + + QPixmap &operator=(const QPixmap &); + + inline QPixmap &operator=(QPixmap &&other) + { qSwap(data, other.data); return *this; } + + inline void swap(QPixmap &other) { qSwap(data, other.data); } + + operator QVariant() const; + + bool isNull() const; + int devType() const; + + int width() const; + int height() const; + QSize size() const; + QRect rect() const; + int depth() const; + + static int defaultDepth(); + + void fill(const QColor &fillColor = Qt::white); + void fill(const QWidget *widget, const QPoint &ofs); + inline void fill(const QWidget *widget, int xofs, int yofs) { fill(widget, QPoint(xofs, yofs)); } + + QBitmap mask() const; + void setMask(const QBitmap &); + + + QPixmap alphaChannel() const; + void setAlphaChannel(const QPixmap &); + + + bool hasAlpha() const; + bool hasAlphaChannel() const; + + + QBitmap createHeuristicMask(bool clipTight = true) const; + + QBitmap createMaskFromColor(const QColor &maskColor) const; + QBitmap createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode) const; + + static QPixmap grabWindow(WId, int x=0, int y=0, int w=-1, int h=-1); + static QPixmap grabWidget(QWidget *widget, const QRect &rect); + static inline QPixmap grabWidget(QWidget *widget, int x=0, int y=0, int w=-1, int h=-1) + { return grabWidget(widget, QRect(x, y, w, h)); } + + + inline QPixmap scaled(int w, int h, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, + Qt::TransformationMode mode = Qt::FastTransformation) const + { return scaled(QSize(w, h), aspectMode, mode); } + QPixmap scaled(const QSize &s, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, + Qt::TransformationMode mode = Qt::FastTransformation) const; + QPixmap scaledToWidth(int w, Qt::TransformationMode mode = Qt::FastTransformation) const; + QPixmap scaledToHeight(int h, Qt::TransformationMode mode = Qt::FastTransformation) const; + QPixmap transformed(const QMatrix &, Qt::TransformationMode mode = Qt::FastTransformation) const; + static QMatrix trueMatrix(const QMatrix &m, int w, int h); + QPixmap transformed(const QTransform &, Qt::TransformationMode mode = Qt::FastTransformation) const; + static QTransform trueMatrix(const QTransform &m, int w, int h); + + QImage toImage() const; + static QPixmap fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor); + static QPixmap fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor); + + bool load(const QString& fileName, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); + bool loadFromData(const uchar *buf, uint len, const char* format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); + inline bool loadFromData(const QByteArray &data, const char* format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); + bool save(const QString& fileName, const char* format = 0, int quality = -1) const; + bool save(QIODevice* device, const char* format = 0, int quality = -1) const; + + bool convertFromImage(const QImage &img, Qt::ImageConversionFlags flags = Qt::AutoColor); +# 182 "/usr/include/qt4/QtGui/qpixmap.h" + inline QPixmap copy(int x, int y, int width, int height) const; + QPixmap copy(const QRect &rect = QRect()) const; + + inline void scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = 0); + void scroll(int dx, int dy, const QRect &rect, QRegion *exposed = 0); + + + int serialNumber() const; + + qint64 cacheKey() const; + + bool isDetached() const; + void detach(); + + bool isQBitmap() const; +# 211 "/usr/include/qt4/QtGui/qpixmap.h" + enum ShareMode { ImplicitlyShared, ExplicitlyShared }; + + static QPixmap fromX11Pixmap(Qt::HANDLE pixmap, ShareMode mode = ImplicitlyShared); + static int x11SetDefaultScreen(int screen); + void x11SetScreen(int screen); + const QX11Info &x11Info() const; + Qt::HANDLE x11PictureHandle() const; + + + + Qt::HANDLE handle() const; + + + QPaintEngine *paintEngine() const; + + inline bool operator!() const { return isNull(); } + +protected: + int metric(PaintDeviceMetric) const; +# 251 "/usr/include/qt4/QtGui/qpixmap.h" +private: + QExplicitlySharedDataPointer data; + + bool doImageIO(QImageWriter *io, int quality) const; + + + enum Type { PixmapType, BitmapType }; + QPixmap(const QSize &s, Type); + void init(int, int, Type = PixmapType); + + QPixmap(const QSize &s, int type); + void init(int, int, int); + void deref(); + + + + + + + + + + + + friend class QPixmapData; + friend class QX11PixmapData; + friend class QMacPixmapData; + friend class QSymbianRasterPixmapData; + friend class QBitmap; + friend class QPaintDevice; + friend class QPainter; + friend class QGLWidget; + friend class QX11PaintEngine; + friend class QCoreGraphicsPaintEngine; + friend class QWidgetPrivate; + friend class QRasterBuffer; + + friend QDataStream &operator>>(QDataStream &, QPixmap &); + + friend qint64 qt_pixmap_id(const QPixmap &pixmap); + +public: + QPixmapData* pixmapData() const; + +public: + typedef QExplicitlySharedDataPointer DataPtr; + inline DataPtr &data_ptr() { return data; } +}; + +template <> inline bool qIsDetached(QPixmap &t) { return t.isDetached(); } template <> inline void qSwap(QPixmap &value1, QPixmap &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QPixmap>(::QPixmap &value1, ::QPixmap &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } + +inline QPixmap QPixmap::copy(int ax, int ay, int awidth, int aheight) const +{ + return copy(QRect(ax, ay, awidth, aheight)); +} + +inline void QPixmap::scroll(int dx, int dy, int ax, int ay, int awidth, int aheight, QRegion *exposed) +{ + scroll(dx, dy, QRect(ax, ay, awidth, aheight), exposed); +} + +inline bool QPixmap::loadFromData(const QByteArray &buf, const char *format, + Qt::ImageConversionFlags flags) +{ + return loadFromData(reinterpret_cast(buf.constData()), buf.size(), format, flags); +} + + + + + + + QDataStream &operator<<(QDataStream &, const QPixmap &); + QDataStream &operator>>(QDataStream &, QPixmap &); +# 335 "/usr/include/qt4/QtGui/qpixmap.h" + + + +# 54 "/usr/include/qt4/QtGui/qbrush.h" 2 +# 64 "/usr/include/qt4/QtGui/qbrush.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +struct QBrushData; +class QPixmap; +class QGradient; +class QVariant; +struct QBrushDataPointerDeleter; + +class QBrush +{ +public: + QBrush(); + QBrush(Qt::BrushStyle bs); + QBrush(const QColor &color, Qt::BrushStyle bs=Qt::SolidPattern); + QBrush(Qt::GlobalColor color, Qt::BrushStyle bs=Qt::SolidPattern); + + QBrush(const QColor &color, const QPixmap &pixmap); + QBrush(Qt::GlobalColor color, const QPixmap &pixmap); + QBrush(const QPixmap &pixmap); + QBrush(const QImage &image); + + QBrush(const QBrush &brush); + + QBrush(const QGradient &gradient); + + ~QBrush(); + QBrush &operator=(const QBrush &brush); + + inline QBrush &operator=(QBrush &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QBrush &other) { qSwap(d, other.d); } + + operator QVariant() const; + + inline Qt::BrushStyle style() const; + void setStyle(Qt::BrushStyle); + + inline const QMatrix &matrix() const; + void setMatrix(const QMatrix &mat); + + inline QTransform transform() const; + void setTransform(const QTransform &); + + QPixmap texture() const; + void setTexture(const QPixmap &pixmap); + + QImage textureImage() const; + void setTextureImage(const QImage &image); + + inline const QColor &color() const; + void setColor(const QColor &color); + inline void setColor(Qt::GlobalColor color); + + const QGradient *gradient() const; + + bool isOpaque() const; + + bool operator==(const QBrush &b) const; + inline bool operator!=(const QBrush &b) const { return !(operator==(b)); } + + + + + + + +private: + + friend class QX11PaintEngine; + + friend class QRasterPaintEngine; + friend class QRasterPaintEnginePrivate; + friend struct QSpanData; + friend class QPainter; + friend bool qHasPixmapTexture(const QBrush& brush); + void detach(Qt::BrushStyle newStyle); + void init(const QColor &color, Qt::BrushStyle bs); + QScopedPointer d; + void cleanUp(QBrushData *x); + +public: + inline bool isDetached() const; + typedef QScopedPointer DataPtr; + inline DataPtr &data_ptr() { return d; } +}; + +inline void QBrush::setColor(Qt::GlobalColor acolor) +{ setColor(QColor(acolor)); } + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QBrush)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QBrush"; } }; +template <> inline bool qIsDetached(QBrush &t) { return t.isDetached(); } template <> inline void qSwap(QBrush &value1, QBrush &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QBrush>(::QBrush &value1, ::QBrush &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } + + + + + + + QDataStream &operator<<(QDataStream &, const QBrush &); + QDataStream &operator>>(QDataStream &, QBrush &); + + + + QDebug operator<<(QDebug, const QBrush &); + + +struct QBrushData +{ + QAtomicInt ref; + Qt::BrushStyle style; + QColor color; + QTransform transform; +}; + +inline Qt::BrushStyle QBrush::style() const { return d->style; } +inline const QColor &QBrush::color() const { return d->color; } +inline const QMatrix &QBrush::matrix() const { return d->transform.toAffine(); } +inline QTransform QBrush::transform() const { return d->transform; } +inline bool QBrush::isDetached() const { return d->ref == 1; } +# 196 "/usr/include/qt4/QtGui/qbrush.h" +class QGradientPrivate; + +typedef QPair QGradientStop; +typedef QVector QGradientStops; + +class QGradient +{ + public: static const QMetaObject staticMetaObject; private: + +public: + enum Type { + LinearGradient, + RadialGradient, + ConicalGradient, + NoGradient + }; + + enum Spread { + PadSpread, + ReflectSpread, + RepeatSpread + }; + + enum CoordinateMode { + LogicalMode, + StretchToDeviceMode, + ObjectBoundingMode + }; + + enum InterpolationMode { + ColorInterpolation, + ComponentInterpolation + }; + + QGradient(); + + Type type() const { return m_type; } + + inline void setSpread(Spread spread); + Spread spread() const { return m_spread; } + + void setColorAt(qreal pos, const QColor &color); + + void setStops(const QGradientStops &stops); + QGradientStops stops() const; + + CoordinateMode coordinateMode() const; + void setCoordinateMode(CoordinateMode mode); + + InterpolationMode interpolationMode() const; + void setInterpolationMode(InterpolationMode mode); + + bool operator==(const QGradient &gradient) const; + inline bool operator!=(const QGradient &other) const + { return !operator==(other); } + + bool operator==(const QGradient &gradient); + +private: + friend class QLinearGradient; + friend class QRadialGradient; + friend class QConicalGradient; + friend class QBrush; + + Type m_type; + Spread m_spread; + QGradientStops m_stops; + union { + struct { + qreal x1, y1, x2, y2; + } linear; + struct { + qreal cx, cy, fx, fy, cradius; + } radial; + struct { + qreal cx, cy, angle; + } conical; + } m_data; + void *dummy; +}; + +inline void QGradient::setSpread(Spread aspread) +{ m_spread = aspread; } + +class QLinearGradient : public QGradient +{ +public: + QLinearGradient(); + QLinearGradient(const QPointF &start, const QPointF &finalStop); + QLinearGradient(qreal xStart, qreal yStart, qreal xFinalStop, qreal yFinalStop); + + QPointF start() const; + void setStart(const QPointF &start); + inline void setStart(qreal x, qreal y) { setStart(QPointF(x, y)); } + + QPointF finalStop() const; + void setFinalStop(const QPointF &stop); + inline void setFinalStop(qreal x, qreal y) { setFinalStop(QPointF(x, y)); } +}; + + +class QRadialGradient : public QGradient +{ +public: + QRadialGradient(); + QRadialGradient(const QPointF ¢er, qreal radius, const QPointF &focalPoint); + QRadialGradient(qreal cx, qreal cy, qreal radius, qreal fx, qreal fy); + + QRadialGradient(const QPointF ¢er, qreal radius); + QRadialGradient(qreal cx, qreal cy, qreal radius); + + QRadialGradient(const QPointF ¢er, qreal centerRadius, const QPointF &focalPoint, qreal focalRadius); + QRadialGradient(qreal cx, qreal cy, qreal centerRadius, qreal fx, qreal fy, qreal focalRadius); + + QPointF center() const; + void setCenter(const QPointF ¢er); + inline void setCenter(qreal x, qreal y) { setCenter(QPointF(x, y)); } + + QPointF focalPoint() const; + void setFocalPoint(const QPointF &focalPoint); + inline void setFocalPoint(qreal x, qreal y) { setFocalPoint(QPointF(x, y)); } + + qreal radius() const; + void setRadius(qreal radius); + + qreal centerRadius() const; + void setCenterRadius(qreal radius); + + qreal focalRadius() const; + void setFocalRadius(qreal radius); +}; + + +class QConicalGradient : public QGradient +{ +public: + QConicalGradient(); + QConicalGradient(const QPointF ¢er, qreal startAngle); + QConicalGradient(qreal cx, qreal cy, qreal startAngle); + + QPointF center() const; + void setCenter(const QPointF ¢er); + inline void setCenter(qreal x, qreal y) { setCenter(QPointF(x, y)); } + + qreal angle() const; + void setAngle(qreal angle); +}; + + + + +# 48 "/usr/include/qt4/QtGui/qpalette.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + + +class QPalettePrivate; +class QVariant; + +class QPalette +{ + public: static const QMetaObject staticMetaObject; private: + +public: + QPalette(); + QPalette(const QColor &button); + QPalette(Qt::GlobalColor button); + QPalette(const QColor &button, const QColor &window); + QPalette(const QBrush &windowText, const QBrush &button, const QBrush &light, + const QBrush &dark, const QBrush &mid, const QBrush &text, + const QBrush &bright_text, const QBrush &base, const QBrush &window); + QPalette(const QColor &windowText, const QColor &window, const QColor &light, + const QColor &dark, const QColor &mid, const QColor &text, const QColor &base); + + + + QPalette(const QPalette &palette); + ~QPalette(); + QPalette &operator=(const QPalette &palette); + + inline QPalette &operator=(QPalette &&other) + { + resolve_mask = other.resolve_mask; + current_group = other.current_group; + qSwap(d, other.d); return *this; + } + + operator QVariant() const; + + + enum ColorGroup { Active, Disabled, Inactive, NColorGroups, Current, All, Normal = Active }; + enum ColorRole { WindowText, Button, Light, Midlight, Dark, Mid, + Text, BrightText, ButtonText, Base, Window, Shadow, + Highlight, HighlightedText, + Link, LinkVisited, + AlternateBase, + NoRole, + ToolTipBase, ToolTipText, + NColorRoles = ToolTipText + 1, + Foreground = WindowText, Background = Window + }; + + inline ColorGroup currentColorGroup() const { return static_cast(current_group); } + inline void setCurrentColorGroup(ColorGroup cg) { current_group = cg; } + + inline const QColor &color(ColorGroup cg, ColorRole cr) const + { return brush(cg, cr).color(); } + const QBrush &brush(ColorGroup cg, ColorRole cr) const; + inline void setColor(ColorGroup cg, ColorRole cr, const QColor &color); + inline void setColor(ColorRole cr, const QColor &color); + inline void setBrush(ColorRole cr, const QBrush &brush); + bool isBrushSet(ColorGroup cg, ColorRole cr) const; + void setBrush(ColorGroup cg, ColorRole cr, const QBrush &brush); + void setColorGroup(ColorGroup cr, const QBrush &windowText, const QBrush &button, + const QBrush &light, const QBrush &dark, const QBrush &mid, + const QBrush &text, const QBrush &bright_text, const QBrush &base, + const QBrush &window); + bool isEqual(ColorGroup cr1, ColorGroup cr2) const; + + inline const QColor &color(ColorRole cr) const { return color(Current, cr); } + inline const QBrush &brush(ColorRole cr) const { return brush(Current, cr); } + inline const QBrush &foreground() const { return brush(WindowText); } + inline const QBrush &windowText() const { return brush(WindowText); } + inline const QBrush &button() const { return brush(Button); } + inline const QBrush &light() const { return brush(Light); } + inline const QBrush &dark() const { return brush(Dark); } + inline const QBrush &mid() const { return brush(Mid); } + inline const QBrush &text() const { return brush(Text); } + inline const QBrush &base() const { return brush(Base); } + inline const QBrush &alternateBase() const { return brush(AlternateBase); } + inline const QBrush &toolTipBase() const { return brush(ToolTipBase); } + inline const QBrush &toolTipText() const { return brush(ToolTipText); } + inline const QBrush &background() const { return brush(Window); } + inline const QBrush &window() const { return brush(Window); } + inline const QBrush &midlight() const { return brush(Midlight); } + inline const QBrush &brightText() const { return brush(BrightText); } + inline const QBrush &buttonText() const { return brush(ButtonText); } + inline const QBrush &shadow() const { return brush(Shadow); } + inline const QBrush &highlight() const { return brush(Highlight); } + inline const QBrush &highlightedText() const { return brush(HighlightedText); } + inline const QBrush &link() const { return brush(Link); } + inline const QBrush &linkVisited() const { return brush(LinkVisited); } +# 158 "/usr/include/qt4/QtGui/qpalette.h" + bool operator==(const QPalette &p) const; + inline bool operator!=(const QPalette &p) const { return !(operator==(p)); } + bool isCopyOf(const QPalette &p) const; + + int serialNumber() const; + qint64 cacheKey() const; + + QPalette resolve(const QPalette &) const; + inline uint resolve() const { return resolve_mask; } + inline void resolve(uint mask) { resolve_mask = mask; } + +private: + void setColorGroup(ColorGroup cr, const QBrush &windowText, const QBrush &button, + const QBrush &light, const QBrush &dark, const QBrush &mid, + const QBrush &text, const QBrush &bright_text, + const QBrush &base, const QBrush &alternate_base, + const QBrush &window, const QBrush &midlight, + const QBrush &button_text, const QBrush &shadow, + const QBrush &highlight, const QBrush &highlighted_text, + const QBrush &link, const QBrush &link_visited); + void setColorGroup(ColorGroup cr, const QBrush &windowText, const QBrush &button, + const QBrush &light, const QBrush &dark, const QBrush &mid, + const QBrush &text, const QBrush &bright_text, + const QBrush &base, const QBrush &alternate_base, + const QBrush &window, const QBrush &midlight, + const QBrush &button_text, const QBrush &shadow, + const QBrush &highlight, const QBrush &highlighted_text, + const QBrush &link, const QBrush &link_visited, + const QBrush &toolTipBase, const QBrush &toolTipText); + + + + + + void init(); + void detach(); + + QPalettePrivate *d; + uint current_group : 4; + uint resolve_mask : 28; + friend QDataStream &operator<<(QDataStream &s, const QPalette &p); +}; + +inline void QPalette::setColor(ColorGroup acg, ColorRole acr, + const QColor &acolor) +{ setBrush(acg, acr, QBrush(acolor)); } +inline void QPalette::setColor(ColorRole acr, const QColor &acolor) +{ setColor(All, acr, acolor); } +inline void QPalette::setBrush(ColorRole acr, const QBrush &abrush) +{ setBrush(All, acr, abrush); } +# 262 "/usr/include/qt4/QtGui/qpalette.h" + QDataStream &operator<<(QDataStream &ds, const QPalette &p); + QDataStream &operator>>(QDataStream &ds, QPalette &p); + + + + + +# 51 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qfont.h" 1 +# 50 "/usr/include/qt4/QtGui/qfont.h" +typedef struct FT_FaceRec_* FT_Face; + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QFontPrivate; +class QStringList; +class QVariant; +class Q3TextFormatCollection; + +class QFont +{ + public: static const QMetaObject staticMetaObject; private: + +public: + enum StyleHint { + Helvetica, SansSerif = Helvetica, + Times, Serif = Times, + Courier, TypeWriter = Courier, + OldEnglish, Decorative = OldEnglish, + System, + AnyStyle, + Cursive, + Monospace, + Fantasy + }; + + enum StyleStrategy { + PreferDefault = 0x0001, + PreferBitmap = 0x0002, + PreferDevice = 0x0004, + PreferOutline = 0x0008, + ForceOutline = 0x0010, + PreferMatch = 0x0020, + PreferQuality = 0x0040, + PreferAntialias = 0x0080, + NoAntialias = 0x0100, + OpenGLCompatible = 0x0200, + ForceIntegerMetrics = 0x0400, + NoFontMerging = 0x8000 + }; + + enum HintingPreference { + PreferDefaultHinting = 0, + PreferNoHinting = 1, + PreferVerticalHinting = 2, + PreferFullHinting = 3 + }; + + enum Weight { + Light = 25, + Normal = 50, + DemiBold = 63, + Bold = 75, + Black = 87 + }; + + enum Style { + StyleNormal, + StyleItalic, + StyleOblique + }; + + enum Stretch { + UltraCondensed = 50, + ExtraCondensed = 62, + Condensed = 75, + SemiCondensed = 87, + Unstretched = 100, + SemiExpanded = 112, + Expanded = 125, + ExtraExpanded = 150, + UltraExpanded = 200 + }; + + enum Capitalization { + MixedCase, + AllUppercase, + AllLowercase, + SmallCaps, + Capitalize + }; + + enum SpacingType { + PercentageSpacing, + AbsoluteSpacing + }; + + enum ResolveProperties { + FamilyResolved = 0x0001, + SizeResolved = 0x0002, + StyleHintResolved = 0x0004, + StyleStrategyResolved = 0x0008, + WeightResolved = 0x0010, + StyleResolved = 0x0020, + UnderlineResolved = 0x0040, + OverlineResolved = 0x0080, + StrikeOutResolved = 0x0100, + FixedPitchResolved = 0x0200, + StretchResolved = 0x0400, + KerningResolved = 0x0800, + CapitalizationResolved = 0x1000, + LetterSpacingResolved = 0x2000, + WordSpacingResolved = 0x4000, + HintingPreferenceResolved = 0x8000, + StyleNameResolved = 0x10000, + AllPropertiesResolved = 0x1ffff + }; + + QFont(); + QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false); + QFont(const QFont &, QPaintDevice *pd); + QFont(const QFont &); + ~QFont(); + + QString family() const; + void setFamily(const QString &); + + QString styleName() const; + void setStyleName(const QString &); + + int pointSize() const; + void setPointSize(int); + qreal pointSizeF() const; + void setPointSizeF(qreal); + + int pixelSize() const; + void setPixelSize(int); + + int weight() const; + void setWeight(int); + + inline bool bold() const; + inline void setBold(bool); + + void setStyle(Style style); + Style style() const; + + inline bool italic() const; + inline void setItalic(bool b); + + bool underline() const; + void setUnderline(bool); + + bool overline() const; + void setOverline(bool); + + bool strikeOut() const; + void setStrikeOut(bool); + + bool fixedPitch() const; + void setFixedPitch(bool); + + bool kerning() const; + void setKerning(bool); + + StyleHint styleHint() const; + StyleStrategy styleStrategy() const; + void setStyleHint(StyleHint, StyleStrategy = PreferDefault); + void setStyleStrategy(StyleStrategy s); + + int stretch() const; + void setStretch(int); + + qreal letterSpacing() const; + SpacingType letterSpacingType() const; + void setLetterSpacing(SpacingType type, qreal spacing); + + qreal wordSpacing() const; + void setWordSpacing(qreal spacing); + + void setCapitalization(Capitalization); + Capitalization capitalization() const; + + void setHintingPreference(HintingPreference hintingPreference); + HintingPreference hintingPreference() const; + + + bool rawMode() const; + void setRawMode(bool); + + + bool exactMatch() const; + + QFont &operator=(const QFont &); + bool operator==(const QFont &) const; + bool operator!=(const QFont &) const; + bool operator<(const QFont &) const; + operator QVariant() const; + bool isCopyOf(const QFont &) const; + + inline QFont &operator=(QFont &&other) + { qSwap(d, other.d); qSwap(resolve_mask, other.resolve_mask); return *this; } + + + + + + Qt::HANDLE handle() const; + + + + + + FT_Face freetypeFace() const; + + + + void setRawName(const QString &); + QString rawName() const; + + QString key() const; + + QString toString() const; + bool fromString(const QString &); + + static QString substitute(const QString &); + static QStringList substitutes(const QString &); + static QStringList substitutions(); + static void insertSubstitution(const QString&, const QString &); + static void insertSubstitutions(const QString&, const QStringList &); + static void removeSubstitution(const QString &); + static void initialize(); + static void cleanup(); + + static void cacheStatistics(); + + + QString defaultFamily() const; + QString lastResortFamily() const; + QString lastResortFont() const; + + QFont resolve(const QFont &) const; + inline uint resolve() const { return resolve_mask; } + inline void resolve(uint mask) { resolve_mask = mask; } +# 298 "/usr/include/qt4/QtGui/qfont.h" +private: + QFont(QFontPrivate *); + + void detach(); + + + + + void x11SetScreen(int screen = -1); + int x11Screen() const; + + + friend class QFontPrivate; + friend class QFontDialogPrivate; + friend class QFontMetrics; + friend class QFontMetricsF; + friend class QFontInfo; + friend class QPainter; + friend class QPainterPrivate; + friend class QPSPrintEngineFont; + friend class QApplication; + friend class QWidget; + friend class QWidgetPrivate; + friend class Q3TextFormatCollection; + friend class QTextLayout; + friend class QTextEngine; + friend class QStackTextEngine; + friend class QTextLine; + friend struct QScriptLine; + friend class QGLContext; + friend class QWin32PaintEngine; + friend class QAlphaPaintEngine; + friend class QPainterPath; + friend class QTextItemInt; + friend class QPicturePaintEngine; + friend class QPainterReplayer; + friend class QPaintBufferEngine; + friend class QCommandLinkButtonPrivate; + friend class QFontEngine; + + + friend QDataStream &operator<<(QDataStream &, const QFont &); + friend QDataStream &operator>>(QDataStream &, QFont &); + + + QExplicitlySharedDataPointer d; + uint resolve_mask; +}; + + +inline bool QFont::bold() const +{ return weight() > Normal; } + + +inline void QFont::setBold(bool enable) +{ setWeight(enable ? Bold : Normal); } + +inline bool QFont::italic() const +{ + return (style() != StyleNormal); +} + +inline void QFont::setItalic(bool b) { + setStyle(b ? StyleItalic : StyleNormal); +} + + + + + + + + QDataStream &operator<<(QDataStream &, const QFont &); + QDataStream &operator>>(QDataStream &, QFont &); + + + + QDebug operator<<(QDebug, const QFont &); + + + + + +# 52 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qfontmetrics.h" 1 +# 51 "/usr/include/qt4/QtGui/qfontmetrics.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + + + +class QTextCodec; +class QRect; + + +class QFontMetrics +{ +public: + QFontMetrics(const QFont &); + QFontMetrics(const QFont &, QPaintDevice *pd); + QFontMetrics(const QFontMetrics &); + ~QFontMetrics(); + + QFontMetrics &operator=(const QFontMetrics &); + + inline QFontMetrics &operator=(QFontMetrics &&other) + { qSwap(d, other.d); return *this; } + + + int ascent() const; + int descent() const; + int height() const; + int leading() const; + int lineSpacing() const; + int minLeftBearing() const; + int minRightBearing() const; + int maxWidth() const; + + int xHeight() const; + int averageCharWidth() const; + + bool inFont(QChar) const; + bool inFontUcs4(uint ucs4) const; + + int leftBearing(QChar) const; + int rightBearing(QChar) const; + int width(const QString &, int len = -1) const; + int width(const QString &, int len, int flags) const; + + int width(QChar) const; + int charWidth(const QString &str, int pos) const; + + QRect boundingRect(QChar) const; + + QRect boundingRect(const QString &text) const; + QRect boundingRect(const QRect &r, int flags, const QString &text, int tabstops=0, int *tabarray=0) const; + inline QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text, + int tabstops=0, int *tabarray=0) const + { return boundingRect(QRect(x, y, w, h), flags, text, tabstops, tabarray); } + QSize size(int flags, const QString& str, int tabstops=0, int *tabarray=0) const; + + QRect tightBoundingRect(const QString &text) const; + + QString elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0) const; + + int underlinePos() const; + int overlinePos() const; + int strikeOutPos() const; + int lineWidth() const; + + bool operator==(const QFontMetrics &other); + bool operator==(const QFontMetrics &other) const; + inline bool operator !=(const QFontMetrics &other) { return !operator==(other); } + inline bool operator !=(const QFontMetrics &other) const { return !operator==(other); } +# 134 "/usr/include/qt4/QtGui/qfontmetrics.h" +private: + + + + friend class QFontMetricsF; + friend class QStackTextEngine; + + QExplicitlySharedDataPointer d; +}; + + +class QFontMetricsF +{ +public: + QFontMetricsF(const QFont &); + QFontMetricsF(const QFont &, QPaintDevice *pd); + QFontMetricsF(const QFontMetrics &); + QFontMetricsF(const QFontMetricsF &); + ~QFontMetricsF(); + + QFontMetricsF &operator=(const QFontMetricsF &); + QFontMetricsF &operator=(const QFontMetrics &); + + inline QFontMetricsF &operator=(QFontMetricsF &&other) + { qSwap(d, other.d); return *this; } + + qreal ascent() const; + qreal descent() const; + qreal height() const; + qreal leading() const; + qreal lineSpacing() const; + qreal minLeftBearing() const; + qreal minRightBearing() const; + qreal maxWidth() const; + + qreal xHeight() const; + qreal averageCharWidth() const; + + bool inFont(QChar) const; + bool inFontUcs4(uint ucs4) const; + + qreal leftBearing(QChar) const; + qreal rightBearing(QChar) const; + qreal width(const QString &string) const; + + qreal width(QChar) const; + + QRectF boundingRect(const QString &string) const; + QRectF boundingRect(QChar) const; + QRectF boundingRect(const QRectF &r, int flags, const QString& string, int tabstops=0, int *tabarray=0) const; + QSizeF size(int flags, const QString& str, int tabstops=0, int *tabarray=0) const; + + QRectF tightBoundingRect(const QString &text) const; + + QString elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags = 0) const; + + qreal underlinePos() const; + qreal overlinePos() const; + qreal strikeOutPos() const; + qreal lineWidth() const; + + bool operator==(const QFontMetricsF &other); + bool operator==(const QFontMetricsF &other) const; + inline bool operator !=(const QFontMetricsF &other) { return !operator==(other); } + inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); } + +private: + QExplicitlySharedDataPointer d; +}; + + + + +# 53 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qfontinfo.h" 1 +# 48 "/usr/include/qt4/QtGui/qfontinfo.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QFontInfo +{ +public: + QFontInfo(const QFont &); + QFontInfo(const QFontInfo &); + ~QFontInfo(); + + QFontInfo &operator=(const QFontInfo &); + + QString family() const; + QString styleName() const; + int pixelSize() const; + int pointSize() const; + qreal pointSizeF() const; + bool italic() const; + QFont::Style style() const; + int weight() const; + inline bool bold() const { return weight() > QFont::Normal; } + bool underline() const; + bool overline() const; + bool strikeOut() const; + bool fixedPitch() const; + QFont::StyleHint styleHint() const; + bool rawMode() const; + + bool exactMatch() const; + +private: + QExplicitlySharedDataPointer d; +}; + + + + +# 54 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qsizepolicy.h" 1 +# 47 "/usr/include/qt4/QtGui/qsizepolicy.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QVariant; + +class QSizePolicy +{ + public: static const QMetaObject staticMetaObject; private: + + +private: + enum SizePolicyMasks { + HSize = 4, + HMask = 0x0f, + VMask = HMask << HSize, + CTShift = 9, + CTSize = 5, + CTMask = ((0x1 << CTSize) - 1) << CTShift, + WFHShift = CTShift + CTSize, + UnusedShift = WFHShift + 1, + UnusedSize = 1 + }; + +public: + enum PolicyFlag { + GrowFlag = 1, + ExpandFlag = 2, + ShrinkFlag = 4, + IgnoreFlag = 8 + }; + + enum Policy { + Fixed = 0, + Minimum = GrowFlag, + Maximum = ShrinkFlag, + Preferred = GrowFlag | ShrinkFlag, + MinimumExpanding = GrowFlag | ExpandFlag, + Expanding = GrowFlag | ShrinkFlag | ExpandFlag, + Ignored = ShrinkFlag | GrowFlag | IgnoreFlag + }; + + enum ControlType { + DefaultType = 0x00000001, + ButtonBox = 0x00000002, + CheckBox = 0x00000004, + ComboBox = 0x00000008, + Frame = 0x00000010, + GroupBox = 0x00000020, + Label = 0x00000040, + Line = 0x00000080, + LineEdit = 0x00000100, + PushButton = 0x00000200, + RadioButton = 0x00000400, + Slider = 0x00000800, + SpinBox = 0x00001000, + TabWidget = 0x00002000, + ToolButton = 0x00004000 + }; + typedef QFlags ControlTypes; + + QSizePolicy() : data(0) { } + + + QSizePolicy(Policy horizontal, Policy vertical) + : data(horizontal | (vertical << HSize)) { } + QSizePolicy(Policy horizontal, Policy vertical, ControlType type) + : data(horizontal | (vertical << HSize)) { setControlType(type); } + + Policy horizontalPolicy() const { return static_cast(data & HMask); } + Policy verticalPolicy() const { return static_cast((data & VMask) >> HSize); } + ControlType controlType() const; + + void setHorizontalPolicy(Policy d) { data = (data & ~HMask) | d; } + void setVerticalPolicy(Policy d) { data = (data & ~(HMask << HSize)) | (d << HSize); } + void setControlType(ControlType type); + + Qt::Orientations expandingDirections() const { + Qt::Orientations result; + if (verticalPolicy() & ExpandFlag) + result |= Qt::Vertical; + if (horizontalPolicy() & ExpandFlag) + result |= Qt::Horizontal; + return result; + } + + void setHeightForWidth(bool b) { data = b ? (data | (1 << 2*HSize)) : (data & ~(1 << 2*HSize)); } + bool hasHeightForWidth() const { return data & (1 << 2*HSize); } + void setWidthForHeight(bool b) { data = b ? (data | (1 << (WFHShift))) : (data & ~(1 << (WFHShift))); } + bool hasWidthForHeight() const { return data & (1 << (WFHShift)); } + + bool operator==(const QSizePolicy& s) const { return data == s.data; } + bool operator!=(const QSizePolicy& s) const { return data != s.data; } + operator QVariant() const; + + int horizontalStretch() const { return data >> 24; } + int verticalStretch() const { return (data >> 16) & 0xff; } + void setHorizontalStretch(uchar stretchFactor) { data = (data&0x00ffffff) | (uint(stretchFactor)<<24); } + void setVerticalStretch(uchar stretchFactor) { data = (data&0xff00ffff) | (uint(stretchFactor)<<16); } + + void transpose(); +# 197 "/usr/include/qt4/QtGui/qsizepolicy.h" +private: + + friend QDataStream &operator<<(QDataStream &, const QSizePolicy &); + friend QDataStream &operator>>(QDataStream &, QSizePolicy &); + + QSizePolicy(int i) : data(i) { } + + quint32 data; +# 219 "/usr/include/qt4/QtGui/qsizepolicy.h" +}; + +constexpr inline QFlags operator|(QSizePolicy::ControlTypes::enum_type f1, QSizePolicy::ControlTypes::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QSizePolicy::ControlTypes::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QSizePolicy::ControlTypes::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + QDataStream &operator<<(QDataStream &, const QSizePolicy &); + QDataStream &operator>>(QDataStream &, QSizePolicy &); + + +inline void QSizePolicy::transpose() { + Policy hData = horizontalPolicy(); + Policy vData = verticalPolicy(); + uchar hStretch = uchar(horizontalStretch()); + uchar vStretch = uchar(verticalStretch()); + setHorizontalPolicy(vData); + setVerticalPolicy(hData); + setHorizontalStretch(vStretch); + setVerticalStretch(hStretch); +} + + + + +# 55 "/usr/include/qt4/QtGui/qwidget.h" 2 + + +# 1 "/usr/include/qt4/QtGui/qcursor.h" 1 +# 48 "/usr/include/qt4/QtGui/qcursor.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QVariant; +# 75 "/usr/include/qt4/QtGui/qcursor.h" +class QCursorData; +class QBitmap; +class QPixmap; +# 89 "/usr/include/qt4/QtGui/qcursor.h" +class QCursor +{ +public: + QCursor(); + QCursor(Qt::CursorShape shape); + QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX=-1, int hotY=-1); + QCursor(const QPixmap &pixmap, int hotX=-1, int hotY=-1); + QCursor(const QCursor &cursor); + ~QCursor(); + QCursor &operator=(const QCursor &cursor); + + inline QCursor &operator=(QCursor &&other) + { qSwap(d, other.d); return *this; } + + operator QVariant() const; + + Qt::CursorShape shape() const; + void setShape(Qt::CursorShape newShape); + + const QBitmap *bitmap() const; + const QBitmap *mask() const; + QPixmap pixmap() const; + QPoint hotSpot() const; + + static QPoint pos(); + static void setPos(int x, int y); + inline static void setPos(const QPoint &p) { setPos(p.x(), p.y()); } +# 128 "/usr/include/qt4/QtGui/qcursor.h" + Qt::HANDLE handle() const; + QCursor(Qt::HANDLE cursor); + static int x11Screen(); +# 140 "/usr/include/qt4/QtGui/qcursor.h" +private: + QCursorData *d; +# 153 "/usr/include/qt4/QtGui/qcursor.h" +}; +# 171 "/usr/include/qt4/QtGui/qcursor.h" + QDataStream &operator<<(QDataStream &outS, const QCursor &cursor); + QDataStream &operator>>(QDataStream &inS, QCursor &cursor); + + + + + + +# 58 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 1 "/usr/include/qt4/QtGui/qkeysequence.h" 1 +# 48 "/usr/include/qt4/QtGui/qkeysequence.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + + + + + +class QKeySequence; + QDataStream &operator<<(QDataStream &in, const QKeySequence &ks); + QDataStream &operator>>(QDataStream &out, QKeySequence &ks); + + + + + + +class QVariant; +class QKeySequencePrivate; + +class QKeySequence +{ +public: + enum StandardKey { + UnknownKey, + HelpContents, + WhatsThis, + Open, + Close, + Save, + New, + Delete, + Cut, + Copy, + Paste, + Undo, + Redo, + Back, + Forward, + Refresh, + ZoomIn, + ZoomOut, + Print, + AddTab, + NextChild, + PreviousChild, + Find, + FindNext, + FindPrevious, + Replace, + SelectAll, + Bold, + Italic, + Underline, + MoveToNextChar, + MoveToPreviousChar, + MoveToNextWord, + MoveToPreviousWord, + MoveToNextLine, + MoveToPreviousLine, + MoveToNextPage, + MoveToPreviousPage, + MoveToStartOfLine, + MoveToEndOfLine, + MoveToStartOfBlock, + MoveToEndOfBlock, + MoveToStartOfDocument, + MoveToEndOfDocument, + SelectNextChar, + SelectPreviousChar, + SelectNextWord, + SelectPreviousWord, + SelectNextLine, + SelectPreviousLine, + SelectNextPage, + SelectPreviousPage, + SelectStartOfLine, + SelectEndOfLine, + SelectStartOfBlock, + SelectEndOfBlock, + SelectStartOfDocument, + SelectEndOfDocument, + DeleteStartOfWord, + DeleteEndOfWord, + DeleteEndOfLine, + InsertParagraphSeparator, + InsertLineSeparator, + SaveAs, + Preferences, + Quit + }; + + enum SequenceFormat { + NativeText, + PortableText + }; + + QKeySequence(); + QKeySequence(const QString &key); + QKeySequence(const QString &key, SequenceFormat format); + QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0); + QKeySequence(const QKeySequence &ks); + QKeySequence(StandardKey key); + ~QKeySequence(); + + uint count() const; + bool isEmpty() const; + + enum SequenceMatch { + NoMatch, + PartialMatch, + ExactMatch + + + + }; + + QString toString(SequenceFormat format = PortableText) const; + static QKeySequence fromString(const QString &str, SequenceFormat format = PortableText); + + SequenceMatch matches(const QKeySequence &seq) const; + static QKeySequence mnemonic(const QString &text); + static QList keyBindings(StandardKey key); + + + operator QString() const; + operator QVariant() const; + operator int() const; + int operator[](uint i) const; + QKeySequence &operator=(const QKeySequence &other); + + inline QKeySequence &operator=(QKeySequence &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QKeySequence &other) { qSwap(d, other.d); } + bool operator==(const QKeySequence &other) const; + inline bool operator!= (const QKeySequence &other) const + { return !(*this == other); } + bool operator< (const QKeySequence &ks) const; + inline bool operator> (const QKeySequence &other) const + { return other < *this; } + inline bool operator<= (const QKeySequence &other) const + { return !(other < *this); } + inline bool operator>= (const QKeySequence &other) const + { return !(*this < other); } + + bool isDetached() const; +private: + static int decodeString(const QString &ks); + static QString encodeString(int key); + int assign(const QString &str); + int assign(const QString &str, SequenceFormat format); + void setKey(int key, int index); + + QKeySequencePrivate *d; + + friend QDataStream &operator<<(QDataStream &in, const QKeySequence &ks); + friend QDataStream &operator>>(QDataStream &in, QKeySequence &ks); + friend class Q3AccelManager; + friend class QShortcutMap; + friend class QShortcut; + +public: + typedef QKeySequencePrivate * DataPtr; + inline DataPtr &data_ptr() { return d; } +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QKeySequence)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QKeySequence"; } }; +template <> inline bool qIsDetached(QKeySequence &t) { return t.isDetached(); } template <> inline void qSwap(QKeySequence &value1, QKeySequence &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QKeySequence>(::QKeySequence &value1, ::QKeySequence &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } + + + QDebug operator<<(QDebug, const QKeySequence &); +# 236 "/usr/include/qt4/QtGui/qkeysequence.h" + + + +# 59 "/usr/include/qt4/QtGui/qwidget.h" 2 +# 68 "/usr/include/qt4/QtGui/qwidget.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QLayout; +class QWSRegionManager; +class QStyle; +class QAction; +class QVariant; + +class QActionEvent; +class QMouseEvent; +class QWheelEvent; +class QHoverEvent; +class QKeyEvent; +class QFocusEvent; +class QPaintEvent; +class QMoveEvent; +class QResizeEvent; +class QCloseEvent; +class QContextMenuEvent; +class QInputMethodEvent; +class QTabletEvent; +class QDragEnterEvent; +class QDragMoveEvent; +class QDragLeaveEvent; +class QDropEvent; +class QShowEvent; +class QHideEvent; + +class QInputContext; + +class QIcon; +class QWindowSurface; +class QPlatformWindow; +class QLocale; +class QGraphicsProxyWidget; +class QGraphicsEffect; +class QRasterWindowSurface; +class QUnifiedToolbarSurface; + +class QX11Info; + + +class QWidgetData +{ +public: + WId winid; + uint widget_attributes; + Qt::WindowFlags window_flags; + uint window_state : 4; + uint focus_policy : 4; + uint sizehint_forced :1; + uint is_closing :1; + uint in_show : 1; + uint in_set_window_state : 1; + mutable uint fstrut_dirty : 1; + uint context_menu_policy : 3; + uint window_modality : 2; + uint in_destructor : 1; + uint unused : 13; + QRect crect; + mutable QPalette pal; + QFont fnt; +# 145 "/usr/include/qt4/QtGui/qwidget.h" + QRect wrect; +}; + +class QWidgetPrivate; + +class QWidget : public QObject, public QPaintDevice +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QWidgetPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QWidgetPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QWidgetPrivate; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +public: + enum RenderFlag { + DrawWindowBackground = 0x1, + DrawChildren = 0x2, + IgnoreMask = 0x4 + }; + typedef QFlags RenderFlags; + + explicit QWidget(QWidget* parent = 0, Qt::WindowFlags f = 0); + + + + ~QWidget(); + + int devType() const; + + WId winId() const; + void createWinId(); + inline WId internalWinId() const { return data->winid; } + WId effectiveWinId() const; + + + QStyle *style() const; + void setStyle(QStyle *); + + + bool isTopLevel() const; + bool isWindow() const; + + bool isModal() const; + Qt::WindowModality windowModality() const; + void setWindowModality(Qt::WindowModality windowModality); + + bool isEnabled() const; + bool isEnabledTo(QWidget*) const; + bool isEnabledToTLW() const; + +public : + void setEnabled(bool); + void setDisabled(bool); + void setWindowModified(bool); + + + +public: + QRect frameGeometry() const; + const QRect &geometry() const; + QRect normalGeometry() const; + + int x() const; + int y() const; + QPoint pos() const; + QSize frameSize() const; + QSize size() const; + inline int width() const; + inline int height() const; + inline QRect rect() const; + QRect childrenRect() const; + QRegion childrenRegion() const; + + QSize minimumSize() const; + QSize maximumSize() const; + int minimumWidth() const; + int minimumHeight() const; + int maximumWidth() const; + int maximumHeight() const; + void setMinimumSize(const QSize &); + void setMinimumSize(int minw, int minh); + void setMaximumSize(const QSize &); + void setMaximumSize(int maxw, int maxh); + void setMinimumWidth(int minw); + void setMinimumHeight(int minh); + void setMaximumWidth(int maxw); + void setMaximumHeight(int maxh); + + + + + + QSize sizeIncrement() const; + void setSizeIncrement(const QSize &); + void setSizeIncrement(int w, int h); + QSize baseSize() const; + void setBaseSize(const QSize &); + void setBaseSize(int basew, int baseh); + + void setFixedSize(const QSize &); + void setFixedSize(int w, int h); + void setFixedWidth(int w); + void setFixedHeight(int h); + + + + QPoint mapToGlobal(const QPoint &) const; + QPoint mapFromGlobal(const QPoint &) const; + QPoint mapToParent(const QPoint &) const; + QPoint mapFromParent(const QPoint &) const; + QPoint mapTo(QWidget *, const QPoint &) const; + QPoint mapFrom(QWidget *, const QPoint &) const; + + QWidget *window() const; + QWidget *nativeParentWidget() const; + inline QWidget *topLevelWidget() const { return window(); } + + + const QPalette &palette() const; + void setPalette(const QPalette &); + + void setBackgroundRole(QPalette::ColorRole); + QPalette::ColorRole backgroundRole() const; + + void setForegroundRole(QPalette::ColorRole); + QPalette::ColorRole foregroundRole() const; + + const QFont &font() const; + void setFont(const QFont &); + QFontMetrics fontMetrics() const; + QFontInfo fontInfo() const; + + + QCursor cursor() const; + void setCursor(const QCursor &); + void unsetCursor(); + + + void setMouseTracking(bool enable); + bool hasMouseTracking() const; + bool underMouse() const; + + void setMask(const QBitmap &); + void setMask(const QRegion &); + QRegion mask() const; + void clearMask(); + + void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), + const QRegion &sourceRegion = QRegion(), + RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren)); + + void render(QPainter *painter, const QPoint &targetOffset = QPoint(), + const QRegion &sourceRegion = QRegion(), + RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren)); + + + QGraphicsEffect *graphicsEffect() const; + void setGraphicsEffect(QGraphicsEffect *effect); + + + + void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags()); + void ungrabGesture(Qt::GestureType type); + + +public : + void setWindowTitle(const QString &); + + void setStyleSheet(const QString& styleSheet); + +public: + + QString styleSheet() const; + + QString windowTitle() const; + void setWindowIcon(const QIcon &icon); + QIcon windowIcon() const; + void setWindowIconText(const QString &); + QString windowIconText() const; + void setWindowRole(const QString &); + QString windowRole() const; + void setWindowFilePath(const QString &filePath); + QString windowFilePath() const; + + void setWindowOpacity(qreal level); + qreal windowOpacity() const; + + bool isWindowModified() const; + + void setToolTip(const QString &); + QString toolTip() const; + + + void setStatusTip(const QString &); + QString statusTip() const; + + + void setWhatsThis(const QString &); + QString whatsThis() const; + + + QString accessibleName() const; + void setAccessibleName(const QString &name); + QString accessibleDescription() const; + void setAccessibleDescription(const QString &description); + + + void setLayoutDirection(Qt::LayoutDirection direction); + Qt::LayoutDirection layoutDirection() const; + void unsetLayoutDirection(); + + void setLocale(const QLocale &locale); + QLocale locale() const; + void unsetLocale(); + + inline bool isRightToLeft() const { return layoutDirection() == Qt::RightToLeft; } + inline bool isLeftToRight() const { return layoutDirection() == Qt::LeftToRight; } + +public : + inline void setFocus() { setFocus(Qt::OtherFocusReason); } + +public: + bool isActiveWindow() const; + void activateWindow(); + void clearFocus(); + + void setFocus(Qt::FocusReason reason); + Qt::FocusPolicy focusPolicy() const; + void setFocusPolicy(Qt::FocusPolicy policy); + bool hasFocus() const; + static void setTabOrder(QWidget *, QWidget *); + void setFocusProxy(QWidget *); + QWidget *focusProxy() const; + Qt::ContextMenuPolicy contextMenuPolicy() const; + void setContextMenuPolicy(Qt::ContextMenuPolicy policy); + + + void grabMouse(); + + void grabMouse(const QCursor &); + + void releaseMouse(); + void grabKeyboard(); + void releaseKeyboard(); + + int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut); + void releaseShortcut(int id); + void setShortcutEnabled(int id, bool enable = true); + void setShortcutAutoRepeat(int id, bool enable = true); + + static QWidget *mouseGrabber(); + static QWidget *keyboardGrabber(); + + + inline bool updatesEnabled() const; + void setUpdatesEnabled(bool enable); + + + + + + + QGraphicsProxyWidget *graphicsProxyWidget() const; + + +public : + void update(); + void repaint(); + +public: + inline void update(int x, int y, int w, int h); + void update(const QRect&); + void update(const QRegion&); + + void repaint(int x, int y, int w, int h); + void repaint(const QRect &); + void repaint(const QRegion &); + +public : + + + virtual void setVisible(bool visible); + inline void setHidden(bool hidden) { setVisible(!hidden); } + + inline void show() { setVisible(true); } + + + + inline void hide() { setVisible(false); } + inline void setShown(bool shown) { setVisible(shown); } + + void showMinimized(); + void showMaximized(); + void showFullScreen(); + void showNormal(); + + bool close(); + void raise(); + void lower(); + +public: + void stackUnder(QWidget*); + void move(int x, int y); + void move(const QPoint &); + void resize(int w, int h); + void resize(const QSize &); + inline void setGeometry(int x, int y, int w, int h); + void setGeometry(const QRect &); + QByteArray saveGeometry() const; + bool restoreGeometry(const QByteArray &geometry); + void adjustSize(); + bool isVisible() const; + bool isVisibleTo(QWidget*) const; + + inline bool isHidden() const; + + bool isMinimized() const; + bool isMaximized() const; + bool isFullScreen() const; + + Qt::WindowStates windowState() const; + void setWindowState(Qt::WindowStates state); + void overrideWindowState(Qt::WindowStates state); + + virtual QSize sizeHint() const; + virtual QSize minimumSizeHint() const; + + QSizePolicy sizePolicy() const; + void setSizePolicy(QSizePolicy); + inline void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical); + virtual int heightForWidth(int) const; + + QRegion visibleRegion() const; + + void setContentsMargins(int left, int top, int right, int bottom); + void setContentsMargins(const QMargins &margins); + void getContentsMargins(int *left, int *top, int *right, int *bottom) const; + QMargins contentsMargins() const; + + QRect contentsRect() const; + +public: + QLayout *layout() const; + void setLayout(QLayout *); + void updateGeometry(); + + void setParent(QWidget *parent); + void setParent(QWidget *parent, Qt::WindowFlags f); + + void scroll(int dx, int dy); + void scroll(int dx, int dy, const QRect&); + + + + QWidget *focusWidget() const; + QWidget *nextInFocusChain() const; + QWidget *previousInFocusChain() const; + + + bool acceptDrops() const; + void setAcceptDrops(bool on); + + + + void addAction(QAction *action); + void addActions(QList actions); + void insertAction(QAction *before, QAction *action); + void insertActions(QAction *before, QList actions); + void removeAction(QAction *action); + QList actions() const; + + + QWidget *parentWidget() const; + + void setWindowFlags(Qt::WindowFlags type); + inline Qt::WindowFlags windowFlags() const; + void overrideWindowFlags(Qt::WindowFlags type); + + inline Qt::WindowType windowType() const; + + static QWidget *find(WId); + + + + inline QWidget *childAt(int x, int y) const; + QWidget *childAt(const QPoint &p) const; + + + const QX11Info &x11Info() const; + Qt::HANDLE x11PictureHandle() const; +# 614 "/usr/include/qt4/QtGui/qwidget.h" + Qt::HANDLE handle() const; + + + void setAttribute(Qt::WidgetAttribute, bool on = true); + inline bool testAttribute(Qt::WidgetAttribute) const; + + QPaintEngine *paintEngine() const; + + void ensurePolished() const; + + QInputContext *inputContext(); + void setInputContext(QInputContext *); + + bool isAncestorOf(const QWidget *child) const; + + + + + + + bool autoFillBackground() const; + void setAutoFillBackground(bool enabled); + + void setWindowSurface(QWindowSurface *surface); + QWindowSurface *windowSurface() const; +# 650 "/usr/include/qt4/QtGui/qwidget.h" +protected: + void customContextMenuRequested(const QPoint &pos); + +protected: + + bool event(QEvent *); + virtual void mousePressEvent(QMouseEvent *); + virtual void mouseReleaseEvent(QMouseEvent *); + virtual void mouseDoubleClickEvent(QMouseEvent *); + virtual void mouseMoveEvent(QMouseEvent *); + + virtual void wheelEvent(QWheelEvent *); + + virtual void keyPressEvent(QKeyEvent *); + virtual void keyReleaseEvent(QKeyEvent *); + virtual void focusInEvent(QFocusEvent *); + virtual void focusOutEvent(QFocusEvent *); + virtual void enterEvent(QEvent *); + virtual void leaveEvent(QEvent *); + virtual void paintEvent(QPaintEvent *); + virtual void moveEvent(QMoveEvent *); + virtual void resizeEvent(QResizeEvent *); + virtual void closeEvent(QCloseEvent *); + + virtual void contextMenuEvent(QContextMenuEvent *); + + + virtual void tabletEvent(QTabletEvent *); + + + virtual void actionEvent(QActionEvent *); + + + + virtual void dragEnterEvent(QDragEnterEvent *); + virtual void dragMoveEvent(QDragMoveEvent *); + virtual void dragLeaveEvent(QDragLeaveEvent *); + virtual void dropEvent(QDropEvent *); + + + virtual void showEvent(QShowEvent *); + virtual void hideEvent(QHideEvent *); +# 700 "/usr/include/qt4/QtGui/qwidget.h" + virtual bool x11Event(XEvent *); + + + + + + + virtual void changeEvent(QEvent *); + + int metric(PaintDeviceMetric) const; + + virtual void inputMethodEvent(QInputMethodEvent *); +public: + virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; + + Qt::InputMethodHints inputMethodHints() const; + void setInputMethodHints(Qt::InputMethodHints hints); + +protected: + void resetInputContext(); +protected : + void updateMicroFocus(); +protected: + + void create(WId = 0, bool initializeWindow = true, + bool destroyOldWindow = true); + void destroy(bool destroyWindow = true, + bool destroySubWindows = true); + + virtual bool focusNextPrevChild(bool next); + inline bool focusNextChild() { return focusNextPrevChild(true); } + inline bool focusPreviousChild() { return focusNextPrevChild(false); } + +protected: + QWidget(QWidgetPrivate &d, QWidget* parent, Qt::WindowFlags f); +private: + + bool testAttribute_helper(Qt::WidgetAttribute) const; + + QLayout *takeLayout(); + + friend class QBackingStoreDevice; + friend class QWidgetBackingStore; + friend class QApplication; + friend class QApplicationPrivate; + friend class QBaseApplication; + friend class QPainter; + friend class QPainterPrivate; + friend class QPixmap; + friend class QFontMetrics; + friend class QFontInfo; + friend class QETWidget; + friend class QLayout; + friend class QWidgetItem; + friend class QWidgetItemV2; + friend class QGLContext; + friend class QGLWidget; + friend class QGLWindowSurface; + friend class QX11PaintEngine; + friend class QWin32PaintEngine; + friend class QShortcutPrivate; + friend class QShortcutMap; + friend class QWindowSurface; + friend class QGraphicsProxyWidget; + friend class QGraphicsProxyWidgetPrivate; + friend class QStyleSheetStyle; + friend struct QWidgetExceptionCleaner; + + friend class QGestureManager; + friend class QWinNativePanGestureRecognizer; + + friend class QWidgetEffectSourcePrivate; +# 800 "/usr/include/qt4/QtGui/qwidget.h" + friend void qt_net_update_user_time(QWidget *tlw, unsigned long timestamp); + friend void qt_net_remove_user_time(QWidget *tlw); + friend void qt_set_winid_on_widget(QWidget*, Qt::HANDLE); + + + friend QWidgetData *qt_qwidget_data(QWidget *widget); + friend QWidgetPrivate *qt_widget_private(QWidget *widget); + +private: + QWidget(const QWidget &); QWidget &operator=(const QWidget &); + + + + + + QWidgetData *data; +# 912 "/usr/include/qt4/QtGui/qwidget.h" +protected: + virtual void styleChange(QStyle&); + virtual void enabledChange(bool); + virtual void paletteChange(const QPalette &); + virtual void fontChange(const QFont &); + virtual void windowActivationChange(bool); + virtual void languageChange(); +}; + +constexpr inline QFlags operator|(QWidget::RenderFlags::enum_type f1, QWidget::RenderFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QWidget::RenderFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QWidget::RenderFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +template <> inline QWidget *qobject_cast(QObject *o) +{ + if (!o || !o->isWidgetType()) return 0; + return static_cast(o); +} +template <> inline const QWidget *qobject_cast(const QObject *o) +{ + if (!o || !o->isWidgetType()) return 0; + return static_cast(o); +} + +inline QWidget *QWidget::childAt(int ax, int ay) const +{ return childAt(QPoint(ax, ay)); } + +inline Qt::WindowType QWidget::windowType() const +{ return static_cast(int(data->window_flags & Qt::WindowType_Mask)); } +inline Qt::WindowFlags QWidget::windowFlags() const +{ return data->window_flags; } + +inline bool QWidget::isTopLevel() const +{ return (windowType() & Qt::Window); } + +inline bool QWidget::isWindow() const +{ return (windowType() & Qt::Window); } + +inline bool QWidget::isEnabled() const +{ return !testAttribute(Qt::WA_Disabled); } + +inline bool QWidget::isModal() const +{ return data->window_modality != Qt::NonModal; } + +inline bool QWidget::isEnabledToTLW() const +{ return isEnabled(); } + +inline int QWidget::minimumWidth() const +{ return minimumSize().width(); } + +inline int QWidget::minimumHeight() const +{ return minimumSize().height(); } + +inline int QWidget::maximumWidth() const +{ return maximumSize().width(); } + +inline int QWidget::maximumHeight() const +{ return maximumSize().height(); } + +inline void QWidget::setMinimumSize(const QSize &s) +{ setMinimumSize(s.width(),s.height()); } + +inline void QWidget::setMaximumSize(const QSize &s) +{ setMaximumSize(s.width(),s.height()); } + +inline void QWidget::setSizeIncrement(const QSize &s) +{ setSizeIncrement(s.width(),s.height()); } + +inline void QWidget::setBaseSize(const QSize &s) +{ setBaseSize(s.width(),s.height()); } + +inline const QFont &QWidget::font() const +{ return data->fnt; } + +inline QFontMetrics QWidget::fontMetrics() const +{ return QFontMetrics(data->fnt); } + +inline QFontInfo QWidget::fontInfo() const +{ return QFontInfo(data->fnt); } + +inline void QWidget::setMouseTracking(bool enable) +{ setAttribute(Qt::WA_MouseTracking, enable); } + +inline bool QWidget::hasMouseTracking() const +{ return testAttribute(Qt::WA_MouseTracking); } + +inline bool QWidget::underMouse() const +{ return testAttribute(Qt::WA_UnderMouse); } + +inline bool QWidget::updatesEnabled() const +{ return !testAttribute(Qt::WA_UpdatesDisabled); } + +inline void QWidget::update(int ax, int ay, int aw, int ah) +{ update(QRect(ax, ay, aw, ah)); } + +inline bool QWidget::isVisible() const +{ return testAttribute(Qt::WA_WState_Visible); } + +inline bool QWidget::isHidden() const +{ return testAttribute(Qt::WA_WState_Hidden); } + +inline void QWidget::move(int ax, int ay) +{ move(QPoint(ax, ay)); } + +inline void QWidget::resize(int w, int h) +{ resize(QSize(w, h)); } + +inline void QWidget::setGeometry(int ax, int ay, int aw, int ah) +{ setGeometry(QRect(ax, ay, aw, ah)); } + +inline QRect QWidget::rect() const +{ return QRect(0,0,data->crect.width(),data->crect.height()); } + +inline const QRect &QWidget::geometry() const +{ return data->crect; } + +inline QSize QWidget::size() const +{ return data->crect.size(); } + +inline int QWidget::width() const +{ return data->crect.width(); } + +inline int QWidget::height() const +{ return data->crect.height(); } + +inline QWidget *QWidget::parentWidget() const +{ return static_cast(QObject::parent()); } + +inline void QWidget::setSizePolicy(QSizePolicy::Policy hor, QSizePolicy::Policy ver) +{ setSizePolicy(QSizePolicy(hor, ver)); } + +inline bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const +{ + if (attribute < int(8*sizeof(uint))) + return data->widget_attributes & (1< availableSizes(Mode mode = Normal, State state = Off) const; + + static QIcon fromTheme(const QString &name, const QIcon &fallback = QIcon()); + static bool hasThemeIcon(const QString &name); + + static QStringList themeSearchPaths(); + static void setThemeSearchPaths(const QStringList &searchpath); + + static QString themeName(); + static void setThemeName(const QString &path); +# 132 "/usr/include/qt4/QtGui/qicon.h" + + +private: + QIconPrivate *d; + + friend QDataStream &operator<<(QDataStream &, const QIcon &); + friend QDataStream &operator>>(QDataStream &, QIcon &); + + +public: + typedef QIconPrivate * DataPtr; + inline DataPtr &data_ptr() { return d; } +}; + +template <> inline bool qIsDetached(QIcon &t) { return t.isDetached(); } template <> inline void qSwap(QIcon &value1, QIcon &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QIcon>(::QIcon &value1, ::QIcon &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QIcon)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QIcon"; } }; + + + QDataStream &operator<<(QDataStream &, const QIcon &); + QDataStream &operator>>(QDataStream &, QIcon &); + + + + + + + + + +# 46 "/usr/include/qt4/QtGui/qabstractbutton.h" 2 + +# 1 "/usr/include/qt4/QtGui/qwidget.h" 1 +# 48 "/usr/include/qt4/QtGui/qabstractbutton.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QButtonGroup; +class QAbstractButtonPrivate; + +class QAbstractButton : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + +public: + explicit QAbstractButton(QWidget* parent=0); + ~QAbstractButton(); + + void setText(const QString &text); + QString text() const; + + void setIcon(const QIcon &icon); + QIcon icon() const; + + QSize iconSize() const; + + + void setShortcut(const QKeySequence &key); + QKeySequence shortcut() const; + + + void setCheckable(bool); + bool isCheckable() const; + + bool isChecked() const; + + void setDown(bool); + bool isDown() const; + + void setAutoRepeat(bool); + bool autoRepeat() const; + + void setAutoRepeatDelay(int); + int autoRepeatDelay() const; + + void setAutoRepeatInterval(int); + int autoRepeatInterval() const; + + void setAutoExclusive(bool); + bool autoExclusive() const; + + + QButtonGroup *group() const; + + +public : + void setIconSize(const QSize &size); + void animateClick(int msec = 100); + void click(); + void toggle(); + void setChecked(bool); + +protected: + void pressed(); + void released(); + void clicked(bool checked = false); + void toggled(bool checked); + +protected: + virtual void paintEvent(QPaintEvent *e) = 0; + virtual bool hitButton(const QPoint &pos) const; + virtual void checkStateSet(); + virtual void nextCheckState(); + + bool event(QEvent *e); + void keyPressEvent(QKeyEvent *e); + void keyReleaseEvent(QKeyEvent *e); + void mousePressEvent(QMouseEvent *e); + void mouseReleaseEvent(QMouseEvent *e); + void mouseMoveEvent(QMouseEvent *e); + void focusInEvent(QFocusEvent *e); + void focusOutEvent(QFocusEvent *e); + void changeEvent(QEvent *e); + void timerEvent(QTimerEvent *e); +# 167 "/usr/include/qt4/QtGui/qabstractbutton.h" +protected: + QAbstractButton(QAbstractButtonPrivate &dd, QWidget* parent = 0); + +private: + inline QAbstractButtonPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractButtonPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractButtonPrivate; + QAbstractButton(const QAbstractButton &); QAbstractButton &operator=(const QAbstractButton &); + friend class QButtonGroup; +}; + + + + +# 46 "/usr/include/qt4/QtGui/qtoolbutton.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QToolButtonPrivate; +class QMenu; +class QStyleOptionToolButton; + +class QToolButton : public QAbstractButton +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + +public: + enum ToolButtonPopupMode { + DelayedPopup, + MenuButtonPopup, + InstantPopup + }; + + explicit QToolButton(QWidget * parent=0); + ~QToolButton(); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + Qt::ToolButtonStyle toolButtonStyle() const; + + Qt::ArrowType arrowType() const; + void setArrowType(Qt::ArrowType type); + + + void setMenu(QMenu* menu); + QMenu* menu() const; + + void setPopupMode(ToolButtonPopupMode mode); + ToolButtonPopupMode popupMode() const; + + + QAction *defaultAction() const; + + void setAutoRaise(bool enable); + bool autoRaise() const; + +public : + + void showMenu(); + + void setToolButtonStyle(Qt::ToolButtonStyle style); + void setDefaultAction(QAction *); + +protected: + void triggered(QAction *); + +protected: + QToolButton(QToolButtonPrivate &, QWidget* parent); + bool event(QEvent *e); + void mousePressEvent(QMouseEvent *); + void mouseReleaseEvent(QMouseEvent *); + void paintEvent(QPaintEvent *); + void actionEvent(QActionEvent *); + + void enterEvent(QEvent *); + void leaveEvent(QEvent *); + void timerEvent(QTimerEvent *); + void changeEvent(QEvent *); + + bool hitButton(const QPoint &pos) const; + void nextCheckState(); + void initStyleOption(QStyleOptionToolButton *option) const; + +private: + QToolButton(const QToolButton &); QToolButton &operator=(const QToolButton &); + inline QToolButtonPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QToolButtonPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QToolButtonPrivate; + + + + + + +# 191 "/usr/include/qt4/QtGui/qtoolbutton.h" +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QToolButton" 2 +# 34 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QSpinBox" 1 +# 1 "/usr/include/qt4/QtGui/qspinbox.h" 1 +# 45 "/usr/include/qt4/QtGui/qspinbox.h" +# 1 "/usr/include/qt4/QtGui/qabstractspinbox.h" 1 +# 46 "/usr/include/qt4/QtGui/qabstractspinbox.h" +# 1 "/usr/include/qt4/QtGui/qvalidator.h" 1 +# 48 "/usr/include/qt4/QtGui/qvalidator.h" +# 1 "/usr/include/qt4/QtCore/qlocale.h" 1 +# 45 "/usr/include/qt4/QtCore/qlocale.h" +# 1 "/usr/include/qt4/QtCore/qvariant.h" 1 +# 48 "/usr/include/qt4/QtCore/qvariant.h" +# 1 "/usr/include/qt4/QtCore/qmetatype.h" 1 +# 56 "/usr/include/qt4/QtCore/qmetatype.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QMetaType { +public: + enum Type { + + Void = 0, Bool = 1, Int = 2, UInt = 3, LongLong = 4, ULongLong = 5, + Double = 6, QChar = 7, QVariantMap = 8, QVariantList = 9, + QString = 10, QStringList = 11, QByteArray = 12, + QBitArray = 13, QDate = 14, QTime = 15, QDateTime = 16, QUrl = 17, + QLocale = 18, QRect = 19, QRectF = 20, QSize = 21, QSizeF = 22, + QLine = 23, QLineF = 24, QPoint = 25, QPointF = 26, QRegExp = 27, + QVariantHash = 28, QEasingCurve = 29, LastCoreType = QEasingCurve, + + FirstGuiType = 63 , + + + + QFont = 64, QPixmap = 65, QBrush = 66, QColor = 67, QPalette = 68, + QIcon = 69, QImage = 70, QPolygon = 71, QRegion = 72, QBitmap = 73, + QCursor = 74, QSizePolicy = 75, QKeySequence = 76, QPen = 77, + QTextLength = 78, QTextFormat = 79, QMatrix = 80, QTransform = 81, + QMatrix4x4 = 82, QVector2D = 83, QVector3D = 84, QVector4D = 85, + QQuaternion = 86, + LastGuiType = QQuaternion, + + FirstCoreExtType = 128 , + VoidStar = 128, Long = 129, Short = 130, Char = 131, ULong = 132, + UShort = 133, UChar = 134, Float = 135, QObjectStar = 136, QWidgetStar = 137, + QVariant = 138, + LastCoreExtType = QVariant, + + + + + + + + QReal = Double, + + + User = 256 + }; + + typedef void (*Destructor)(void *); + typedef void *(*Constructor)(const void *); + + + typedef void (*SaveOperator)(QDataStream &, const void *); + typedef void (*LoadOperator)(QDataStream &, void *); + static void registerStreamOperators(const char *typeName, SaveOperator saveOp, + LoadOperator loadOp); + static void registerStreamOperators(int type, SaveOperator saveOp, + LoadOperator loadOp); + + static int registerType(const char *typeName, Destructor destructor, + Constructor constructor); + static int registerTypedef(const char *typeName, int aliasId); + static int type(const char *typeName); + static const char *typeName(int type); + static bool isRegistered(int type); + static void *construct(int type, const void *copy = 0); + static void destroy(int type, void *data); + static void unregisterType(const char *typeName); + + + static bool save(QDataStream &stream, int type, const void *data); + static bool load(QDataStream &stream, int type, void *data); + +}; + +template +void qMetaTypeDeleteHelper(T *t) +{ + delete t; +} + +template +void *qMetaTypeConstructHelper(const T *t) +{ + if (!t) + return new T(); + return new T(*static_cast(t)); +} + + +template +void qMetaTypeSaveHelper(QDataStream &stream, const T *t) +{ + stream << *t; +} + +template +void qMetaTypeLoadHelper(QDataStream &stream, T *t) +{ + stream >> *t; +} + + +template +struct QMetaTypeId +{ + enum { Defined = 0 }; +}; + +template +struct QMetaTypeId2 +{ + enum { Defined = QMetaTypeId::Defined }; + static inline int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); } +}; + +namespace QtPrivate { + template ::Defined> + struct QMetaTypeIdHelper { + static inline int qt_metatype_id() + { return QMetaTypeId2::qt_metatype_id(); } + }; + template struct QMetaTypeIdHelper { + static inline int qt_metatype_id() + { return -1; } + }; +} + +template +int qRegisterMetaType(const char *typeName + + , T * dummy = 0 + +) +{ + const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper::qt_metatype_id(); + if (typedefOf != -1) + return QMetaType::registerTypedef(typeName, typedefOf); + + typedef void*(*ConstructPtr)(const T*); + ConstructPtr cptr = qMetaTypeConstructHelper; + typedef void(*DeletePtr)(T*); + DeletePtr dptr = qMetaTypeDeleteHelper; + + return QMetaType::registerType(typeName, reinterpret_cast(dptr), + reinterpret_cast(cptr)); +} + + +template +void qRegisterMetaTypeStreamOperators(const char *typeName + + , T * = 0 + +) +{ + typedef void(*SavePtr)(QDataStream &, const T *); + typedef void(*LoadPtr)(QDataStream &, T *); + SavePtr sptr = qMetaTypeSaveHelper; + LoadPtr lptr = qMetaTypeLoadHelper; + + qRegisterMetaType(typeName); + QMetaType::registerStreamOperators(typeName, reinterpret_cast(sptr), + reinterpret_cast(lptr)); +} + + +template +inline int qMetaTypeId( + + T * = 0 + +) +{ + return QMetaTypeId2::qt_metatype_id(); +} + +template +inline int qRegisterMetaType( + + T * dummy = 0 + +) +{ + + + + return qMetaTypeId(dummy); + +} + + +template +inline int qRegisterMetaTypeStreamOperators() +{ + typedef void(*SavePtr)(QDataStream &, const T *); + typedef void(*LoadPtr)(QDataStream &, T *); + SavePtr sptr = qMetaTypeSaveHelper; + LoadPtr lptr = qMetaTypeLoadHelper; + + int id = qMetaTypeId(); + QMetaType::registerStreamOperators(id, + reinterpret_cast(sptr), + reinterpret_cast(lptr)); + + return id; +} +# 291 "/usr/include/qt4/QtCore/qmetatype.h" +class QString; +class QByteArray; +class QChar; +class QStringList; +class QBitArray; +class QDate; +class QTime; +class QDateTime; +class QUrl; +class QLocale; +class QRect; +class QRectF; +class QSize; +class QSizeF; +class QLine; +class QLineF; +class QPoint; +class QPointF; + +class QRegExp; + +class QEasingCurve; +class QWidget; +class QObject; + + + + +class QFont; +class QPixmap; +class QBrush; +class QColor; +class QPalette; +class QIcon; +class QImage; +class QPolygon; +class QRegion; +class QBitmap; +class QCursor; +class QSizePolicy; +class QKeySequence; +class QPen; +class QTextLength; +class QTextFormat; +class QMatrix; +class QTransform; +class QMatrix4x4; +class QVector2D; +class QVector3D; +class QVector4D; +class QQuaternion; +class QVariant; + + + + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QString }; static inline int qt_metatype_id() { return QMetaType::QString; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Int }; static inline int qt_metatype_id() { return QMetaType::Int; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::UInt }; static inline int qt_metatype_id() { return QMetaType::UInt; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Bool }; static inline int qt_metatype_id() { return QMetaType::Bool; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Double }; static inline int qt_metatype_id() { return QMetaType::Double; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QByteArray }; static inline int qt_metatype_id() { return QMetaType::QByteArray; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QChar }; static inline int qt_metatype_id() { return QMetaType::QChar; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Long }; static inline int qt_metatype_id() { return QMetaType::Long; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Short }; static inline int qt_metatype_id() { return QMetaType::Short; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Char }; static inline int qt_metatype_id() { return QMetaType::Char; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Char }; static inline int qt_metatype_id() { return QMetaType::Char; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::ULong }; static inline int qt_metatype_id() { return QMetaType::ULong; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::UShort }; static inline int qt_metatype_id() { return QMetaType::UShort; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::UChar }; static inline int qt_metatype_id() { return QMetaType::UChar; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::Float }; static inline int qt_metatype_id() { return QMetaType::Float; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QObjectStar }; static inline int qt_metatype_id() { return QMetaType::QObjectStar; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QWidgetStar }; static inline int qt_metatype_id() { return QMetaType::QWidgetStar; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::VoidStar }; static inline int qt_metatype_id() { return QMetaType::VoidStar; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::LongLong }; static inline int qt_metatype_id() { return QMetaType::LongLong; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::ULongLong }; static inline int qt_metatype_id() { return QMetaType::ULongLong; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QStringList }; static inline int qt_metatype_id() { return QMetaType::QStringList; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QBitArray }; static inline int qt_metatype_id() { return QMetaType::QBitArray; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QDate }; static inline int qt_metatype_id() { return QMetaType::QDate; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QTime }; static inline int qt_metatype_id() { return QMetaType::QTime; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QDateTime }; static inline int qt_metatype_id() { return QMetaType::QDateTime; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QUrl }; static inline int qt_metatype_id() { return QMetaType::QUrl; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QLocale }; static inline int qt_metatype_id() { return QMetaType::QLocale; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QRect }; static inline int qt_metatype_id() { return QMetaType::QRect; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QRectF }; static inline int qt_metatype_id() { return QMetaType::QRectF; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QSize }; static inline int qt_metatype_id() { return QMetaType::QSize; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QSizeF }; static inline int qt_metatype_id() { return QMetaType::QSizeF; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QLine }; static inline int qt_metatype_id() { return QMetaType::QLine; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QLineF }; static inline int qt_metatype_id() { return QMetaType::QLineF; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QPoint }; static inline int qt_metatype_id() { return QMetaType::QPoint; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QPointF }; static inline int qt_metatype_id() { return QMetaType::QPointF; } }; + + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QRegExp }; static inline int qt_metatype_id() { return QMetaType::QRegExp; } }; + + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QEasingCurve }; static inline int qt_metatype_id() { return QMetaType::QEasingCurve; } }; + + + + + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QFont }; static inline int qt_metatype_id() { return QMetaType::QFont; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QPixmap }; static inline int qt_metatype_id() { return QMetaType::QPixmap; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QBrush }; static inline int qt_metatype_id() { return QMetaType::QBrush; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QColor }; static inline int qt_metatype_id() { return QMetaType::QColor; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QPalette }; static inline int qt_metatype_id() { return QMetaType::QPalette; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QIcon }; static inline int qt_metatype_id() { return QMetaType::QIcon; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QImage }; static inline int qt_metatype_id() { return QMetaType::QImage; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QPolygon }; static inline int qt_metatype_id() { return QMetaType::QPolygon; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QRegion }; static inline int qt_metatype_id() { return QMetaType::QRegion; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QBitmap }; static inline int qt_metatype_id() { return QMetaType::QBitmap; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QCursor }; static inline int qt_metatype_id() { return QMetaType::QCursor; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QSizePolicy }; static inline int qt_metatype_id() { return QMetaType::QSizePolicy; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QKeySequence }; static inline int qt_metatype_id() { return QMetaType::QKeySequence; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QPen }; static inline int qt_metatype_id() { return QMetaType::QPen; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QTextLength }; static inline int qt_metatype_id() { return QMetaType::QTextLength; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QTextFormat }; static inline int qt_metatype_id() { return QMetaType::QTextFormat; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QMatrix }; static inline int qt_metatype_id() { return QMetaType::QMatrix; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QTransform }; static inline int qt_metatype_id() { return QMetaType::QTransform; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QMatrix4x4 }; static inline int qt_metatype_id() { return QMetaType::QMatrix4x4; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVector2D }; static inline int qt_metatype_id() { return QMetaType::QVector2D; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVector3D }; static inline int qt_metatype_id() { return QMetaType::QVector3D; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVector4D }; static inline int qt_metatype_id() { return QMetaType::QVector4D; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QQuaternion }; static inline int qt_metatype_id() { return QMetaType::QQuaternion; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVariant }; static inline int qt_metatype_id() { return QMetaType::QVariant; } }; + + +# 49 "/usr/include/qt4/QtCore/qvariant.h" 2 +# 1 "/usr/include/qt4/QtCore/qmap.h" 1 +# 50 "/usr/include/qt4/QtCore/qmap.h" +# 1 "/usr/include/c++/5/map" 1 3 +# 58 "/usr/include/c++/5/map" 3 + +# 59 "/usr/include/c++/5/map" 3 + +# 1 "/usr/include/c++/5/bits/stl_tree.h" 1 3 +# 61 "/usr/include/c++/5/bits/stl_tree.h" 3 + +# 62 "/usr/include/c++/5/bits/stl_tree.h" 3 + + + + + + + +# 1 "/usr/include/c++/5/ext/aligned_buffer.h" 1 3 +# 32 "/usr/include/c++/5/ext/aligned_buffer.h" 3 + +# 33 "/usr/include/c++/5/ext/aligned_buffer.h" 3 + + + + + + + + +# 40 "/usr/include/c++/5/ext/aligned_buffer.h" 3 +namespace __gnu_cxx +{ + + + + + template + struct __aligned_membuf + { + + + + struct _Tp2 { _Tp _M_t; }; + + alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; + + __aligned_membuf() = default; + + + __aligned_membuf(std::nullptr_t) { } + + void* + _M_addr() noexcept + { return static_cast(&_M_storage); } + + const void* + _M_addr() const noexcept + { return static_cast(&_M_storage); } + + _Tp* + _M_ptr() noexcept + { return static_cast<_Tp*>(_M_addr()); } + + const _Tp* + _M_ptr() const noexcept + { return static_cast(_M_addr()); } + }; + + + + + + + template + struct __aligned_buffer + : std::aligned_storage::value> + { + typename + std::aligned_storage::value>::type + _M_storage; + + __aligned_buffer() = default; + + + __aligned_buffer(std::nullptr_t) { } + + void* + _M_addr() noexcept + { + return static_cast(&_M_storage); + } + + const void* + _M_addr() const noexcept + { + return static_cast(&_M_storage); + } + + _Tp* + _M_ptr() noexcept + { return static_cast<_Tp*>(_M_addr()); } + + const _Tp* + _M_ptr() const noexcept + { return static_cast(_M_addr()); } + }; + +} +# 70 "/usr/include/c++/5/bits/stl_tree.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 92 "/usr/include/c++/5/bits/stl_tree.h" 3 + enum _Rb_tree_color { _S_red = false, _S_black = true }; + + struct _Rb_tree_node_base + { + typedef _Rb_tree_node_base* _Base_ptr; + typedef const _Rb_tree_node_base* _Const_Base_ptr; + + _Rb_tree_color _M_color; + _Base_ptr _M_parent; + _Base_ptr _M_left; + _Base_ptr _M_right; + + static _Base_ptr + _S_minimum(_Base_ptr __x) noexcept + { + while (__x->_M_left != 0) __x = __x->_M_left; + return __x; + } + + static _Const_Base_ptr + _S_minimum(_Const_Base_ptr __x) noexcept + { + while (__x->_M_left != 0) __x = __x->_M_left; + return __x; + } + + static _Base_ptr + _S_maximum(_Base_ptr __x) noexcept + { + while (__x->_M_right != 0) __x = __x->_M_right; + return __x; + } + + static _Const_Base_ptr + _S_maximum(_Const_Base_ptr __x) noexcept + { + while (__x->_M_right != 0) __x = __x->_M_right; + return __x; + } + }; + + template + struct _Rb_tree_node : public _Rb_tree_node_base + { + typedef _Rb_tree_node<_Val>* _Link_type; +# 149 "/usr/include/c++/5/bits/stl_tree.h" 3 + __gnu_cxx::__aligned_membuf<_Val> _M_storage; + + _Val* + _M_valptr() + { return _M_storage._M_ptr(); } + + const _Val* + _M_valptr() const + { return _M_storage._M_ptr(); } + + }; + + __attribute__ ((__pure__)) _Rb_tree_node_base* + _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); + + __attribute__ ((__pure__)) const _Rb_tree_node_base* + _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); + + __attribute__ ((__pure__)) _Rb_tree_node_base* + _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); + + __attribute__ ((__pure__)) const _Rb_tree_node_base* + _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); + + template + struct _Rb_tree_iterator + { + typedef _Tp value_type; + typedef _Tp& reference; + typedef _Tp* pointer; + + typedef bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; + + typedef _Rb_tree_iterator<_Tp> _Self; + typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; + typedef _Rb_tree_node<_Tp>* _Link_type; + + _Rb_tree_iterator() noexcept + : _M_node() { } + + explicit + _Rb_tree_iterator(_Base_ptr __x) noexcept + : _M_node(__x) { } + + reference + operator*() const noexcept + { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } + + pointer + operator->() const noexcept + { return static_cast<_Link_type> (_M_node)->_M_valptr(); } + + _Self& + operator++() noexcept + { + _M_node = _Rb_tree_increment(_M_node); + return *this; + } + + _Self + operator++(int) noexcept + { + _Self __tmp = *this; + _M_node = _Rb_tree_increment(_M_node); + return __tmp; + } + + _Self& + operator--() noexcept + { + _M_node = _Rb_tree_decrement(_M_node); + return *this; + } + + _Self + operator--(int) noexcept + { + _Self __tmp = *this; + _M_node = _Rb_tree_decrement(_M_node); + return __tmp; + } + + bool + operator==(const _Self& __x) const noexcept + { return _M_node == __x._M_node; } + + bool + operator!=(const _Self& __x) const noexcept + { return _M_node != __x._M_node; } + + _Base_ptr _M_node; + }; + + template + struct _Rb_tree_const_iterator + { + typedef _Tp value_type; + typedef const _Tp& reference; + typedef const _Tp* pointer; + + typedef _Rb_tree_iterator<_Tp> iterator; + + typedef bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; + + typedef _Rb_tree_const_iterator<_Tp> _Self; + typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; + typedef const _Rb_tree_node<_Tp>* _Link_type; + + _Rb_tree_const_iterator() noexcept + : _M_node() { } + + explicit + _Rb_tree_const_iterator(_Base_ptr __x) noexcept + : _M_node(__x) { } + + _Rb_tree_const_iterator(const iterator& __it) noexcept + : _M_node(__it._M_node) { } + + iterator + _M_const_cast() const noexcept + { return iterator(const_cast(_M_node)); } + + reference + operator*() const noexcept + { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } + + pointer + operator->() const noexcept + { return static_cast<_Link_type>(_M_node)->_M_valptr(); } + + _Self& + operator++() noexcept + { + _M_node = _Rb_tree_increment(_M_node); + return *this; + } + + _Self + operator++(int) noexcept + { + _Self __tmp = *this; + _M_node = _Rb_tree_increment(_M_node); + return __tmp; + } + + _Self& + operator--() noexcept + { + _M_node = _Rb_tree_decrement(_M_node); + return *this; + } + + _Self + operator--(int) noexcept + { + _Self __tmp = *this; + _M_node = _Rb_tree_decrement(_M_node); + return __tmp; + } + + bool + operator==(const _Self& __x) const noexcept + { return _M_node == __x._M_node; } + + bool + operator!=(const _Self& __x) const noexcept + { return _M_node != __x._M_node; } + + _Base_ptr _M_node; + }; + + template + inline bool + operator==(const _Rb_tree_iterator<_Val>& __x, + const _Rb_tree_const_iterator<_Val>& __y) noexcept + { return __x._M_node == __y._M_node; } + + template + inline bool + operator!=(const _Rb_tree_iterator<_Val>& __x, + const _Rb_tree_const_iterator<_Val>& __y) noexcept + { return __x._M_node != __y._M_node; } + + void + _Rb_tree_insert_and_rebalance(const bool __insert_left, + _Rb_tree_node_base* __x, + _Rb_tree_node_base* __p, + _Rb_tree_node_base& __header) throw (); + + _Rb_tree_node_base* + _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, + _Rb_tree_node_base& __header) throw (); + + + template > + class _Rb_tree + { + typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template + rebind<_Rb_tree_node<_Val> >::other _Node_allocator; + + typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; + + protected: + typedef _Rb_tree_node_base* _Base_ptr; + typedef const _Rb_tree_node_base* _Const_Base_ptr; + typedef _Rb_tree_node<_Val>* _Link_type; + typedef const _Rb_tree_node<_Val>* _Const_Link_type; + + private: + + + struct _Reuse_or_alloc_node + { + _Reuse_or_alloc_node(_Rb_tree& __t) + : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) + { + if (_M_root) + { + _M_root->_M_parent = 0; + + if (_M_nodes->_M_left) + _M_nodes = _M_nodes->_M_left; + } + else + _M_nodes = 0; + } + + + _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; + + + ~_Reuse_or_alloc_node() + { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } + + template + _Link_type + + + + operator()(_Arg&& __arg) + + { + _Link_type __node = static_cast<_Link_type>(_M_extract()); + if (__node) + { + _M_t._M_destroy_node(__node); + _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); + return __node; + } + + return _M_t._M_create_node(std::forward<_Arg>(__arg)); + } + + private: + _Base_ptr + _M_extract() + { + if (!_M_nodes) + return _M_nodes; + + _Base_ptr __node = _M_nodes; + _M_nodes = _M_nodes->_M_parent; + if (_M_nodes) + { + if (_M_nodes->_M_right == __node) + { + _M_nodes->_M_right = 0; + + if (_M_nodes->_M_left) + { + _M_nodes = _M_nodes->_M_left; + + while (_M_nodes->_M_right) + _M_nodes = _M_nodes->_M_right; + + if (_M_nodes->_M_left) + _M_nodes = _M_nodes->_M_left; + } + } + else + _M_nodes->_M_left = 0; + } + else + _M_root = 0; + + return __node; + } + + _Base_ptr _M_root; + _Base_ptr _M_nodes; + _Rb_tree& _M_t; + }; + + + + struct _Alloc_node + { + _Alloc_node(_Rb_tree& __t) + : _M_t(__t) { } + + template + _Link_type + + + + operator()(_Arg&& __arg) const + + { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } + + private: + _Rb_tree& _M_t; + }; + + public: + typedef _Key key_type; + typedef _Val value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Alloc allocator_type; + + _Node_allocator& + _M_get_Node_allocator() noexcept + { return *static_cast<_Node_allocator*>(&this->_M_impl); } + + const _Node_allocator& + _M_get_Node_allocator() const noexcept + { return *static_cast(&this->_M_impl); } + + allocator_type + get_allocator() const noexcept + { return allocator_type(_M_get_Node_allocator()); } + + protected: + _Link_type + _M_get_node() + { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } + + void + _M_put_node(_Link_type __p) noexcept + { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } +# 522 "/usr/include/c++/5/bits/stl_tree.h" 3 + template + void + _M_construct_node(_Link_type __node, _Args&&... __args) + { + try + { + ::new(__node) _Rb_tree_node<_Val>; + _Alloc_traits::construct(_M_get_Node_allocator(), + __node->_M_valptr(), + std::forward<_Args>(__args)...); + } + catch(...) + { + __node->~_Rb_tree_node<_Val>(); + _M_put_node(__node); + throw; + } + } + + template + _Link_type + _M_create_node(_Args&&... __args) + { + _Link_type __tmp = _M_get_node(); + _M_construct_node(__tmp, std::forward<_Args>(__args)...); + return __tmp; + } + + void + _M_destroy_node(_Link_type __p) noexcept + { + _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); + __p->~_Rb_tree_node<_Val>(); + } + + + void + _M_drop_node(_Link_type __p) noexcept + { + _M_destroy_node(__p); + _M_put_node(__p); + } + + template + _Link_type + _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) + { + _Link_type __tmp = __node_gen(*__x->_M_valptr()); + __tmp->_M_color = __x->_M_color; + __tmp->_M_left = 0; + __tmp->_M_right = 0; + return __tmp; + } + + protected: + + template + struct _Rb_tree_impl : public _Node_allocator + { + _Key_compare _M_key_compare; + _Rb_tree_node_base _M_header; + size_type _M_node_count; + + _Rb_tree_impl() + : _Node_allocator(), _M_key_compare(), _M_header(), + _M_node_count(0) + { _M_initialize(); } + + _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) + : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), + _M_node_count(0) + { _M_initialize(); } + + + _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) + : _Node_allocator(std::move(__a)), _M_key_compare(__comp), + _M_header(), _M_node_count(0) + { _M_initialize(); } + + + void + _M_reset() + { + this->_M_header._M_parent = 0; + this->_M_header._M_left = &this->_M_header; + this->_M_header._M_right = &this->_M_header; + this->_M_node_count = 0; + } + + private: + void + _M_initialize() + { + this->_M_header._M_color = _S_red; + this->_M_header._M_parent = 0; + this->_M_header._M_left = &this->_M_header; + this->_M_header._M_right = &this->_M_header; + } + }; + + _Rb_tree_impl<_Compare> _M_impl; + + protected: + _Base_ptr& + _M_root() noexcept + { return this->_M_impl._M_header._M_parent; } + + _Const_Base_ptr + _M_root() const noexcept + { return this->_M_impl._M_header._M_parent; } + + _Base_ptr& + _M_leftmost() noexcept + { return this->_M_impl._M_header._M_left; } + + _Const_Base_ptr + _M_leftmost() const noexcept + { return this->_M_impl._M_header._M_left; } + + _Base_ptr& + _M_rightmost() noexcept + { return this->_M_impl._M_header._M_right; } + + _Const_Base_ptr + _M_rightmost() const noexcept + { return this->_M_impl._M_header._M_right; } + + _Link_type + _M_begin() noexcept + { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } + + _Const_Link_type + _M_begin() const noexcept + { + return static_cast<_Const_Link_type> + (this->_M_impl._M_header._M_parent); + } + + _Link_type + _M_end() noexcept + { return reinterpret_cast<_Link_type>(&this->_M_impl._M_header); } + + _Const_Link_type + _M_end() const noexcept + { return reinterpret_cast<_Const_Link_type>(&this->_M_impl._M_header); } + + static const_reference + _S_value(_Const_Link_type __x) + { return *__x->_M_valptr(); } + + static const _Key& + _S_key(_Const_Link_type __x) + { return _KeyOfValue()(_S_value(__x)); } + + static _Link_type + _S_left(_Base_ptr __x) noexcept + { return static_cast<_Link_type>(__x->_M_left); } + + static _Const_Link_type + _S_left(_Const_Base_ptr __x) noexcept + { return static_cast<_Const_Link_type>(__x->_M_left); } + + static _Link_type + _S_right(_Base_ptr __x) noexcept + { return static_cast<_Link_type>(__x->_M_right); } + + static _Const_Link_type + _S_right(_Const_Base_ptr __x) noexcept + { return static_cast<_Const_Link_type>(__x->_M_right); } + + static const_reference + _S_value(_Const_Base_ptr __x) + { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } + + static const _Key& + _S_key(_Const_Base_ptr __x) + { return _KeyOfValue()(_S_value(__x)); } + + static _Base_ptr + _S_minimum(_Base_ptr __x) noexcept + { return _Rb_tree_node_base::_S_minimum(__x); } + + static _Const_Base_ptr + _S_minimum(_Const_Base_ptr __x) noexcept + { return _Rb_tree_node_base::_S_minimum(__x); } + + static _Base_ptr + _S_maximum(_Base_ptr __x) noexcept + { return _Rb_tree_node_base::_S_maximum(__x); } + + static _Const_Base_ptr + _S_maximum(_Const_Base_ptr __x) noexcept + { return _Rb_tree_node_base::_S_maximum(__x); } + + public: + typedef _Rb_tree_iterator iterator; + typedef _Rb_tree_const_iterator const_iterator; + + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; + + private: + pair<_Base_ptr, _Base_ptr> + _M_get_insert_unique_pos(const key_type& __k); + + pair<_Base_ptr, _Base_ptr> + _M_get_insert_equal_pos(const key_type& __k); + + pair<_Base_ptr, _Base_ptr> + _M_get_insert_hint_unique_pos(const_iterator __pos, + const key_type& __k); + + pair<_Base_ptr, _Base_ptr> + _M_get_insert_hint_equal_pos(const_iterator __pos, + const key_type& __k); + + + template + iterator + _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); + + iterator + _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); + + template + iterator + _M_insert_lower(_Base_ptr __y, _Arg&& __v); + + template + iterator + _M_insert_equal_lower(_Arg&& __x); + + iterator + _M_insert_lower_node(_Base_ptr __p, _Link_type __z); + + iterator + _M_insert_equal_lower_node(_Link_type __z); +# 775 "/usr/include/c++/5/bits/stl_tree.h" 3 + template + _Link_type + _M_copy(_Const_Link_type __x, _Link_type __p, _NodeGen&); + + _Link_type + _M_copy(_Const_Link_type __x, _Link_type __p) + { + _Alloc_node __an(*this); + return _M_copy(__x, __p, __an); + } + + void + _M_erase(_Link_type __x); + + iterator + _M_lower_bound(_Link_type __x, _Link_type __y, + const _Key& __k); + + const_iterator + _M_lower_bound(_Const_Link_type __x, _Const_Link_type __y, + const _Key& __k) const; + + iterator + _M_upper_bound(_Link_type __x, _Link_type __y, + const _Key& __k); + + const_iterator + _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, + const _Key& __k) const; + + public: + + _Rb_tree() { } + + _Rb_tree(const _Compare& __comp, + const allocator_type& __a = allocator_type()) + : _M_impl(__comp, _Node_allocator(__a)) { } + + _Rb_tree(const _Rb_tree& __x) + : _M_impl(__x._M_impl._M_key_compare, + _Alloc_traits::_S_select_on_copy(__x._M_get_Node_allocator())) + { + if (__x._M_root() != 0) + { + _M_root() = _M_copy(__x._M_begin(), _M_end()); + _M_leftmost() = _S_minimum(_M_root()); + _M_rightmost() = _S_maximum(_M_root()); + _M_impl._M_node_count = __x._M_impl._M_node_count; + } + } + + + _Rb_tree(const allocator_type& __a) + : _M_impl(_Compare(), _Node_allocator(__a)) + { } + + _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) + : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) + { + if (__x._M_root() != nullptr) + { + _M_root() = _M_copy(__x._M_begin(), _M_end()); + _M_leftmost() = _S_minimum(_M_root()); + _M_rightmost() = _S_maximum(_M_root()); + _M_impl._M_node_count = __x._M_impl._M_node_count; + } + } + + _Rb_tree(_Rb_tree&& __x) + : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) + { + if (__x._M_root() != 0) + _M_move_data(__x, std::true_type()); + } + + _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) + : _Rb_tree(std::move(__x), _Node_allocator(__a)) + { } + + _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); + + + ~_Rb_tree() noexcept + { _M_erase(_M_begin()); } + + _Rb_tree& + operator=(const _Rb_tree& __x); + + + _Compare + key_comp() const + { return _M_impl._M_key_compare; } + + iterator + begin() noexcept + { return iterator(this->_M_impl._M_header._M_left); } + + const_iterator + begin() const noexcept + { return const_iterator(this->_M_impl._M_header._M_left); } + + iterator + end() noexcept + { return iterator(&this->_M_impl._M_header); } + + const_iterator + end() const noexcept + { return const_iterator(&this->_M_impl._M_header); } + + reverse_iterator + rbegin() noexcept + { return reverse_iterator(end()); } + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(end()); } + + reverse_iterator + rend() noexcept + { return reverse_iterator(begin()); } + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(begin()); } + + bool + empty() const noexcept + { return _M_impl._M_node_count == 0; } + + size_type + size() const noexcept + { return _M_impl._M_node_count; } + + size_type + max_size() const noexcept + { return _Alloc_traits::max_size(_M_get_Node_allocator()); } + + void + + swap(_Rb_tree& __t) noexcept(_Alloc_traits::_S_nothrow_swap()); + + + + + + + template + pair + _M_insert_unique(_Arg&& __x); + + template + iterator + _M_insert_equal(_Arg&& __x); + + template + iterator + _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); + + template + iterator + _M_insert_unique_(const_iterator __pos, _Arg&& __x) + { + _Alloc_node __an(*this); + return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); + } + + template + iterator + _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); + + template + iterator + _M_insert_equal_(const_iterator __pos, _Arg&& __x) + { + _Alloc_node __an(*this); + return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); + } + + template + pair + _M_emplace_unique(_Args&&... __args); + + template + iterator + _M_emplace_equal(_Args&&... __args); + + template + iterator + _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); + + template + iterator + _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); +# 999 "/usr/include/c++/5/bits/stl_tree.h" 3 + template + void + _M_insert_unique(_InputIterator __first, _InputIterator __last); + + template + void + _M_insert_equal(_InputIterator __first, _InputIterator __last); + + private: + void + _M_erase_aux(const_iterator __position); + + void + _M_erase_aux(const_iterator __first, const_iterator __last); + + public: + + + + __attribute ((__abi_tag__ ("cxx11"))) + iterator + erase(const_iterator __position) + { + const_iterator __result = __position; + ++__result; + _M_erase_aux(__position); + return __result._M_const_cast(); + } + + + __attribute ((__abi_tag__ ("cxx11"))) + iterator + erase(iterator __position) + { + iterator __result = __position; + ++__result; + _M_erase_aux(__position); + return __result; + } +# 1047 "/usr/include/c++/5/bits/stl_tree.h" 3 + size_type + erase(const key_type& __x); + + + + + __attribute ((__abi_tag__ ("cxx11"))) + iterator + erase(const_iterator __first, const_iterator __last) + { + _M_erase_aux(__first, __last); + return __last._M_const_cast(); + } +# 1069 "/usr/include/c++/5/bits/stl_tree.h" 3 + void + erase(const key_type* __first, const key_type* __last); + + void + clear() noexcept + { + _M_erase(_M_begin()); + _M_impl._M_reset(); + } + + + iterator + find(const key_type& __k); + + const_iterator + find(const key_type& __k) const; + + size_type + count(const key_type& __k) const; + + iterator + lower_bound(const key_type& __k) + { return _M_lower_bound(_M_begin(), _M_end(), __k); } + + const_iterator + lower_bound(const key_type& __k) const + { return _M_lower_bound(_M_begin(), _M_end(), __k); } + + iterator + upper_bound(const key_type& __k) + { return _M_upper_bound(_M_begin(), _M_end(), __k); } + + const_iterator + upper_bound(const key_type& __k) const + { return _M_upper_bound(_M_begin(), _M_end(), __k); } + + pair + equal_range(const key_type& __k); + + pair + equal_range(const key_type& __k) const; +# 1243 "/usr/include/c++/5/bits/stl_tree.h" 3 + bool + __rb_verify() const; + + + _Rb_tree& + operator=(_Rb_tree&&) noexcept(_Alloc_traits::_S_nothrow_move()); + + template + void + _M_assign_unique(_Iterator, _Iterator); + + template + void + _M_assign_equal(_Iterator, _Iterator); + + private: + + void + _M_move_data(_Rb_tree&, std::true_type); + + + + void + _M_move_data(_Rb_tree&, std::false_type); + + }; + + template + inline bool + operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { + return __x.size() == __y.size() + && std::equal(__x.begin(), __x.end(), __y.begin()); + } + + template + inline bool + operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { + return std::lexicographical_compare(__x.begin(), __x.end(), + __y.begin(), __y.end()); + } + + template + inline bool + operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { return !(__x == __y); } + + template + inline bool + operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { return __y < __x; } + + template + inline bool + operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { return !(__y < __x); } + + template + inline bool + operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { return !(__x < __y); } + + template + inline void + swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) + { __x.swap(__y); } + + + template + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) + : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) + { + using __eq = integral_constant; + if (__x._M_root() != nullptr) + _M_move_data(__x, __eq()); + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_move_data(_Rb_tree& __x, std::true_type) + { + _M_root() = __x._M_root(); + _M_leftmost() = __x._M_leftmost(); + _M_rightmost() = __x._M_rightmost(); + _M_root()->_M_parent = _M_end(); + + __x._M_root() = 0; + __x._M_leftmost() = __x._M_end(); + __x._M_rightmost() = __x._M_end(); + + this->_M_impl._M_node_count = __x._M_impl._M_node_count; + __x._M_impl._M_node_count = 0; + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_move_data(_Rb_tree& __x, std::false_type) + { + if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) + _M_move_data(__x, std::true_type()); + else + { + _Alloc_node __an(*this); + auto __lbd = + [&__an](const value_type& __cval) + { + auto& __val = const_cast(__cval); + return __an(std::move_if_noexcept(__val)); + }; + _M_root() = _M_copy(__x._M_begin(), _M_end(), __lbd); + _M_leftmost() = _S_minimum(_M_root()); + _M_rightmost() = _S_maximum(_M_root()); + _M_impl._M_node_count = __x._M_impl._M_node_count; + } + } + + template + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + operator=(_Rb_tree&& __x) + noexcept(_Alloc_traits::_S_nothrow_move()) + { + _M_impl._M_key_compare = __x._M_impl._M_key_compare; + if (_Alloc_traits::_S_propagate_on_move_assign() + || _Alloc_traits::_S_always_equal() + || _M_get_Node_allocator() == __x._M_get_Node_allocator()) + { + clear(); + if (__x._M_root() != nullptr) + _M_move_data(__x, std::true_type()); + std::__alloc_on_move(_M_get_Node_allocator(), + __x._M_get_Node_allocator()); + return *this; + } + + + + _Reuse_or_alloc_node __roan(*this); + _M_impl._M_reset(); + if (__x._M_root() != nullptr) + { + auto __lbd = + [&__roan](const value_type& __cval) + { + auto& __val = const_cast(__cval); + return __roan(std::move_if_noexcept(__val)); + }; + _M_root() = _M_copy(__x._M_begin(), _M_end(), __lbd); + _M_leftmost() = _S_minimum(_M_root()); + _M_rightmost() = _S_maximum(_M_root()); + _M_impl._M_node_count = __x._M_impl._M_node_count; + __x.clear(); + } + return *this; + } + + template + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_assign_unique(_Iterator __first, _Iterator __last) + { + _Reuse_or_alloc_node __roan(*this); + _M_impl._M_reset(); + for (; __first != __last; ++__first) + _M_insert_unique_(end(), *__first, __roan); + } + + template + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_assign_equal(_Iterator __first, _Iterator __last) + { + _Reuse_or_alloc_node __roan(*this); + _M_impl._M_reset(); + for (; __first != __last; ++__first) + _M_insert_equal_(end(), *__first, __roan); + } + + + template + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + operator=(const _Rb_tree& __x) + { + if (this != &__x) + { + + + if (_Alloc_traits::_S_propagate_on_copy_assign()) + { + auto& __this_alloc = this->_M_get_Node_allocator(); + auto& __that_alloc = __x._M_get_Node_allocator(); + if (!_Alloc_traits::_S_always_equal() + && __this_alloc != __that_alloc) + { + + + clear(); + std::__alloc_on_copy(__this_alloc, __that_alloc); + } + } + + + _Reuse_or_alloc_node __roan(*this); + _M_impl._M_reset(); + _M_impl._M_key_compare = __x._M_impl._M_key_compare; + if (__x._M_root() != 0) + { + _M_root() = _M_copy(__x._M_begin(), _M_end(), __roan); + _M_leftmost() = _S_minimum(_M_root()); + _M_rightmost() = _S_maximum(_M_root()); + _M_impl._M_node_count = __x._M_impl._M_node_count; + } + } + + return *this; + } + + template + + template + + + + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_insert_(_Base_ptr __x, _Base_ptr __p, + + _Arg&& __v, + + + + _NodeGen& __node_gen) + { + bool __insert_left = (__x != 0 || __p == _M_end() + || _M_impl._M_key_compare(_KeyOfValue()(__v), + _S_key(__p))); + + _Link_type __z = __node_gen(std::forward<_Arg>(__v)); + + _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, + this->_M_impl._M_header); + ++_M_impl._M_node_count; + return iterator(__z); + } + + template + + template + + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + + _M_insert_lower(_Base_ptr __p, _Arg&& __v) + + + + { + bool __insert_left = (__p == _M_end() + || !_M_impl._M_key_compare(_S_key(__p), + _KeyOfValue()(__v))); + + _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); + + _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, + this->_M_impl._M_header); + ++_M_impl._M_node_count; + return iterator(__z); + } + + template + + template + + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + + _M_insert_equal_lower(_Arg&& __v) + + + + { + _Link_type __x = _M_begin(); + _Link_type __y = _M_end(); + while (__x != 0) + { + __y = __x; + __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? + _S_left(__x) : _S_right(__x); + } + return _M_insert_lower(__y, std::forward<_Arg>(__v)); + } + + template + template + typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type + _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: + _M_copy(_Const_Link_type __x, _Link_type __p, _NodeGen& __node_gen) + { + + _Link_type __top = _M_clone_node(__x, __node_gen); + __top->_M_parent = __p; + + try + { + if (__x->_M_right) + __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); + __p = __top; + __x = _S_left(__x); + + while (__x != 0) + { + _Link_type __y = _M_clone_node(__x, __node_gen); + __p->_M_left = __y; + __y->_M_parent = __p; + if (__x->_M_right) + __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); + __p = __y; + __x = _S_left(__x); + } + } + catch(...) + { + _M_erase(__top); + throw; + } + return __top; + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_erase(_Link_type __x) + { + + while (__x != 0) + { + _M_erase(_S_right(__x)); + _Link_type __y = _S_left(__x); + _M_drop_node(__x); + __x = __y; + } + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_lower_bound(_Link_type __x, _Link_type __y, + const _Key& __k) + { + while (__x != 0) + if (!_M_impl._M_key_compare(_S_key(__x), __k)) + __y = __x, __x = _S_left(__x); + else + __x = _S_right(__x); + return iterator(__y); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::const_iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_lower_bound(_Const_Link_type __x, _Const_Link_type __y, + const _Key& __k) const + { + while (__x != 0) + if (!_M_impl._M_key_compare(_S_key(__x), __k)) + __y = __x, __x = _S_left(__x); + else + __x = _S_right(__x); + return const_iterator(__y); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_upper_bound(_Link_type __x, _Link_type __y, + const _Key& __k) + { + while (__x != 0) + if (_M_impl._M_key_compare(__k, _S_key(__x))) + __y = __x, __x = _S_left(__x); + else + __x = _S_right(__x); + return iterator(__y); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::const_iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, + const _Key& __k) const + { + while (__x != 0) + if (_M_impl._M_key_compare(__k, _S_key(__x))) + __y = __x, __x = _S_left(__x); + else + __x = _S_right(__x); + return const_iterator(__y); + } + + template + pair::iterator, + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::iterator> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + equal_range(const _Key& __k) + { + _Link_type __x = _M_begin(); + _Link_type __y = _M_end(); + while (__x != 0) + { + if (_M_impl._M_key_compare(_S_key(__x), __k)) + __x = _S_right(__x); + else if (_M_impl._M_key_compare(__k, _S_key(__x))) + __y = __x, __x = _S_left(__x); + else + { + _Link_type __xu(__x), __yu(__y); + __y = __x, __x = _S_left(__x); + __xu = _S_right(__xu); + return pair(_M_lower_bound(__x, __y, __k), + _M_upper_bound(__xu, __yu, __k)); + } + } + return pair(iterator(__y), + iterator(__y)); + } + + template + pair::const_iterator, + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::const_iterator> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + equal_range(const _Key& __k) const + { + _Const_Link_type __x = _M_begin(); + _Const_Link_type __y = _M_end(); + while (__x != 0) + { + if (_M_impl._M_key_compare(_S_key(__x), __k)) + __x = _S_right(__x); + else if (_M_impl._M_key_compare(__k, _S_key(__x))) + __y = __x, __x = _S_left(__x); + else + { + _Const_Link_type __xu(__x), __yu(__y); + __y = __x, __x = _S_left(__x); + __xu = _S_right(__xu); + return pair(_M_lower_bound(__x, __y, __k), + _M_upper_bound(__xu, __yu, __k)); + } + } + return pair(const_iterator(__y), + const_iterator(__y)); + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t) + + noexcept(_Alloc_traits::_S_nothrow_swap()) + + { + if (_M_root() == 0) + { + if (__t._M_root() != 0) + { + _M_root() = __t._M_root(); + _M_leftmost() = __t._M_leftmost(); + _M_rightmost() = __t._M_rightmost(); + _M_root()->_M_parent = _M_end(); + _M_impl._M_node_count = __t._M_impl._M_node_count; + + __t._M_impl._M_reset(); + } + } + else if (__t._M_root() == 0) + { + __t._M_root() = _M_root(); + __t._M_leftmost() = _M_leftmost(); + __t._M_rightmost() = _M_rightmost(); + __t._M_root()->_M_parent = __t._M_end(); + __t._M_impl._M_node_count = _M_impl._M_node_count; + + _M_impl._M_reset(); + } + else + { + std::swap(_M_root(),__t._M_root()); + std::swap(_M_leftmost(),__t._M_leftmost()); + std::swap(_M_rightmost(),__t._M_rightmost()); + + _M_root()->_M_parent = _M_end(); + __t._M_root()->_M_parent = __t._M_end(); + std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); + } + + std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); + + _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), + __t._M_get_Node_allocator()); + } + + template + pair::_Base_ptr, + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::_Base_ptr> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_get_insert_unique_pos(const key_type& __k) + { + typedef pair<_Base_ptr, _Base_ptr> _Res; + _Link_type __x = _M_begin(); + _Link_type __y = _M_end(); + bool __comp = true; + while (__x != 0) + { + __y = __x; + __comp = _M_impl._M_key_compare(__k, _S_key(__x)); + __x = __comp ? _S_left(__x) : _S_right(__x); + } + iterator __j = iterator(__y); + if (__comp) + { + if (__j == begin()) + return _Res(__x, __y); + else + --__j; + } + if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) + return _Res(__x, __y); + return _Res(__j._M_node, 0); + } + + template + pair::_Base_ptr, + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::_Base_ptr> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_get_insert_equal_pos(const key_type& __k) + { + typedef pair<_Base_ptr, _Base_ptr> _Res; + _Link_type __x = _M_begin(); + _Link_type __y = _M_end(); + while (__x != 0) + { + __y = __x; + __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? + _S_left(__x) : _S_right(__x); + } + return _Res(__x, __y); + } + + template + + template + + pair::iterator, bool> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + + _M_insert_unique(_Arg&& __v) + + + + { + typedef pair _Res; + pair<_Base_ptr, _Base_ptr> __res + = _M_get_insert_unique_pos(_KeyOfValue()(__v)); + + if (__res.second) + { + _Alloc_node __an(*this); + return _Res(_M_insert_(__res.first, __res.second, + std::forward<_Arg>(__v), __an), + true); + } + + return _Res(iterator(static_cast<_Link_type>(__res.first)), false); + } + + template + + template + + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + + _M_insert_equal(_Arg&& __v) + + + + { + pair<_Base_ptr, _Base_ptr> __res + = _M_get_insert_equal_pos(_KeyOfValue()(__v)); + _Alloc_node __an(*this); + return _M_insert_(__res.first, __res.second, + std::forward<_Arg>(__v), __an); + } + + template + pair::_Base_ptr, + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::_Base_ptr> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_get_insert_hint_unique_pos(const_iterator __position, + const key_type& __k) + { + iterator __pos = __position._M_const_cast(); + typedef pair<_Base_ptr, _Base_ptr> _Res; + + + if (__pos._M_node == _M_end()) + { + if (size() > 0 + && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) + return _Res(0, _M_rightmost()); + else + return _M_get_insert_unique_pos(__k); + } + else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) + { + + iterator __before = __pos; + if (__pos._M_node == _M_leftmost()) + return _Res(_M_leftmost(), _M_leftmost()); + else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) + { + if (_S_right(__before._M_node) == 0) + return _Res(0, __before._M_node); + else + return _Res(__pos._M_node, __pos._M_node); + } + else + return _M_get_insert_unique_pos(__k); + } + else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) + { + + iterator __after = __pos; + if (__pos._M_node == _M_rightmost()) + return _Res(0, _M_rightmost()); + else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) + { + if (_S_right(__pos._M_node) == 0) + return _Res(0, __pos._M_node); + else + return _Res(__after._M_node, __after._M_node); + } + else + return _M_get_insert_unique_pos(__k); + } + else + + return _Res(__pos._M_node, 0); + } + + template + + template + + + + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_insert_unique_(const_iterator __position, + + _Arg&& __v, + + + + _NodeGen& __node_gen) + { + pair<_Base_ptr, _Base_ptr> __res + = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); + + if (__res.second) + return _M_insert_(__res.first, __res.second, + std::forward<_Arg>(__v), + __node_gen); + return iterator(static_cast<_Link_type>(__res.first)); + } + + template + pair::_Base_ptr, + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::_Base_ptr> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) + { + iterator __pos = __position._M_const_cast(); + typedef pair<_Base_ptr, _Base_ptr> _Res; + + + if (__pos._M_node == _M_end()) + { + if (size() > 0 + && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) + return _Res(0, _M_rightmost()); + else + return _M_get_insert_equal_pos(__k); + } + else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) + { + + iterator __before = __pos; + if (__pos._M_node == _M_leftmost()) + return _Res(_M_leftmost(), _M_leftmost()); + else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) + { + if (_S_right(__before._M_node) == 0) + return _Res(0, __before._M_node); + else + return _Res(__pos._M_node, __pos._M_node); + } + else + return _M_get_insert_equal_pos(__k); + } + else + { + + iterator __after = __pos; + if (__pos._M_node == _M_rightmost()) + return _Res(0, _M_rightmost()); + else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) + { + if (_S_right(__pos._M_node) == 0) + return _Res(0, __pos._M_node); + else + return _Res(__after._M_node, __after._M_node); + } + else + return _Res(0, 0); + } + } + + template + + template + + + + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_insert_equal_(const_iterator __position, + + _Arg&& __v, + + + + _NodeGen& __node_gen) + { + pair<_Base_ptr, _Base_ptr> __res + = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); + + if (__res.second) + return _M_insert_(__res.first, __res.second, + std::forward<_Arg>(__v), + __node_gen); + + return _M_insert_equal_lower(std::forward<_Arg>(__v)); + } + + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) + { + bool __insert_left = (__x != 0 || __p == _M_end() + || _M_impl._M_key_compare(_S_key(__z), + _S_key(__p))); + + _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, + this->_M_impl._M_header); + ++_M_impl._M_node_count; + return iterator(__z); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_insert_lower_node(_Base_ptr __p, _Link_type __z) + { + bool __insert_left = (__p == _M_end() + || !_M_impl._M_key_compare(_S_key(__p), + _S_key(__z))); + + _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, + this->_M_impl._M_header); + ++_M_impl._M_node_count; + return iterator(__z); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_insert_equal_lower_node(_Link_type __z) + { + _Link_type __x = _M_begin(); + _Link_type __y = _M_end(); + while (__x != 0) + { + __y = __x; + __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? + _S_left(__x) : _S_right(__x); + } + return _M_insert_lower_node(__y, __z); + } + + template + template + pair::iterator, bool> + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_emplace_unique(_Args&&... __args) + { + _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); + + try + { + typedef pair _Res; + auto __res = _M_get_insert_unique_pos(_S_key(__z)); + if (__res.second) + return _Res(_M_insert_node(__res.first, __res.second, __z), true); + + _M_drop_node(__z); + return _Res(iterator(static_cast<_Link_type>(__res.first)), false); + } + catch(...) + { + _M_drop_node(__z); + throw; + } + } + + template + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_emplace_equal(_Args&&... __args) + { + _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); + + try + { + auto __res = _M_get_insert_equal_pos(_S_key(__z)); + return _M_insert_node(__res.first, __res.second, __z); + } + catch(...) + { + _M_drop_node(__z); + throw; + } + } + + template + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) + { + _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); + + try + { + auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); + + if (__res.second) + return _M_insert_node(__res.first, __res.second, __z); + + _M_drop_node(__z); + return iterator(static_cast<_Link_type>(__res.first)); + } + catch(...) + { + _M_drop_node(__z); + throw; + } + } + + template + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) + { + _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); + + try + { + auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); + + if (__res.second) + return _M_insert_node(__res.first, __res.second, __z); + + return _M_insert_equal_lower_node(__z); + } + catch(...) + { + _M_drop_node(__z); + throw; + } + } + + + template + template + void + _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: + _M_insert_unique(_II __first, _II __last) + { + _Alloc_node __an(*this); + for (; __first != __last; ++__first) + _M_insert_unique_(end(), *__first, __an); + } + + template + template + void + _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: + _M_insert_equal(_II __first, _II __last) + { + _Alloc_node __an(*this); + for (; __first != __last; ++__first) + _M_insert_equal_(end(), *__first, __an); + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_erase_aux(const_iterator __position) + { + _Link_type __y = + static_cast<_Link_type>(_Rb_tree_rebalance_for_erase + (const_cast<_Base_ptr>(__position._M_node), + this->_M_impl._M_header)); + _M_drop_node(__y); + --_M_impl._M_node_count; + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + _M_erase_aux(const_iterator __first, const_iterator __last) + { + if (__first == begin() && __last == end()) + clear(); + else + while (__first != __last) + erase(__first++); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + erase(const _Key& __x) + { + pair __p = equal_range(__x); + const size_type __old_size = size(); + erase(__p.first, __p.second); + return __old_size - size(); + } + + template + void + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + erase(const _Key* __first, const _Key* __last) + { + while (__first != __last) + erase(*__first++); + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + find(const _Key& __k) + { + iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); + return (__j == end() + || _M_impl._M_key_compare(__k, + _S_key(__j._M_node))) ? end() : __j; + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, + _Compare, _Alloc>::const_iterator + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + find(const _Key& __k) const + { + const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); + return (__j == end() + || _M_impl._M_key_compare(__k, + _S_key(__j._M_node))) ? end() : __j; + } + + template + typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type + _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: + count(const _Key& __k) const + { + pair __p = equal_range(__k); + const size_type __n = std::distance(__p.first, __p.second); + return __n; + } + + __attribute__ ((__pure__)) unsigned int + _Rb_tree_black_count(const _Rb_tree_node_base* __node, + const _Rb_tree_node_base* __root) throw (); + + template + bool + _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const + { + if (_M_impl._M_node_count == 0 || begin() == end()) + return _M_impl._M_node_count == 0 && begin() == end() + && this->_M_impl._M_header._M_left == _M_end() + && this->_M_impl._M_header._M_right == _M_end(); + + unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); + for (const_iterator __it = begin(); __it != end(); ++__it) + { + _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); + _Const_Link_type __L = _S_left(__x); + _Const_Link_type __R = _S_right(__x); + + if (__x->_M_color == _S_red) + if ((__L && __L->_M_color == _S_red) + || (__R && __R->_M_color == _S_red)) + return false; + + if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) + return false; + if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) + return false; + + if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) + return false; + } + + if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) + return false; + if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) + return false; + return true; + } + + +} +# 61 "/usr/include/c++/5/map" 2 3 +# 1 "/usr/include/c++/5/bits/stl_map.h" 1 3 +# 63 "/usr/include/c++/5/bits/stl_map.h" 3 +# 1 "/usr/include/c++/5/tuple" 1 3 +# 32 "/usr/include/c++/5/tuple" 3 + +# 33 "/usr/include/c++/5/tuple" 3 + + + + + + +# 1 "/usr/include/c++/5/array" 1 3 +# 32 "/usr/include/c++/5/array" 3 + +# 33 "/usr/include/c++/5/array" 3 +# 42 "/usr/include/c++/5/array" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + struct __array_traits + { + typedef _Tp _Type[_Nm]; + + static constexpr _Tp& + _S_ref(const _Type& __t, std::size_t __n) noexcept + { return const_cast<_Tp&>(__t[__n]); } + + static constexpr _Tp* + _S_ptr(const _Type& __t) noexcept + { return const_cast<_Tp*>(__t); } + }; + + template + struct __array_traits<_Tp, 0> + { + struct _Type { }; + + static constexpr _Tp& + _S_ref(const _Type&, std::size_t) noexcept + { return *static_cast<_Tp*>(nullptr); } + + static constexpr _Tp* + _S_ptr(const _Type&) noexcept + { return nullptr; } + }; +# 88 "/usr/include/c++/5/array" 3 + template + struct array + { + typedef _Tp value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef value_type* iterator; + typedef const value_type* const_iterator; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; + + + typedef std::__array_traits<_Tp, _Nm> _AT_Type; + typename _AT_Type::_Type _M_elems; + + + + + void + fill(const value_type& __u) + { std::fill_n(begin(), size(), __u); } + + void + swap(array& __other) + noexcept(noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>()))) + { std::swap_ranges(begin(), end(), __other.begin()); } + + + iterator + begin() noexcept + { return iterator(data()); } + + const_iterator + begin() const noexcept + { return const_iterator(data()); } + + iterator + end() noexcept + { return iterator(data() + _Nm); } + + const_iterator + end() const noexcept + { return const_iterator(data() + _Nm); } + + reverse_iterator + rbegin() noexcept + { return reverse_iterator(end()); } + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(end()); } + + reverse_iterator + rend() noexcept + { return reverse_iterator(begin()); } + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(begin()); } + + const_iterator + cbegin() const noexcept + { return const_iterator(data()); } + + const_iterator + cend() const noexcept + { return const_iterator(data() + _Nm); } + + const_reverse_iterator + crbegin() const noexcept + { return const_reverse_iterator(end()); } + + const_reverse_iterator + crend() const noexcept + { return const_reverse_iterator(begin()); } + + + constexpr size_type + size() const noexcept { return _Nm; } + + constexpr size_type + max_size() const noexcept { return _Nm; } + + constexpr bool + empty() const noexcept { return size() == 0; } + + + reference + operator[](size_type __n) noexcept + { return _AT_Type::_S_ref(_M_elems, __n); } + + constexpr const_reference + operator[](size_type __n) const noexcept + { return _AT_Type::_S_ref(_M_elems, __n); } + + reference + at(size_type __n) + { + if (__n >= _Nm) + std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") + , + __n, _Nm); + return _AT_Type::_S_ref(_M_elems, __n); + } + + constexpr const_reference + at(size_type __n) const + { + + + return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) + : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") + , + __n, _Nm), + _AT_Type::_S_ref(_M_elems, 0)); + } + + reference + front() noexcept + { return *begin(); } + + constexpr const_reference + front() const noexcept + { return _AT_Type::_S_ref(_M_elems, 0); } + + reference + back() noexcept + { return _Nm ? *(end() - 1) : *end(); } + + constexpr const_reference + back() const noexcept + { + return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) + : _AT_Type::_S_ref(_M_elems, 0); + } + + pointer + data() noexcept + { return _AT_Type::_S_ptr(_M_elems); } + + const_pointer + data() const noexcept + { return _AT_Type::_S_ptr(_M_elems); } + }; + + + template + inline bool + operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) + { return std::equal(__one.begin(), __one.end(), __two.begin()); } + + template + inline bool + operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) + { return !(__one == __two); } + + template + inline bool + operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) + { + return std::lexicographical_compare(__a.begin(), __a.end(), + __b.begin(), __b.end()); + } + + template + inline bool + operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) + { return __two < __one; } + + template + inline bool + operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) + { return !(__one > __two); } + + template + inline bool + operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) + { return !(__one < __two); } + + + template + inline void + swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) + noexcept(noexcept(__one.swap(__two))) + { __one.swap(__two); } + + template + constexpr _Tp& + get(array<_Tp, _Nm>& __arr) noexcept + { + static_assert(_Int < _Nm, "index is out of bounds"); + return std::__array_traits<_Tp, _Nm>:: + _S_ref(__arr._M_elems, _Int); + } + + template + constexpr _Tp&& + get(array<_Tp, _Nm>&& __arr) noexcept + { + static_assert(_Int < _Nm, "index is out of bounds"); + return std::move(std::get<_Int>(__arr)); + } + + template + constexpr const _Tp& + get(const array<_Tp, _Nm>& __arr) noexcept + { + static_assert(_Int < _Nm, "index is out of bounds"); + return std::__array_traits<_Tp, _Nm>:: + _S_ref(__arr._M_elems, _Int); + } + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + template + class tuple_size; + + + template + struct tuple_size> + : public integral_constant { }; + + + template + class tuple_element; + + + template + struct tuple_element<_Int, std::array<_Tp, _Nm>> + { + static_assert(_Int < _Nm, "index is out of bounds"); + typedef _Tp type; + }; + + +} +# 40 "/usr/include/c++/5/tuple" 2 3 +# 1 "/usr/include/c++/5/bits/uses_allocator.h" 1 3 +# 34 "/usr/include/c++/5/bits/uses_allocator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + struct allocator_arg_t { }; + + constexpr allocator_arg_t allocator_arg = allocator_arg_t(); + + template> + struct __uses_allocator_helper + : false_type { }; + + template + struct __uses_allocator_helper<_Tp, _Alloc, + __void_t> + : is_convertible<_Alloc, typename _Tp::allocator_type>::type + { }; + + + template + struct uses_allocator + : __uses_allocator_helper<_Tp, _Alloc>::type + { }; + + struct __uses_alloc_base { }; + + struct __uses_alloc0 : __uses_alloc_base + { + struct _Sink { void operator=(const void*) { } } _M_a; + }; + + template + struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; + + template + struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; + + template + struct __uses_alloc; + + template + struct __uses_alloc + : conditional< + is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, + __uses_alloc1<_Alloc>, + __uses_alloc2<_Alloc>>::type + { }; + + template + struct __uses_alloc + : __uses_alloc0 { }; + + template + using __uses_alloc_t = + __uses_alloc::value, _Tp, _Alloc, _Args...>; + + template + inline __uses_alloc_t<_Tp, _Alloc, _Args...> + __use_alloc(const _Alloc& __a) + { + __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; + __ret._M_a = &__a; + return __ret; + } + + +} +# 41 "/usr/include/c++/5/tuple" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + struct _Head_base; + + template + struct _Head_base<_Idx, _Head, true> + : public _Head + { + constexpr _Head_base() + : _Head() { } + + constexpr _Head_base(const _Head& __h) + : _Head(__h) { } + + constexpr _Head_base(const _Head_base&) = default; + constexpr _Head_base(_Head_base&&) = default; + + template + constexpr _Head_base(_UHead&& __h) + : _Head(std::forward<_UHead>(__h)) { } + + _Head_base(allocator_arg_t, __uses_alloc0) + : _Head() { } + + template + _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) + : _Head(allocator_arg, *__a._M_a) { } + + template + _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) + : _Head(*__a._M_a) { } + + template + _Head_base(__uses_alloc0, _UHead&& __uhead) + : _Head(std::forward<_UHead>(__uhead)) { } + + template + _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) + : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } + + template + _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) + : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } + + static constexpr _Head& + _M_head(_Head_base& __b) noexcept { return __b; } + + static constexpr const _Head& + _M_head(const _Head_base& __b) noexcept { return __b; } + }; + + template + struct _Head_base<_Idx, _Head, false> + { + constexpr _Head_base() + : _M_head_impl() { } + + constexpr _Head_base(const _Head& __h) + : _M_head_impl(__h) { } + + constexpr _Head_base(const _Head_base&) = default; + constexpr _Head_base(_Head_base&&) = default; + + template + constexpr _Head_base(_UHead&& __h) + : _M_head_impl(std::forward<_UHead>(__h)) { } + + _Head_base(allocator_arg_t, __uses_alloc0) + : _M_head_impl() { } + + template + _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) + : _M_head_impl(allocator_arg, *__a._M_a) { } + + template + _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) + : _M_head_impl(*__a._M_a) { } + + template + _Head_base(__uses_alloc0, _UHead&& __uhead) + : _M_head_impl(std::forward<_UHead>(__uhead)) { } + + template + _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) + : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) + { } + + template + _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) + : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } + + static constexpr _Head& + _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } + + static constexpr const _Head& + _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } + + _Head _M_head_impl; + }; +# 158 "/usr/include/c++/5/tuple" 3 + template + struct _Tuple_impl; + + template + struct __is_empty_non_tuple : is_empty<_Tp> { }; + + + template + struct __is_empty_non_tuple> : false_type { }; + + + template + using __empty_not_final + = typename conditional<__is_final(_Tp), false_type, + __is_empty_non_tuple<_Tp>>::type; + + + + + + + template + struct _Tuple_impl<_Idx, _Head, _Tail...> + : public _Tuple_impl<_Idx + 1, _Tail...>, + private _Head_base<_Idx, _Head, __empty_not_final<_Head>::value> + { + template friend class _Tuple_impl; + + typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; + typedef _Head_base<_Idx, _Head, __empty_not_final<_Head>::value> _Base; + + static constexpr _Head& + _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } + + static constexpr const _Head& + _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } + + static constexpr _Inherited& + _M_tail(_Tuple_impl& __t) noexcept { return __t; } + + static constexpr const _Inherited& + _M_tail(const _Tuple_impl& __t) noexcept { return __t; } + + constexpr _Tuple_impl() + : _Inherited(), _Base() { } + + explicit + constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) + : _Inherited(__tail...), _Base(__head) { } + + template::type> + explicit + constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) + : _Inherited(std::forward<_UTail>(__tail)...), + _Base(std::forward<_UHead>(__head)) { } + + constexpr _Tuple_impl(const _Tuple_impl&) = default; + + constexpr + _Tuple_impl(_Tuple_impl&& __in) + noexcept(__and_, + is_nothrow_move_constructible<_Inherited>>::value) + : _Inherited(std::move(_M_tail(__in))), + _Base(std::forward<_Head>(_M_head(__in))) { } + + template + constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) + : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), + _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } + + template + constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) + : _Inherited(std::move + (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), + _Base(std::forward<_UHead> + (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) + : _Inherited(__tag, __a), + _Base(__tag, __use_alloc<_Head>(__a)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + const _Head& __head, const _Tail&... __tail) + : _Inherited(__tag, __a, __tail...), + _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } + + template::type> + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + _UHead&& __head, _UTail&&... __tail) + : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), + _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), + std::forward<_UHead>(__head)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + const _Tuple_impl& __in) + : _Inherited(__tag, __a, _M_tail(__in)), + _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + _Tuple_impl&& __in) + : _Inherited(__tag, __a, std::move(_M_tail(__in))), + _Base(__use_alloc<_Head, _Alloc, _Head>(__a), + std::forward<_Head>(_M_head(__in))) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + const _Tuple_impl<_Idx, _UElements...>& __in) + : _Inherited(__tag, __a, + _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), + _Base(__use_alloc<_Head, _Alloc, _Head>(__a), + _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) + : _Inherited(__tag, __a, std::move + (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), + _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), + std::forward<_UHead> + (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } + + _Tuple_impl& + operator=(const _Tuple_impl& __in) + { + _M_head(*this) = _M_head(__in); + _M_tail(*this) = _M_tail(__in); + return *this; + } + + _Tuple_impl& + operator=(_Tuple_impl&& __in) + noexcept(__and_, + is_nothrow_move_assignable<_Inherited>>::value) + { + _M_head(*this) = std::forward<_Head>(_M_head(__in)); + _M_tail(*this) = std::move(_M_tail(__in)); + return *this; + } + + template + _Tuple_impl& + operator=(const _Tuple_impl<_Idx, _UElements...>& __in) + { + _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); + _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); + return *this; + } + + template + _Tuple_impl& + operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) + { + _M_head(*this) = std::forward<_UHead> + (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); + _M_tail(*this) = std::move + (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); + return *this; + } + + protected: + void + _M_swap(_Tuple_impl& __in) + noexcept(noexcept(swap(std::declval<_Head&>(), + std::declval<_Head&>())) + && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) + { + using std::swap; + swap(_M_head(*this), _M_head(__in)); + _Inherited::_M_swap(_M_tail(__in)); + } + }; + + + template + struct _Tuple_impl<_Idx, _Head> + : private _Head_base<_Idx, _Head, __empty_not_final<_Head>::value> + { + template friend class _Tuple_impl; + + typedef _Head_base<_Idx, _Head, __empty_not_final<_Head>::value> _Base; + + static constexpr _Head& + _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } + + static constexpr const _Head& + _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } + + constexpr _Tuple_impl() + : _Base() { } + + explicit + constexpr _Tuple_impl(const _Head& __head) + : _Base(__head) { } + + template + explicit + constexpr _Tuple_impl(_UHead&& __head) + : _Base(std::forward<_UHead>(__head)) { } + + constexpr _Tuple_impl(const _Tuple_impl&) = default; + + constexpr + _Tuple_impl(_Tuple_impl&& __in) + noexcept(is_nothrow_move_constructible<_Head>::value) + : _Base(std::forward<_Head>(_M_head(__in))) { } + + template + constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) + : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } + + template + constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) + : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) + { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) + : _Base(__tag, __use_alloc<_Head>(__a)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + const _Head& __head) + : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + _UHead&& __head) + : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), + std::forward<_UHead>(__head)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + const _Tuple_impl& __in) + : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + _Tuple_impl&& __in) + : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), + std::forward<_Head>(_M_head(__in))) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + const _Tuple_impl<_Idx, _UHead>& __in) + : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), + _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } + + template + _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, + _Tuple_impl<_Idx, _UHead>&& __in) + : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), + std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) + { } + + _Tuple_impl& + operator=(const _Tuple_impl& __in) + { + _M_head(*this) = _M_head(__in); + return *this; + } + + _Tuple_impl& + operator=(_Tuple_impl&& __in) + noexcept(is_nothrow_move_assignable<_Head>::value) + { + _M_head(*this) = std::forward<_Head>(_M_head(__in)); + return *this; + } + + template + _Tuple_impl& + operator=(const _Tuple_impl<_Idx, _UHead>& __in) + { + _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); + return *this; + } + + template + _Tuple_impl& + operator=(_Tuple_impl<_Idx, _UHead>&& __in) + { + _M_head(*this) + = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); + return *this; + } + + protected: + void + _M_swap(_Tuple_impl& __in) + noexcept(noexcept(swap(std::declval<_Head&>(), std::declval<_Head&>()))) + { + using std::swap; + swap(_M_head(*this), _M_head(__in)); + } + }; + + + template + class tuple : public _Tuple_impl<0, _Elements...> + { + typedef _Tuple_impl<0, _Elements...> _Inherited; + + public: + constexpr tuple() + : _Inherited() { } + + explicit + constexpr tuple(const _Elements&... __elements) + : _Inherited(__elements...) { } + + template...>::value>::type> + explicit + constexpr tuple(_UElements&&... __elements) + : _Inherited(std::forward<_UElements>(__elements)...) { } + + constexpr tuple(const tuple&) = default; + + constexpr tuple(tuple&&) = default; + + template...>::value>::type> + constexpr tuple(const tuple<_UElements...>& __in) + : _Inherited(static_cast&>(__in)) + { } + + template...>::value>::type> + constexpr tuple(tuple<_UElements...>&& __in) + : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } + + + + template + tuple(allocator_arg_t __tag, const _Alloc& __a) + : _Inherited(__tag, __a) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, + const _Elements&... __elements) + : _Inherited(__tag, __a, __elements...) { } + + template::type> + tuple(allocator_arg_t __tag, const _Alloc& __a, + _UElements&&... __elements) + : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) + { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) + : _Inherited(__tag, __a, static_cast(__in)) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) + : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } + + template::type> + tuple(allocator_arg_t __tag, const _Alloc& __a, + const tuple<_UElements...>& __in) + : _Inherited(__tag, __a, + static_cast&>(__in)) + { } + + template::type> + tuple(allocator_arg_t __tag, const _Alloc& __a, + tuple<_UElements...>&& __in) + : _Inherited(__tag, __a, + static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) + { } + + tuple& + operator=(const tuple& __in) + { + static_cast<_Inherited&>(*this) = __in; + return *this; + } + + tuple& + operator=(tuple&& __in) + noexcept(is_nothrow_move_assignable<_Inherited>::value) + { + static_cast<_Inherited&>(*this) = std::move(__in); + return *this; + } + + template::type> + tuple& + operator=(const tuple<_UElements...>& __in) + { + static_cast<_Inherited&>(*this) = __in; + return *this; + } + + template::type> + tuple& + operator=(tuple<_UElements...>&& __in) + { + static_cast<_Inherited&>(*this) = std::move(__in); + return *this; + } + + void + swap(tuple& __in) + noexcept(noexcept(__in._M_swap(__in))) + { _Inherited::_M_swap(__in); } + }; + + + template<> + class tuple<> + { + public: + void swap(tuple&) noexcept { } + }; + + + + template + class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> + { + typedef _Tuple_impl<0, _T1, _T2> _Inherited; + + public: + constexpr tuple() + : _Inherited() { } + + explicit + constexpr tuple(const _T1& __a1, const _T2& __a2) + : _Inherited(__a1, __a2) { } + + template, + is_convertible<_U2, _T2>>::value>::type> + explicit + constexpr tuple(_U1&& __a1, _U2&& __a2) + : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } + + constexpr tuple(const tuple&) = default; + + constexpr tuple(tuple&&) = default; + + template, + is_convertible>::value>::type> + constexpr tuple(const tuple<_U1, _U2>& __in) + : _Inherited(static_cast&>(__in)) { } + + template, + is_convertible<_U2, _T2>>::value>::type> + constexpr tuple(tuple<_U1, _U2>&& __in) + : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } + + template, + is_convertible>::value>::type> + constexpr tuple(const pair<_U1, _U2>& __in) + : _Inherited(__in.first, __in.second) { } + + template, + is_convertible<_U2, _T2>>::value>::type> + constexpr tuple(pair<_U1, _U2>&& __in) + : _Inherited(std::forward<_U1>(__in.first), + std::forward<_U2>(__in.second)) { } + + + + template + tuple(allocator_arg_t __tag, const _Alloc& __a) + : _Inherited(__tag, __a) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, + const _T1& __a1, const _T2& __a2) + : _Inherited(__tag, __a, __a1, __a2) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) + : _Inherited(__tag, __a, std::forward<_U1>(__a1), + std::forward<_U2>(__a2)) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) + : _Inherited(__tag, __a, static_cast(__in)) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) + : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, + const tuple<_U1, _U2>& __in) + : _Inherited(__tag, __a, + static_cast&>(__in)) + { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) + : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) + { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, + const pair<_U1, _U2>& __in) + : _Inherited(__tag, __a, __in.first, __in.second) { } + + template + tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) + : _Inherited(__tag, __a, std::forward<_U1>(__in.first), + std::forward<_U2>(__in.second)) { } + + tuple& + operator=(const tuple& __in) + { + static_cast<_Inherited&>(*this) = __in; + return *this; + } + + tuple& + operator=(tuple&& __in) + noexcept(is_nothrow_move_assignable<_Inherited>::value) + { + static_cast<_Inherited&>(*this) = std::move(__in); + return *this; + } + + template + tuple& + operator=(const tuple<_U1, _U2>& __in) + { + static_cast<_Inherited&>(*this) = __in; + return *this; + } + + template + tuple& + operator=(tuple<_U1, _U2>&& __in) + { + static_cast<_Inherited&>(*this) = std::move(__in); + return *this; + } + + template + tuple& + operator=(const pair<_U1, _U2>& __in) + { + this->_M_head(*this) = __in.first; + this->_M_tail(*this)._M_head(*this) = __in.second; + return *this; + } + + template + tuple& + operator=(pair<_U1, _U2>&& __in) + { + this->_M_head(*this) = std::forward<_U1>(__in.first); + this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); + return *this; + } + + void + swap(tuple& __in) + noexcept(noexcept(__in._M_swap(__in))) + { _Inherited::_M_swap(__in); } + }; + + + + template + struct tuple_element; + + + + + + template + struct tuple_element<__i, tuple<_Head, _Tail...> > + : tuple_element<__i - 1, tuple<_Tail...> > { }; + + + + + template + struct tuple_element<0, tuple<_Head, _Tail...> > + { + typedef _Head type; + }; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; + }; +# 797 "/usr/include/c++/5/tuple" 3 + template + struct tuple_size; + + + + template + struct tuple_size + : integral_constant::value> { }; + + template + struct tuple_size + : integral_constant::value> { }; + + template + struct tuple_size + : integral_constant::value> { }; + + + template + struct tuple_size> + : public integral_constant { }; + + template + constexpr _Head& + __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept + { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } + + template + constexpr const _Head& + __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept + { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } + + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>& + get(tuple<_Elements...>& __t) noexcept + { return std::__get_helper<__i>(__t); } + + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>& + get(const tuple<_Elements...>& __t) noexcept + { return std::__get_helper<__i>(__t); } + + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>&& + get(tuple<_Elements...>&& __t) noexcept + { + typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; + return std::forward<__element_type&&>(std::get<__i>(__t)); + } +# 884 "/usr/include/c++/5/tuple" 3 + template + struct __tuple_compare + { + static constexpr bool + __eq(const _Tp& __t, const _Up& __u) + { + return bool(std::get<__i>(__t) == std::get<__i>(__u)) + && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); + } + + static constexpr bool + __less(const _Tp& __t, const _Up& __u) + { + return bool(std::get<__i>(__t) < std::get<__i>(__u)) + || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) + && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); + } + }; + + template + struct __tuple_compare<_Tp, _Up, __size, __size> + { + static constexpr bool + __eq(const _Tp&, const _Up&) { return true; } + + static constexpr bool + __less(const _Tp&, const _Up&) { return false; } + }; + + template + constexpr bool + operator==(const tuple<_TElements...>& __t, + const tuple<_UElements...>& __u) + { + static_assert(sizeof...(_TElements) == sizeof...(_UElements), + "tuple objects can only be compared if they have equal sizes."); + using __compare = __tuple_compare, + tuple<_UElements...>, + 0, sizeof...(_TElements)>; + return __compare::__eq(__t, __u); + } + + template + constexpr bool + operator<(const tuple<_TElements...>& __t, + const tuple<_UElements...>& __u) + { + static_assert(sizeof...(_TElements) == sizeof...(_UElements), + "tuple objects can only be compared if they have equal sizes."); + using __compare = __tuple_compare, + tuple<_UElements...>, + 0, sizeof...(_TElements)>; + return __compare::__less(__t, __u); + } + + template + constexpr bool + operator!=(const tuple<_TElements...>& __t, + const tuple<_UElements...>& __u) + { return !(__t == __u); } + + template + constexpr bool + operator>(const tuple<_TElements...>& __t, + const tuple<_UElements...>& __u) + { return __u < __t; } + + template + constexpr bool + operator<=(const tuple<_TElements...>& __t, + const tuple<_UElements...>& __u) + { return !(__u < __t); } + + template + constexpr bool + operator>=(const tuple<_TElements...>& __t, + const tuple<_UElements...>& __u) + { return !(__t < __u); } + + + template + constexpr tuple::__type...> + make_tuple(_Elements&&... __args) + { + typedef tuple::__type...> + __result_type; + return __result_type(std::forward<_Elements>(__args)...); + } + + template + tuple<_Elements&&...> + forward_as_tuple(_Elements&&... __args) noexcept + { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } + + template + struct __is_tuple_like_impl : false_type + { }; + + template + struct __is_tuple_like_impl> : true_type + { }; + + template + struct __is_tuple_like_impl> : true_type + { }; + + template + struct __is_tuple_like_impl> : true_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl::type>::type>::type + { }; + + template + struct __make_tuple_impl; + + template + struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> + : __make_tuple_impl<_Idx + 1, + tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, + _Tuple, _Nm> + { }; + + template + struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> + { + typedef tuple<_Tp...> __type; + }; + + template + struct __do_make_tuple + : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> + { }; + + + template + struct __make_tuple + : public __do_make_tuple::type>::type> + { }; + + + template + struct __combine_tuples; + + template<> + struct __combine_tuples<> + { + typedef tuple<> __type; + }; + + template + struct __combine_tuples> + { + typedef tuple<_Ts...> __type; + }; + + template + struct __combine_tuples, tuple<_T2s...>, _Rem...> + { + typedef typename __combine_tuples, + _Rem...>::__type __type; + }; + + + template + struct __tuple_cat_result + { + typedef typename __combine_tuples + ::__type...>::__type __type; + }; + + + + template + struct __make_1st_indices; + + template<> + struct __make_1st_indices<> + { + typedef std::_Index_tuple<> __type; + }; + + template + struct __make_1st_indices<_Tp, _Tpls...> + { + typedef typename std::_Build_index_tuple::type>::value>::__type __type; + }; + + + + + template + struct __tuple_concater; + + template + struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> + { + template + static constexpr _Ret + _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) + { + typedef typename __make_1st_indices<_Tpls...>::__type __idx; + typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; + return __next::_S_do(std::forward<_Tpls>(__tps)..., + std::forward<_Us>(__us)..., + std::get<_Is>(std::forward<_Tp>(__tp))...); + } + }; + + template + struct __tuple_concater<_Ret, std::_Index_tuple<>> + { + template + static constexpr _Ret + _S_do(_Us&&... __us) + { + return _Ret(std::forward<_Us>(__us)...); + } + }; + + + template...>::value>::type> + constexpr auto + tuple_cat(_Tpls&&... __tpls) + -> typename __tuple_cat_result<_Tpls...>::__type + { + typedef typename __tuple_cat_result<_Tpls...>::__type __ret; + typedef typename __make_1st_indices<_Tpls...>::__type __idx; + typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; + return __concater::_S_do(std::forward<_Tpls>(__tpls)...); + } + + + template + inline tuple<_Elements&...> + tie(_Elements&... __args) noexcept + { return tuple<_Elements&...>(__args...); } + + + template + inline void + swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } + + + + struct _Swallow_assign + { + template + const _Swallow_assign& + operator=(const _Tp&) const + { return *this; } + }; + + const _Swallow_assign ignore{}; + + + template + struct uses_allocator, _Alloc> : true_type { }; + + + template + template + inline + pair<_T1, _T2>:: + pair(piecewise_construct_t, + tuple<_Args1...> __first, tuple<_Args2...> __second) + : pair(__first, __second, + typename _Build_index_tuple::__type(), + typename _Build_index_tuple::__type()) + { } + + template + template + inline + pair<_T1, _T2>:: + pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) + : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), + second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) + { } + + + + +} +# 64 "/usr/include/c++/5/bits/stl_map.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 94 "/usr/include/c++/5/bits/stl_map.h" 3 + template , + typename _Alloc = std::allocator > > + class map + { + public: + typedef _Key key_type; + typedef _Tp mapped_type; + typedef std::pair value_type; + typedef _Compare key_compare; + typedef _Alloc allocator_type; + + private: + + typedef typename _Alloc::value_type _Alloc_value_type; + + + + + + public: + class value_compare + : public std::binary_function + { + friend class map<_Key, _Tp, _Compare, _Alloc>; + protected: + _Compare comp; + + value_compare(_Compare __c) + : comp(__c) { } + + public: + bool operator()(const value_type& __x, const value_type& __y) const + { return comp(__x.first, __y.first); } + }; + + private: + + typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template + rebind::other _Pair_alloc_type; + + typedef _Rb_tree, + key_compare, _Pair_alloc_type> _Rep_type; + + + _Rep_type _M_t; + + typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; + + public: + + + typedef typename _Alloc_traits::pointer pointer; + typedef typename _Alloc_traits::const_pointer const_pointer; + typedef typename _Alloc_traits::reference reference; + typedef typename _Alloc_traits::const_reference const_reference; + typedef typename _Rep_type::iterator iterator; + typedef typename _Rep_type::const_iterator const_iterator; + typedef typename _Rep_type::size_type size_type; + typedef typename _Rep_type::difference_type difference_type; + typedef typename _Rep_type::reverse_iterator reverse_iterator; + typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; + + + + + + + + map() + + noexcept(is_nothrow_default_constructible::value) + + : _M_t() { } + + + + + + + explicit + map(const _Compare& __comp, + const allocator_type& __a = allocator_type()) + : _M_t(__comp, _Pair_alloc_type(__a)) { } +# 185 "/usr/include/c++/5/bits/stl_map.h" 3 + map(const map& __x) + : _M_t(__x._M_t) { } +# 196 "/usr/include/c++/5/bits/stl_map.h" 3 + map(map&& __x) + noexcept(is_nothrow_copy_constructible<_Compare>::value) + : _M_t(std::move(__x._M_t)) { } +# 211 "/usr/include/c++/5/bits/stl_map.h" 3 + map(initializer_list __l, + const _Compare& __comp = _Compare(), + const allocator_type& __a = allocator_type()) + : _M_t(__comp, _Pair_alloc_type(__a)) + { _M_t._M_insert_unique(__l.begin(), __l.end()); } + + + explicit + map(const allocator_type& __a) + : _M_t(_Compare(), _Pair_alloc_type(__a)) { } + + + map(const map& __m, const allocator_type& __a) + : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } + + + map(map&& __m, const allocator_type& __a) + noexcept(is_nothrow_copy_constructible<_Compare>::value + && _Alloc_traits::_S_always_equal()) + : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } + + + map(initializer_list __l, const allocator_type& __a) + : _M_t(_Compare(), _Pair_alloc_type(__a)) + { _M_t._M_insert_unique(__l.begin(), __l.end()); } + + + template + map(_InputIterator __first, _InputIterator __last, + const allocator_type& __a) + : _M_t(_Compare(), _Pair_alloc_type(__a)) + { _M_t._M_insert_unique(__first, __last); } +# 255 "/usr/include/c++/5/bits/stl_map.h" 3 + template + map(_InputIterator __first, _InputIterator __last) + : _M_t() + { _M_t._M_insert_unique(__first, __last); } +# 272 "/usr/include/c++/5/bits/stl_map.h" 3 + template + map(_InputIterator __first, _InputIterator __last, + const _Compare& __comp, + const allocator_type& __a = allocator_type()) + : _M_t(__comp, _Pair_alloc_type(__a)) + { _M_t._M_insert_unique(__first, __last); } +# 295 "/usr/include/c++/5/bits/stl_map.h" 3 + map& + operator=(const map& __x) + { + _M_t = __x._M_t; + return *this; + } + + + + map& + operator=(map&&) = default; +# 318 "/usr/include/c++/5/bits/stl_map.h" 3 + map& + operator=(initializer_list __l) + { + _M_t._M_assign_unique(__l.begin(), __l.end()); + return *this; + } + + + + allocator_type + get_allocator() const noexcept + { return allocator_type(_M_t.get_allocator()); } + + + + + + + + iterator + begin() noexcept + { return _M_t.begin(); } + + + + + + + const_iterator + begin() const noexcept + { return _M_t.begin(); } + + + + + + + iterator + end() noexcept + { return _M_t.end(); } + + + + + + + const_iterator + end() const noexcept + { return _M_t.end(); } + + + + + + + reverse_iterator + rbegin() noexcept + { return _M_t.rbegin(); } + + + + + + + const_reverse_iterator + rbegin() const noexcept + { return _M_t.rbegin(); } + + + + + + + reverse_iterator + rend() noexcept + { return _M_t.rend(); } + + + + + + + const_reverse_iterator + rend() const noexcept + { return _M_t.rend(); } + + + + + + + + const_iterator + cbegin() const noexcept + { return _M_t.begin(); } + + + + + + + const_iterator + cend() const noexcept + { return _M_t.end(); } + + + + + + + const_reverse_iterator + crbegin() const noexcept + { return _M_t.rbegin(); } + + + + + + + const_reverse_iterator + crend() const noexcept + { return _M_t.rend(); } + + + + + + + bool + empty() const noexcept + { return _M_t.empty(); } + + + size_type + size() const noexcept + { return _M_t.size(); } + + + size_type + max_size() const noexcept + { return _M_t.max_size(); } +# 473 "/usr/include/c++/5/bits/stl_map.h" 3 + mapped_type& + operator[](const key_type& __k) + { + + + + iterator __i = lower_bound(__k); + + if (__i == end() || key_comp()(__k, (*__i).first)) + + __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, + std::tuple(__k), + std::tuple<>()); + + + + return (*__i).second; + } + + + mapped_type& + operator[](key_type&& __k) + { + + + + iterator __i = lower_bound(__k); + + if (__i == end() || key_comp()(__k, (*__i).first)) + __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, + std::forward_as_tuple(std::move(__k)), + std::tuple<>()); + return (*__i).second; + } +# 518 "/usr/include/c++/5/bits/stl_map.h" 3 + mapped_type& + at(const key_type& __k) + { + iterator __i = lower_bound(__k); + if (__i == end() || key_comp()(__k, (*__i).first)) + __throw_out_of_range(("map::at")); + return (*__i).second; + } + + const mapped_type& + at(const key_type& __k) const + { + const_iterator __i = lower_bound(__k); + if (__i == end() || key_comp()(__k, (*__i).first)) + __throw_out_of_range(("map::at")); + return (*__i).second; + } +# 556 "/usr/include/c++/5/bits/stl_map.h" 3 + template + std::pair + emplace(_Args&&... __args) + { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } +# 586 "/usr/include/c++/5/bits/stl_map.h" 3 + template + iterator + emplace_hint(const_iterator __pos, _Args&&... __args) + { + return _M_t._M_emplace_hint_unique(__pos, + std::forward<_Args>(__args)...); + } +# 611 "/usr/include/c++/5/bits/stl_map.h" 3 + std::pair + insert(const value_type& __x) + { return _M_t._M_insert_unique(__x); } + + + template::value>::type> + std::pair + insert(_Pair&& __x) + { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); } +# 632 "/usr/include/c++/5/bits/stl_map.h" 3 + void + insert(std::initializer_list __list) + { insert(__list.begin(), __list.end()); } +# 660 "/usr/include/c++/5/bits/stl_map.h" 3 + iterator + + insert(const_iterator __position, const value_type& __x) + + + + { return _M_t._M_insert_unique_(__position, __x); } + + + template::value>::type> + iterator + insert(const_iterator __position, _Pair&& __x) + { return _M_t._M_insert_unique_(__position, + std::forward<_Pair>(__x)); } +# 686 "/usr/include/c++/5/bits/stl_map.h" 3 + template + void + insert(_InputIterator __first, _InputIterator __last) + { _M_t._M_insert_unique(__first, __last); } +# 707 "/usr/include/c++/5/bits/stl_map.h" 3 + iterator + erase(const_iterator __position) + { return _M_t.erase(__position); } + + + __attribute ((__abi_tag__ ("cxx11"))) + iterator + erase(iterator __position) + { return _M_t.erase(__position); } +# 743 "/usr/include/c++/5/bits/stl_map.h" 3 + size_type + erase(const key_type& __x) + { return _M_t.erase(__x); } +# 763 "/usr/include/c++/5/bits/stl_map.h" 3 + iterator + erase(const_iterator __first, const_iterator __last) + { return _M_t.erase(__first, __last); } +# 795 "/usr/include/c++/5/bits/stl_map.h" 3 + void + swap(map& __x) + + noexcept(_Alloc_traits::_S_nothrow_swap()) + + { _M_t.swap(__x._M_t); } + + + + + + + + void + clear() noexcept + { _M_t.clear(); } + + + + + + + key_compare + key_comp() const + { return _M_t.key_comp(); } + + + + + + value_compare + value_comp() const + { return value_compare(_M_t.key_comp()); } +# 844 "/usr/include/c++/5/bits/stl_map.h" 3 + iterator + find(const key_type& __x) + { return _M_t.find(__x); } +# 869 "/usr/include/c++/5/bits/stl_map.h" 3 + const_iterator + find(const key_type& __x) const + { return _M_t.find(__x); } +# 890 "/usr/include/c++/5/bits/stl_map.h" 3 + size_type + count(const key_type& __x) const + { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } +# 914 "/usr/include/c++/5/bits/stl_map.h" 3 + iterator + lower_bound(const key_type& __x) + { return _M_t.lower_bound(__x); } +# 939 "/usr/include/c++/5/bits/stl_map.h" 3 + const_iterator + lower_bound(const key_type& __x) const + { return _M_t.lower_bound(__x); } +# 959 "/usr/include/c++/5/bits/stl_map.h" 3 + iterator + upper_bound(const key_type& __x) + { return _M_t.upper_bound(__x); } +# 979 "/usr/include/c++/5/bits/stl_map.h" 3 + const_iterator + upper_bound(const key_type& __x) const + { return _M_t.upper_bound(__x); } +# 1008 "/usr/include/c++/5/bits/stl_map.h" 3 + std::pair + equal_range(const key_type& __x) + { return _M_t.equal_range(__x); } +# 1037 "/usr/include/c++/5/bits/stl_map.h" 3 + std::pair + equal_range(const key_type& __x) const + { return _M_t.equal_range(__x); } +# 1050 "/usr/include/c++/5/bits/stl_map.h" 3 + template + friend bool + operator==(const map<_K1, _T1, _C1, _A1>&, + const map<_K1, _T1, _C1, _A1>&); + + template + friend bool + operator<(const map<_K1, _T1, _C1, _A1>&, + const map<_K1, _T1, _C1, _A1>&); + }; +# 1071 "/usr/include/c++/5/bits/stl_map.h" 3 + template + inline bool + operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, + const map<_Key, _Tp, _Compare, _Alloc>& __y) + { return __x._M_t == __y._M_t; } +# 1088 "/usr/include/c++/5/bits/stl_map.h" 3 + template + inline bool + operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, + const map<_Key, _Tp, _Compare, _Alloc>& __y) + { return __x._M_t < __y._M_t; } + + + template + inline bool + operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, + const map<_Key, _Tp, _Compare, _Alloc>& __y) + { return !(__x == __y); } + + + template + inline bool + operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, + const map<_Key, _Tp, _Compare, _Alloc>& __y) + { return __y < __x; } + + + template + inline bool + operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, + const map<_Key, _Tp, _Compare, _Alloc>& __y) + { return !(__y < __x); } + + + template + inline bool + operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, + const map<_Key, _Tp, _Compare, _Alloc>& __y) + { return !(__x < __y); } + + + template + inline void + swap(map<_Key, _Tp, _Compare, _Alloc>& __x, + map<_Key, _Tp, _Compare, _Alloc>& __y) + { __x.swap(__y); } + + +} +# 62 "/usr/include/c++/5/map" 2 3 +# 1 "/usr/include/c++/5/bits/stl_multimap.h" 1 3 +# 64 "/usr/include/c++/5/bits/stl_multimap.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 92 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template , + typename _Alloc = std::allocator > > + class multimap + { + public: + typedef _Key key_type; + typedef _Tp mapped_type; + typedef std::pair value_type; + typedef _Compare key_compare; + typedef _Alloc allocator_type; + + private: + + typedef typename _Alloc::value_type _Alloc_value_type; + + + + + + public: + class value_compare + : public std::binary_function + { + friend class multimap<_Key, _Tp, _Compare, _Alloc>; + protected: + _Compare comp; + + value_compare(_Compare __c) + : comp(__c) { } + + public: + bool operator()(const value_type& __x, const value_type& __y) const + { return comp(__x.first, __y.first); } + }; + + private: + + typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template + rebind::other _Pair_alloc_type; + + typedef _Rb_tree, + key_compare, _Pair_alloc_type> _Rep_type; + + _Rep_type _M_t; + + typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; + + public: + + + typedef typename _Alloc_traits::pointer pointer; + typedef typename _Alloc_traits::const_pointer const_pointer; + typedef typename _Alloc_traits::reference reference; + typedef typename _Alloc_traits::const_reference const_reference; + typedef typename _Rep_type::iterator iterator; + typedef typename _Rep_type::const_iterator const_iterator; + typedef typename _Rep_type::size_type size_type; + typedef typename _Rep_type::difference_type difference_type; + typedef typename _Rep_type::reverse_iterator reverse_iterator; + typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; + + + + + + + + multimap() + + noexcept(is_nothrow_default_constructible::value) + + : _M_t() { } + + + + + + + explicit + multimap(const _Compare& __comp, + const allocator_type& __a = allocator_type()) + : _M_t(__comp, _Pair_alloc_type(__a)) { } +# 183 "/usr/include/c++/5/bits/stl_multimap.h" 3 + multimap(const multimap& __x) + : _M_t(__x._M_t) { } +# 194 "/usr/include/c++/5/bits/stl_multimap.h" 3 + multimap(multimap&& __x) + noexcept(is_nothrow_copy_constructible<_Compare>::value) + : _M_t(std::move(__x._M_t)) { } +# 208 "/usr/include/c++/5/bits/stl_multimap.h" 3 + multimap(initializer_list __l, + const _Compare& __comp = _Compare(), + const allocator_type& __a = allocator_type()) + : _M_t(__comp, _Pair_alloc_type(__a)) + { _M_t._M_insert_equal(__l.begin(), __l.end()); } + + + explicit + multimap(const allocator_type& __a) + : _M_t(_Compare(), _Pair_alloc_type(__a)) { } + + + multimap(const multimap& __m, const allocator_type& __a) + : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } + + + multimap(multimap&& __m, const allocator_type& __a) + noexcept(is_nothrow_copy_constructible<_Compare>::value + && _Alloc_traits::_S_always_equal()) + : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } + + + multimap(initializer_list __l, const allocator_type& __a) + : _M_t(_Compare(), _Pair_alloc_type(__a)) + { _M_t._M_insert_equal(__l.begin(), __l.end()); } + + + template + multimap(_InputIterator __first, _InputIterator __last, + const allocator_type& __a) + : _M_t(_Compare(), _Pair_alloc_type(__a)) + { _M_t._M_insert_equal(__first, __last); } +# 251 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + multimap(_InputIterator __first, _InputIterator __last) + : _M_t() + { _M_t._M_insert_equal(__first, __last); } +# 267 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + multimap(_InputIterator __first, _InputIterator __last, + const _Compare& __comp, + const allocator_type& __a = allocator_type()) + : _M_t(__comp, _Pair_alloc_type(__a)) + { _M_t._M_insert_equal(__first, __last); } +# 290 "/usr/include/c++/5/bits/stl_multimap.h" 3 + multimap& + operator=(const multimap& __x) + { + _M_t = __x._M_t; + return *this; + } + + + + multimap& + operator=(multimap&&) = default; +# 313 "/usr/include/c++/5/bits/stl_multimap.h" 3 + multimap& + operator=(initializer_list __l) + { + _M_t._M_assign_equal(__l.begin(), __l.end()); + return *this; + } + + + + allocator_type + get_allocator() const noexcept + { return allocator_type(_M_t.get_allocator()); } + + + + + + + + iterator + begin() noexcept + { return _M_t.begin(); } + + + + + + + const_iterator + begin() const noexcept + { return _M_t.begin(); } + + + + + + + iterator + end() noexcept + { return _M_t.end(); } + + + + + + + const_iterator + end() const noexcept + { return _M_t.end(); } + + + + + + + reverse_iterator + rbegin() noexcept + { return _M_t.rbegin(); } + + + + + + + const_reverse_iterator + rbegin() const noexcept + { return _M_t.rbegin(); } + + + + + + + reverse_iterator + rend() noexcept + { return _M_t.rend(); } + + + + + + + const_reverse_iterator + rend() const noexcept + { return _M_t.rend(); } + + + + + + + + const_iterator + cbegin() const noexcept + { return _M_t.begin(); } + + + + + + + const_iterator + cend() const noexcept + { return _M_t.end(); } + + + + + + + const_reverse_iterator + crbegin() const noexcept + { return _M_t.rbegin(); } + + + + + + + const_reverse_iterator + crend() const noexcept + { return _M_t.rend(); } + + + + + bool + empty() const noexcept + { return _M_t.empty(); } + + + size_type + size() const noexcept + { return _M_t.size(); } + + + size_type + max_size() const noexcept + { return _M_t.max_size(); } +# 471 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + iterator + emplace(_Args&&... __args) + { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } +# 498 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + iterator + emplace_hint(const_iterator __pos, _Args&&... __args) + { + return _M_t._M_emplace_hint_equal(__pos, + std::forward<_Args>(__args)...); + } +# 519 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + insert(const value_type& __x) + { return _M_t._M_insert_equal(__x); } + + + template::value>::type> + iterator + insert(_Pair&& __x) + { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); } +# 552 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + + insert(const_iterator __position, const value_type& __x) + + + + { return _M_t._M_insert_equal_(__position, __x); } + + + template::value>::type> + iterator + insert(const_iterator __position, _Pair&& __x) + { return _M_t._M_insert_equal_(__position, + std::forward<_Pair>(__x)); } +# 579 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + void + insert(_InputIterator __first, _InputIterator __last) + { _M_t._M_insert_equal(__first, __last); } +# 592 "/usr/include/c++/5/bits/stl_multimap.h" 3 + void + insert(initializer_list __l) + { this->insert(__l.begin(), __l.end()); } +# 613 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + erase(const_iterator __position) + { return _M_t.erase(__position); } + + + __attribute ((__abi_tag__ ("cxx11"))) + iterator + erase(iterator __position) + { return _M_t.erase(__position); } +# 649 "/usr/include/c++/5/bits/stl_multimap.h" 3 + size_type + erase(const key_type& __x) + { return _M_t.erase(__x); } +# 670 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + erase(const_iterator __first, const_iterator __last) + { return _M_t.erase(__first, __last); } +# 705 "/usr/include/c++/5/bits/stl_multimap.h" 3 + void + swap(multimap& __x) + + noexcept(_Alloc_traits::_S_nothrow_swap()) + + { _M_t.swap(__x._M_t); } + + + + + + + + void + clear() noexcept + { _M_t.clear(); } + + + + + + + key_compare + key_comp() const + { return _M_t.key_comp(); } + + + + + + value_compare + value_comp() const + { return value_compare(_M_t.key_comp()); } +# 753 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + find(const key_type& __x) + { return _M_t.find(__x); } +# 777 "/usr/include/c++/5/bits/stl_multimap.h" 3 + const_iterator + find(const key_type& __x) const + { return _M_t.find(__x); } +# 795 "/usr/include/c++/5/bits/stl_multimap.h" 3 + size_type + count(const key_type& __x) const + { return _M_t.count(__x); } +# 819 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + lower_bound(const key_type& __x) + { return _M_t.lower_bound(__x); } +# 844 "/usr/include/c++/5/bits/stl_multimap.h" 3 + const_iterator + lower_bound(const key_type& __x) const + { return _M_t.lower_bound(__x); } +# 864 "/usr/include/c++/5/bits/stl_multimap.h" 3 + iterator + upper_bound(const key_type& __x) + { return _M_t.upper_bound(__x); } +# 884 "/usr/include/c++/5/bits/stl_multimap.h" 3 + const_iterator + upper_bound(const key_type& __x) const + { return _M_t.upper_bound(__x); } +# 911 "/usr/include/c++/5/bits/stl_multimap.h" 3 + std::pair + equal_range(const key_type& __x) + { return _M_t.equal_range(__x); } +# 938 "/usr/include/c++/5/bits/stl_multimap.h" 3 + std::pair + equal_range(const key_type& __x) const + { return _M_t.equal_range(__x); } +# 951 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + friend bool + operator==(const multimap<_K1, _T1, _C1, _A1>&, + const multimap<_K1, _T1, _C1, _A1>&); + + template + friend bool + operator<(const multimap<_K1, _T1, _C1, _A1>&, + const multimap<_K1, _T1, _C1, _A1>&); + }; +# 972 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + inline bool + operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, + const multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { return __x._M_t == __y._M_t; } +# 989 "/usr/include/c++/5/bits/stl_multimap.h" 3 + template + inline bool + operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, + const multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { return __x._M_t < __y._M_t; } + + + template + inline bool + operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, + const multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { return !(__x == __y); } + + + template + inline bool + operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, + const multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { return __y < __x; } + + + template + inline bool + operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, + const multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { return !(__y < __x); } + + + template + inline bool + operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, + const multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { return !(__x < __y); } + + + template + inline void + swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, + multimap<_Key, _Tp, _Compare, _Alloc>& __y) + { __x.swap(__y); } + + +} +# 63 "/usr/include/c++/5/map" 2 3 +# 51 "/usr/include/qt4/QtCore/qmap.h" 2 + + + + + + + + + +# 59 "/usr/include/qt4/QtCore/qmap.h" +typedef QtValidLicenseForCoreModule QtCoreModule; + +struct QMapData +{ + struct Node { + Node *backward; + Node *forward[1]; + }; + enum { LastLevel = 11, Sparseness = 3 }; + + QMapData *backward; + QMapData *forward[QMapData::LastLevel + 1]; + QBasicAtomicInt ref; + int topLevel; + int size; + uint randomBits; + uint insertInOrder : 1; + uint sharable : 1; + uint strictAlignment : 1; + uint reserved : 29; + + static QMapData *createData(); + static QMapData *createData(int alignment); + void continueFreeData(int offset); + Node *node_create(Node *update[], int offset); + Node *node_create(Node *update[], int offset, int alignment); + void node_delete(Node *update[], int offset, Node *node); + + + + + + static QMapData shared_null; +}; +# 105 "/usr/include/qt4/QtCore/qmap.h" +template inline bool qMapLessThanKey(const Key &key1, const Key &key2) +{ + return key1 < key2; +} + +template inline bool qMapLessThanKey(Ptr *key1, Ptr *key2) +{ + ((!(sizeof(quintptr) == sizeof(Ptr *))) ? qt_assert("sizeof(quintptr) == sizeof(Ptr *)","/usr/include/qt4/QtCore/qmap.h",112) : qt_noop()); + return quintptr(key1) < quintptr(key2); +} + +template inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key2) +{ + ((!(sizeof(quintptr) == sizeof(const Ptr *))) ? qt_assert("sizeof(quintptr) == sizeof(const Ptr *)","/usr/include/qt4/QtCore/qmap.h",118) : qt_noop()); + return quintptr(key1) < quintptr(key2); +} + +template +struct QMapNode { + Key key; + T value; + +private: + + + QMapData::Node *backward; + QMapData::Node *forward[1]; +}; + +template +struct QMapPayloadNode +{ + Key key; + T value; + +private: +# 155 "/usr/include/qt4/QtCore/qmap.h" + QMapData::Node *backward; +}; + +template +class QMap +{ + typedef QMapNode Node; + typedef QMapPayloadNode PayloadNode; + + union { + QMapData *d; + QMapData::Node *e; + }; + + static inline int payload() { return sizeof(PayloadNode) - sizeof(QMapData::Node *); } + static inline int alignment() { + + return int(qMax(sizeof(void*), __alignof__(Node))); + + + + } + static inline Node *concrete(QMapData::Node *node) { + return reinterpret_cast(reinterpret_cast(node) - payload()); + } + +public: + inline QMap() : d(&QMapData::shared_null) { d->ref.ref(); } + inline QMap(const QMap &other) : d(other.d) + { d->ref.ref(); if (!d->sharable) detach(); } + inline ~QMap() { if (!d) return; if (!d->ref.deref()) freeData(d); } + + QMap &operator=(const QMap &other); + + inline QMap &operator=(QMap &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QMap &other) { qSwap(d, other.d); } + + explicit QMap(const typename std::map &other); + std::map toStdMap() const; + + + bool operator==(const QMap &other) const; + inline bool operator!=(const QMap &other) const { return !(*this == other); } + + inline int size() const { return d->size; } + + inline bool isEmpty() const { return d->size == 0; } + + inline void detach() { if (d->ref != 1) detach_helper(); } + inline bool isDetached() const { return d->ref == 1; } + inline void setSharable(bool sharable) { if (!sharable) detach(); d->sharable = sharable; } + inline bool isSharedWith(const QMap &other) const { return d == other.d; } + inline void setInsertInOrder(bool ordered) { d->insertInOrder = ordered; } + + void clear(); + + int remove(const Key &key); + T take(const Key &key); + + bool contains(const Key &key) const; + const Key key(const T &value) const; + const Key key(const T &value, const Key &defaultKey) const; + const T value(const Key &key) const; + const T value(const Key &key, const T &defaultValue) const; + T &operator[](const Key &key); + const T operator[](const Key &key) const; + + QList uniqueKeys() const; + QList keys() const; + QList keys(const T &value) const; + QList values() const; + QList values(const Key &key) const; + int count(const Key &key) const; + + class const_iterator; + + class iterator + { + friend class const_iterator; + QMapData::Node *i; + + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef qptrdiff difference_type; + typedef T value_type; + typedef T *pointer; + typedef T &reference; + + + inline operator QMapData::Node *() const { return i; } + inline iterator() : i(0) { } + inline iterator(QMapData::Node *node) : i(node) { } + + inline const Key &key() const { return concrete(i)->key; } + inline T &value() const { return concrete(i)->value; } + + + + inline T &operator*() const { return concrete(i)->value; } + inline T *operator->() const { return &concrete(i)->value; } + inline bool operator==(const iterator &o) const { return i == o.i; } + inline bool operator!=(const iterator &o) const { return i != o.i; } + + inline iterator &operator++() { + i = i->forward[0]; + return *this; + } + inline iterator operator++(int) { + iterator r = *this; + i = i->forward[0]; + return r; + } + inline iterator &operator--() { + i = i->backward; + return *this; + } + inline iterator operator--(int) { + iterator r = *this; + i = i->backward; + return r; + } + inline iterator operator+(int j) const + { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } + inline iterator operator-(int j) const { return operator+(-j); } + inline iterator &operator+=(int j) { return *this = *this + j; } + inline iterator &operator-=(int j) { return *this = *this - j; } + + + + + + public: + + inline bool operator==(const const_iterator &o) const + { return i == o.i; } + inline bool operator!=(const const_iterator &o) const + { return i != o.i; } + + private: + + inline operator bool() const { return false; } + }; + friend class iterator; + + class const_iterator + { + friend class iterator; + QMapData::Node *i; + + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef qptrdiff difference_type; + typedef T value_type; + typedef const T *pointer; + typedef const T &reference; + + + inline operator QMapData::Node *() const { return i; } + inline const_iterator() : i(0) { } + inline const_iterator(QMapData::Node *node) : i(node) { } + + + + inline const_iterator(const iterator &o) + + { i = o.i; } + + inline const Key &key() const { return concrete(i)->key; } + inline const T &value() const { return concrete(i)->value; } + + + + inline const T &operator*() const { return concrete(i)->value; } + inline const T *operator->() const { return &concrete(i)->value; } + inline bool operator==(const const_iterator &o) const { return i == o.i; } + inline bool operator!=(const const_iterator &o) const { return i != o.i; } + + inline const_iterator &operator++() { + i = i->forward[0]; + return *this; + } + inline const_iterator operator++(int) { + const_iterator r = *this; + i = i->forward[0]; + return r; + } + inline const_iterator &operator--() { + i = i->backward; + return *this; + } + inline const_iterator operator--(int) { + const_iterator r = *this; + i = i->backward; + return r; + } + inline const_iterator operator+(int j) const + { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } + inline const_iterator operator-(int j) const { return operator+(-j); } + inline const_iterator &operator+=(int j) { return *this = *this + j; } + inline const_iterator &operator-=(int j) { return *this = *this - j; } +# 365 "/usr/include/qt4/QtCore/qmap.h" + private: + + inline operator bool() const { return false; } + }; + friend class const_iterator; + + + inline iterator begin() { detach(); return iterator(e->forward[0]); } + inline const_iterator begin() const { return const_iterator(e->forward[0]); } + inline const_iterator constBegin() const { return const_iterator(e->forward[0]); } + inline iterator end() { + detach(); + return iterator(e); + } + inline const_iterator end() const { return const_iterator(e); } + inline const_iterator constEnd() const { return const_iterator(e); } + iterator erase(iterator it); + + + + + + + typedef iterator Iterator; + typedef const_iterator ConstIterator; + inline int count() const { return d->size; } + iterator find(const Key &key); + const_iterator find(const Key &key) const; + const_iterator constFind(const Key &key) const; + iterator lowerBound(const Key &key); + const_iterator lowerBound(const Key &key) const; + iterator upperBound(const Key &key); + const_iterator upperBound(const Key &key) const; + iterator insert(const Key &key, const T &value); + + + + iterator insertMulti(const Key &key, const T &value); + + + + QMap &unite(const QMap &other); + + + typedef Key key_type; + typedef T mapped_type; + typedef qptrdiff difference_type; + typedef int size_type; + inline bool empty() const { return isEmpty(); } + + + + + +private: + void detach_helper(); + void freeData(QMapData *d); + QMapData::Node *findNode(const Key &key) const; + QMapData::Node *mutableFindNode(QMapData::Node *update[], const Key &key) const; + QMapData::Node *node_create(QMapData *d, QMapData::Node *update[], const Key &key, + const T &value); +}; + +template +inline QMap &QMap::operator=(const QMap &other) +{ + if (d != other.d) { + QMapData* o = other.d; + o->ref.ref(); + if (!d->ref.deref()) + freeData(d); + d = o; + if (!d->sharable) + detach_helper(); + } + return *this; +} + +template +inline void QMap::clear() +{ + *this = QMap(); +} + +template +inline typename QMapData::Node * +QMap::node_create(QMapData *adt, QMapData::Node *aupdate[], const Key &akey, const T &avalue) +{ + QMapData::Node *abstractNode = adt->node_create(aupdate, payload(), alignment()); + try { + Node *concreteNode = concrete(abstractNode); + new (&concreteNode->key) Key(akey); + try { + new (&concreteNode->value) T(avalue); + } catch (...) { + concreteNode->key.~Key(); + throw; + } + } catch (...) { + adt->node_delete(aupdate, payload(), abstractNode); + throw; + } +# 477 "/usr/include/qt4/QtCore/qmap.h" + return abstractNode; +} + +template +inline QMapData::Node *QMap::findNode(const Key &akey) const +{ + QMapData::Node *cur = e; + QMapData::Node *next = e; + + for (int i = d->topLevel; i >= 0; i--) { + while ((next = cur->forward[i]) != e && qMapLessThanKey(concrete(next)->key, akey)) + cur = next; + } + + if (next != e && !qMapLessThanKey(akey, concrete(next)->key)) { + return next; + } else { + return e; + } +} + +template +inline const T QMap::value(const Key &akey) const +{ + QMapData::Node *node; + if (d->size == 0 || (node = findNode(akey)) == e) { + return T(); + } else { + return concrete(node)->value; + } +} + +template +inline const T QMap::value(const Key &akey, const T &adefaultValue) const +{ + QMapData::Node *node; + if (d->size == 0 || (node = findNode(akey)) == e) { + return adefaultValue; + } else { + return concrete(node)->value; + } +} + +template +inline const T QMap::operator[](const Key &akey) const +{ + return value(akey); +} + +template +inline T &QMap::operator[](const Key &akey) +{ + detach(); + + QMapData::Node *update[QMapData::LastLevel + 1]; + QMapData::Node *node = mutableFindNode(update, akey); + if (node == e) + node = node_create(d, update, akey, T()); + return concrete(node)->value; +} + +template +inline int QMap::count(const Key &akey) const +{ + int cnt = 0; + QMapData::Node *node = findNode(akey); + if (node != e) { + do { + ++cnt; + node = node->forward[0]; + } while (node != e && !qMapLessThanKey(akey, concrete(node)->key)); + } + return cnt; +} + +template +inline bool QMap::contains(const Key &akey) const +{ + return findNode(akey) != e; +} + +template +inline typename QMap::iterator QMap::insert(const Key &akey, + const T &avalue) +{ + detach(); + + QMapData::Node *update[QMapData::LastLevel + 1]; + QMapData::Node *node = mutableFindNode(update, akey); + if (node == e) { + node = node_create(d, update, akey, avalue); + } else { + concrete(node)->value = avalue; + } + return iterator(node); +} +# 594 "/usr/include/qt4/QtCore/qmap.h" +template +inline typename QMap::iterator QMap::insertMulti(const Key &akey, + const T &avalue) +{ + detach(); + + QMapData::Node *update[QMapData::LastLevel + 1]; + mutableFindNode(update, akey); + return iterator(node_create(d, update, akey, avalue)); +} + +template +inline typename QMap::const_iterator QMap::find(const Key &akey) const +{ + return const_iterator(findNode(akey)); +} + +template +inline typename QMap::const_iterator QMap::constFind(const Key &akey) const +{ + return const_iterator(findNode(akey)); +} + +template +inline typename QMap::iterator QMap::find(const Key &akey) +{ + detach(); + return iterator(findNode(akey)); +} + +template +inline QMap &QMap::unite(const QMap &other) +{ + QMap copy(other); + const_iterator it = copy.constEnd(); + const const_iterator b = copy.constBegin(); + while (it != b) { + --it; + insertMulti(it.key(), it.value()); + } + return *this; +} + + + + + +template + void QMap::freeData(QMapData *x) +{ + if (QTypeInfo::isComplex || QTypeInfo::isComplex) { + QMapData *cur = x; + QMapData *next = cur->forward[0]; + while (next != x) { + cur = next; + next = cur->forward[0]; + Node *concreteNode = concrete(reinterpret_cast(cur)); + concreteNode->key.~Key(); + concreteNode->value.~T(); + } + } + x->continueFreeData(payload()); +} + + + + +template + int QMap::remove(const Key &akey) +{ + detach(); + + QMapData::Node *update[QMapData::LastLevel + 1]; + QMapData::Node *cur = e; + QMapData::Node *next = e; + int oldSize = d->size; + + for (int i = d->topLevel; i >= 0; i--) { + while ((next = cur->forward[i]) != e && qMapLessThanKey(concrete(next)->key, akey)) + cur = next; + update[i] = cur; + } + + if (next != e && !qMapLessThanKey(akey, concrete(next)->key)) { + bool deleteNext = true; + do { + cur = next; + next = cur->forward[0]; + deleteNext = (next != e && !qMapLessThanKey(concrete(cur)->key, concrete(next)->key)); + concrete(cur)->key.~Key(); + concrete(cur)->value.~T(); + d->node_delete(update, payload(), cur); + } while (deleteNext); + } + return oldSize - d->size; +} + +template + T QMap::take(const Key &akey) +{ + detach(); + + QMapData::Node *update[QMapData::LastLevel + 1]; + QMapData::Node *cur = e; + QMapData::Node *next = e; + + for (int i = d->topLevel; i >= 0; i--) { + while ((next = cur->forward[i]) != e && qMapLessThanKey(concrete(next)->key, akey)) + cur = next; + update[i] = cur; + } + + if (next != e && !qMapLessThanKey(akey, concrete(next)->key)) { + T t = concrete(next)->value; + concrete(next)->key.~Key(); + concrete(next)->value.~T(); + d->node_delete(update, payload(), next); + return t; + } + return T(); +} + +template + typename QMap::iterator QMap::erase(iterator it) +{ + QMapData::Node *update[QMapData::LastLevel + 1]; + QMapData::Node *cur = e; + QMapData::Node *next = e; + + if (it == iterator(e)) + return it; + + for (int i = d->topLevel; i >= 0; i--) { + while ((next = cur->forward[i]) != e && qMapLessThanKey(concrete(next)->key, it.key())) + cur = next; + update[i] = cur; + } + + while (next != e) { + cur = next; + next = cur->forward[0]; + if (cur == it) { + concrete(cur)->key.~Key(); + concrete(cur)->value.~T(); + d->node_delete(update, payload(), cur); + return iterator(next); + } + + for (int i = 0; i <= d->topLevel; ++i) { + if (update[i]->forward[i] != cur) + break; + update[i] = cur; + } + } + return end(); +} + +template + void QMap::detach_helper() +{ + union { QMapData *d; QMapData::Node *e; } x; + x.d = QMapData::createData(alignment()); + if (d->size) { + x.d->insertInOrder = true; + QMapData::Node *update[QMapData::LastLevel + 1]; + QMapData::Node *cur = e->forward[0]; + update[0] = x.e; + while (cur != e) { + try { + Node *concreteNode = concrete(cur); + node_create(x.d, update, concreteNode->key, concreteNode->value); + } catch (...) { + freeData(x.d); + throw; + } + cur = cur->forward[0]; + } + x.d->insertInOrder = false; + } + if (!d->ref.deref()) + freeData(d); + d = x.d; +} + +template + QMapData::Node *QMap::mutableFindNode(QMapData::Node *aupdate[], + const Key &akey) const +{ + QMapData::Node *cur = e; + QMapData::Node *next = e; + + for (int i = d->topLevel; i >= 0; i--) { + while ((next = cur->forward[i]) != e && qMapLessThanKey(concrete(next)->key, akey)) + cur = next; + aupdate[i] = cur; + } + if (next != e && !qMapLessThanKey(akey, concrete(next)->key)) { + return next; + } else { + return e; + } +} + +template + QList QMap::uniqueKeys() const +{ + QList res; + res.reserve(size()); + const_iterator i = begin(); + if (i != end()) { + for (;;) { + const Key &aKey = i.key(); + res.append(aKey); + do { + if (++i == end()) + goto break_out_of_outer_loop; + } while (!(aKey < i.key())); + } + } +break_out_of_outer_loop: + return res; +} + +template + QList QMap::keys() const +{ + QList res; + res.reserve(size()); + const_iterator i = begin(); + while (i != end()) { + res.append(i.key()); + ++i; + } + return res; +} + +template + QList QMap::keys(const T &avalue) const +{ + QList res; + const_iterator i = begin(); + while (i != end()) { + if (i.value() == avalue) + res.append(i.key()); + ++i; + } + return res; +} + +template + const Key QMap::key(const T &avalue) const +{ + return key(avalue, Key()); +} + +template + const Key QMap::key(const T &avalue, const Key &defaultKey) const +{ + const_iterator i = begin(); + while (i != end()) { + if (i.value() == avalue) + return i.key(); + ++i; + } + + return defaultKey; +} + +template + QList QMap::values() const +{ + QList res; + res.reserve(size()); + const_iterator i = begin(); + while (i != end()) { + res.append(i.value()); + ++i; + } + return res; +} + +template + QList QMap::values(const Key &akey) const +{ + QList res; + QMapData::Node *node = findNode(akey); + if (node != e) { + do { + res.append(concrete(node)->value); + node = node->forward[0]; + } while (node != e && !qMapLessThanKey(akey, concrete(node)->key)); + } + return res; +} + +template +inline typename QMap::const_iterator +QMap::lowerBound(const Key &akey) const +{ + QMapData::Node *update[QMapData::LastLevel + 1]; + mutableFindNode(update, akey); + return const_iterator(update[0]->forward[0]); +} + +template +inline typename QMap::iterator QMap::lowerBound(const Key &akey) +{ + detach(); + return static_cast(const_cast(this)->lowerBound(akey)); +} + +template +inline typename QMap::const_iterator +QMap::upperBound(const Key &akey) const +{ + QMapData::Node *update[QMapData::LastLevel + 1]; + mutableFindNode(update, akey); + QMapData::Node *node = update[0]->forward[0]; + while (node != e && !qMapLessThanKey(akey, concrete(node)->key)) + node = node->forward[0]; + return const_iterator(node); +} + +template +inline typename QMap::iterator QMap::upperBound(const Key &akey) +{ + detach(); + return static_cast(const_cast(this)->upperBound(akey)); +} + +template + bool QMap::operator==(const QMap &other) const +{ + if (size() != other.size()) + return false; + if (d == other.d) + return true; + + const_iterator it1 = begin(); + const_iterator it2 = other.begin(); + + while (it1 != end()) { + if (!(it1.value() == it2.value()) || qMapLessThanKey(it1.key(), it2.key()) || qMapLessThanKey(it2.key(), it1.key())) + return false; + ++it2; + ++it1; + } + return true; +} + + +template + QMap::QMap(const std::map &other) +{ + d = QMapData::createData(alignment()); + d->insertInOrder = true; + typename std::map::const_iterator it = other.end(); + while (it != other.begin()) { + --it; + insert((*it).first, (*it).second); + } + d->insertInOrder = false; +} + +template + std::map QMap::toStdMap() const +{ + std::map map; + const_iterator it = end(); + while (it != begin()) { + --it; + map.insert(std::pair(it.key(), it.value())); + } + return map; +} + + + +template +class QMultiMap : public QMap +{ +public: + QMultiMap() {} + QMultiMap(const QMap &other) : QMap(other) {} + inline void swap(QMultiMap &other) { QMap::swap(other); } + + inline typename QMap::iterator replace(const Key &key, const T &value) + { return QMap::insert(key, value); } + inline typename QMap::iterator insert(const Key &key, const T &value) + { return QMap::insertMulti(key, value); } + + inline QMultiMap &operator+=(const QMultiMap &other) + { this->unite(other); return *this; } + inline QMultiMap operator+(const QMultiMap &other) const + { QMultiMap result = *this; result += other; return result; } + + + + using QMap::contains; + using QMap::remove; + using QMap::count; + using QMap::find; + using QMap::constFind; +# 1014 "/usr/include/qt4/QtCore/qmap.h" + bool contains(const Key &key, const T &value) const; + + int remove(const Key &key, const T &value); + + int count(const Key &key, const T &value) const; + + typename QMap::iterator find(const Key &key, const T &value) { + typename QMap::iterator i(find(key)); + typename QMap::iterator end(this->end()); + while (i != end && !qMapLessThanKey(key, i.key())) { + if (i.value() == value) + return i; + ++i; + } + return end; + } + typename QMap::const_iterator find(const Key &key, const T &value) const { + typename QMap::const_iterator i(constFind(key)); + typename QMap::const_iterator end(QMap::constEnd()); + while (i != end && !qMapLessThanKey(key, i.key())) { + if (i.value() == value) + return i; + ++i; + } + return end; + } + typename QMap::const_iterator constFind(const Key &key, const T &value) const + { return find(key, value); } +private: + T &operator[](const Key &key); + const T operator[](const Key &key) const; +}; + +template +inline bool QMultiMap::contains(const Key &key, const T &value) const +{ + return constFind(key, value) != QMap::constEnd(); +} + +template +inline int QMultiMap::remove(const Key &key, const T &value) +{ + int n = 0; + typename QMap::iterator i(find(key)); + typename QMap::iterator end(QMap::end()); + while (i != end && !qMapLessThanKey(key, i.key())) { + if (i.value() == value) { + i = this->erase(i); + ++n; + } else { + ++i; + } + } + return n; +} + +template +inline int QMultiMap::count(const Key &key, const T &value) const +{ + int n = 0; + typename QMap::const_iterator i(constFind(key)); + typename QMap::const_iterator end(QMap::constEnd()); + while (i != end && !qMapLessThanKey(key, i.key())) { + if (i.value() == value) + ++n; + ++i; + } + return n; +} + +template class QMapIterator { typedef typename QMap::const_iterator const_iterator; typedef const_iterator Item; QMap c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QMapIterator(const QMap &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QMapIterator &operator=(const QMap &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qmap.h",1084) : qt_noop()); return *n; } inline const Key &key() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qmap.h",1084) : qt_noop()); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; +template class QMutableMapIterator { typedef typename QMap::iterator iterator; typedef typename QMap::const_iterator const_iterator; typedef iterator Item; QMap *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableMapIterator(QMap &container) : c(&container) { c->setSharable(false); i = c->begin(); n = c->end(); } inline ~QMutableMapIterator() { c->setSharable(true); } inline QMutableMapIterator &operator=(QMap &container) { c->setSharable(true); c = &container; c->setSharable(false); i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qmap.h",1085) : qt_noop()); return *n; } inline const T &value() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qmap.h",1085) : qt_noop()); return *n; } inline const Key &key() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qmap.h",1085) : qt_noop()); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; + + + + +# 50 "/usr/include/qt4/QtCore/qvariant.h" 2 +# 1 "/usr/include/qt4/QtCore/qhash.h" 1 +# 51 "/usr/include/qt4/QtCore/qhash.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QBitArray; +class QByteArray; +class QString; +class QStringRef; + +inline uint qHash(char key) { return uint(key); } +inline uint qHash(uchar key) { return uint(key); } +inline uint qHash(signed char key) { return uint(key); } +inline uint qHash(ushort key) { return uint(key); } +inline uint qHash(short key) { return uint(key); } +inline uint qHash(uint key) { return key; } +inline uint qHash(int key) { return uint(key); } +inline uint qHash(ulong key) +{ + if (sizeof(ulong) > sizeof(uint)) { + return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)); + } else { + return uint(key & (~0U)); + } +} +inline uint qHash(long key) { return qHash(ulong(key)); } +inline uint qHash(quint64 key) +{ + if (sizeof(quint64) > sizeof(uint)) { + return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)); + } else { + return uint(key & (~0U)); + } +} +inline uint qHash(qint64 key) { return qHash(quint64(key)); } +inline uint qHash(QChar key) { return qHash(key.unicode()); } + uint qHash(const QByteArray &key); + uint qHash(const QString &key); + uint qHash(const QStringRef &key); + uint qHash(const QBitArray &key); + + + + + +template inline uint qHash(const T *key) +{ + return qHash(reinterpret_cast(key)); +} + + + + +template inline uint qHash(const QPair &key) +{ + uint h1 = qHash(key.first); + uint h2 = qHash(key.second); + return ((h1 << 16) | (h1 >> 16)) ^ h2; +} + +struct QHashData +{ + struct Node { + Node *next; + uint h; + }; + + Node *fakeNext; + Node **buckets; + QBasicAtomicInt ref; + int size; + int nodeSize; + short userNumBits; + short numBits; + int numBuckets; + uint sharable : 1; + uint strictAlignment : 1; + uint reserved : 30; + + void *allocateNode(); + void *allocateNode(int nodeAlign); + void freeNode(void *node); + QHashData *detach_helper(void (*node_duplicate)(Node *, void *), int nodeSize); + QHashData *detach_helper2(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), + int nodeSize, int nodeAlign); + void mightGrow(); + bool willGrow(); + void hasShrunk(); + void rehash(int hint); + void free_helper(void (*node_delete)(Node *)); + void destroyAndFree(); + Node *firstNode(); + + + + + static Node *nextNode(Node *node); + static Node *previousNode(Node *node); + + static QHashData shared_null; +}; + +inline void QHashData::mightGrow() +{ + if (size >= numBuckets) + rehash(numBits + 1); +} + +inline bool QHashData::willGrow() +{ + if (size >= numBuckets) { + rehash(numBits + 1); + return true; + } else { + return false; + } +} + +inline void QHashData::hasShrunk() +{ + if (size <= (numBuckets >> 3) && numBits > userNumBits) { + try { + rehash(qMax(int(numBits) - 2, int(userNumBits))); + } catch (const std::bad_alloc &) { + + } + } +} + +inline QHashData::Node *QHashData::firstNode() +{ + Node *e = reinterpret_cast(this); + Node **bucket = buckets; + int n = numBuckets; + while (n--) { + if (*bucket != e) + return *bucket; + ++bucket; + } + return e; +} + +struct QHashDummyValue +{ +}; + +inline bool operator==(const QHashDummyValue & , const QHashDummyValue & ) +{ + return true; +} + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QHashDummyValue)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QHashDummyValue"; } }; + +template +struct QHashDummyNode +{ + QHashDummyNode *next; + uint h; + Key key; + + inline QHashDummyNode(const Key &key0) : key(key0) {} +}; + +template +struct QHashNode +{ + QHashNode *next; + uint h; + Key key; + T value; + + inline QHashNode(const Key &key0) : key(key0) {} + inline QHashNode(const Key &key0, const T &value0) : key(key0), value(value0) {} + inline bool same_key(uint h0, const Key &key0) { return h0 == h && key0 == key; } +}; +# 250 "/usr/include/qt4/QtCore/qhash.h" +template struct QHashDummyNode { QHashDummyNode *next; union { uint h; short key; }; inline QHashDummyNode(short ) {} }; template struct QHashNode { QHashNode *next; union { uint h; short key; }; T value; inline QHashNode(short ) {} inline QHashNode(short , const T &value0) : value(value0) {} inline bool same_key(uint h0, short) { return h0 == h; } }; +template struct QHashDummyNode { QHashDummyNode *next; union { uint h; ushort key; }; inline QHashDummyNode(ushort ) {} }; template struct QHashNode { QHashNode *next; union { uint h; ushort key; }; T value; inline QHashNode(ushort ) {} inline QHashNode(ushort , const T &value0) : value(value0) {} inline bool same_key(uint h0, ushort) { return h0 == h; } }; + +template struct QHashDummyNode { QHashDummyNode *next; union { uint h; int key; }; inline QHashDummyNode(int ) {} }; template struct QHashNode { QHashNode *next; union { uint h; int key; }; T value; inline QHashNode(int ) {} inline QHashNode(int , const T &value0) : value(value0) {} inline bool same_key(uint h0, int) { return h0 == h; } }; +template struct QHashDummyNode { QHashDummyNode *next; union { uint h; uint key; }; inline QHashDummyNode(uint ) {} }; template struct QHashNode { QHashNode *next; union { uint h; uint key; }; T value; inline QHashNode(uint ) {} inline QHashNode(uint , const T &value0) : value(value0) {} inline bool same_key(uint h0, uint) { return h0 == h; } }; + + +template +class QHash +{ + typedef QHashDummyNode DummyNode; + typedef QHashNode Node; + + union { + QHashData *d; + QHashNode *e; + }; + + static inline Node *concrete(QHashData::Node *node) { + return reinterpret_cast(node); + } + + + static inline int alignOfNode() { return qMax(sizeof(void*), __alignof__(Node)); } + static inline int alignOfDummyNode() { return qMax(sizeof(void*), __alignof__(DummyNode)); } + + + + + +public: + inline QHash() : d(&QHashData::shared_null) { d->ref.ref(); } + inline QHash(const QHash &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } + inline ~QHash() { if (!d->ref.deref()) freeData(d); } + + QHash &operator=(const QHash &other); + + inline QHash &operator=(QHash &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QHash &other) { qSwap(d, other.d); } + + bool operator==(const QHash &other) const; + inline bool operator!=(const QHash &other) const { return !(*this == other); } + + inline int size() const { return d->size; } + + inline bool isEmpty() const { return d->size == 0; } + + inline int capacity() const { return d->numBuckets; } + void reserve(int size); + inline void squeeze() { reserve(1); } + + inline void detach() { if (d->ref != 1) detach_helper(); } + inline bool isDetached() const { return d->ref == 1; } + inline void setSharable(bool sharable) { if (!sharable) detach(); d->sharable = sharable; } + inline bool isSharedWith(const QHash &other) const { return d == other.d; } + + void clear(); + + int remove(const Key &key); + T take(const Key &key); + + bool contains(const Key &key) const; + const Key key(const T &value) const; + const Key key(const T &value, const Key &defaultKey) const; + const T value(const Key &key) const; + const T value(const Key &key, const T &defaultValue) const; + T &operator[](const Key &key); + const T operator[](const Key &key) const; + + QList uniqueKeys() const; + QList keys() const; + QList keys(const T &value) const; + QList values() const; + QList values(const Key &key) const; + int count(const Key &key) const; + + class const_iterator; + + class iterator + { + friend class const_iterator; + QHashData::Node *i; + + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef qptrdiff difference_type; + typedef T value_type; + typedef T *pointer; + typedef T &reference; + + + inline operator Node *() const { return concrete(i); } + inline iterator() : i(0) { } + explicit inline iterator(void *node) : i(reinterpret_cast(node)) { } + + inline const Key &key() const { return concrete(i)->key; } + inline T &value() const { return concrete(i)->value; } + inline T &operator*() const { return concrete(i)->value; } + inline T *operator->() const { return &concrete(i)->value; } + inline bool operator==(const iterator &o) const { return i == o.i; } + inline bool operator!=(const iterator &o) const { return i != o.i; } + + inline iterator &operator++() { + i = QHashData::nextNode(i); + return *this; + } + inline iterator operator++(int) { + iterator r = *this; + i = QHashData::nextNode(i); + return r; + } + inline iterator &operator--() { + i = QHashData::previousNode(i); + return *this; + } + inline iterator operator--(int) { + iterator r = *this; + i = QHashData::previousNode(i); + return r; + } + inline iterator operator+(int j) const + { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } + inline iterator operator-(int j) const { return operator+(-j); } + inline iterator &operator+=(int j) { return *this = *this + j; } + inline iterator &operator-=(int j) { return *this = *this - j; } + + + + + + public: + + inline bool operator==(const const_iterator &o) const + { return i == o.i; } + inline bool operator!=(const const_iterator &o) const + { return i != o.i; } + + private: + + inline operator bool() const { return false; } + }; + friend class iterator; + + class const_iterator + { + friend class iterator; + QHashData::Node *i; + + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef qptrdiff difference_type; + typedef T value_type; + typedef const T *pointer; + typedef const T &reference; + + + inline operator Node *() const { return concrete(i); } + inline const_iterator() : i(0) { } + explicit inline const_iterator(void *node) + : i(reinterpret_cast(node)) { } + + + + inline const_iterator(const iterator &o) + + { i = o.i; } + + inline const Key &key() const { return concrete(i)->key; } + inline const T &value() const { return concrete(i)->value; } + inline const T &operator*() const { return concrete(i)->value; } + inline const T *operator->() const { return &concrete(i)->value; } + inline bool operator==(const const_iterator &o) const { return i == o.i; } + inline bool operator!=(const const_iterator &o) const { return i != o.i; } + + inline const_iterator &operator++() { + i = QHashData::nextNode(i); + return *this; + } + inline const_iterator operator++(int) { + const_iterator r = *this; + i = QHashData::nextNode(i); + return r; + } + inline const_iterator &operator--() { + i = QHashData::previousNode(i); + return *this; + } + inline const_iterator operator--(int) { + const_iterator r = *this; + i = QHashData::previousNode(i); + return r; + } + inline const_iterator operator+(int j) const + { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } + inline const_iterator operator-(int j) const { return operator+(-j); } + inline const_iterator &operator+=(int j) { return *this = *this + j; } + inline const_iterator &operator-=(int j) { return *this = *this - j; } +# 457 "/usr/include/qt4/QtCore/qhash.h" + private: + + inline operator bool() const { return false; } + }; + friend class const_iterator; + + + inline iterator begin() { detach(); return iterator(d->firstNode()); } + inline const_iterator begin() const { return const_iterator(d->firstNode()); } + inline const_iterator constBegin() const { return const_iterator(d->firstNode()); } + inline iterator end() { detach(); return iterator(e); } + inline const_iterator end() const { return const_iterator(e); } + inline const_iterator constEnd() const { return const_iterator(e); } + iterator erase(iterator it); + + + typedef iterator Iterator; + typedef const_iterator ConstIterator; + inline int count() const { return d->size; } + iterator find(const Key &key); + const_iterator find(const Key &key) const; + const_iterator constFind(const Key &key) const; + iterator insert(const Key &key, const T &value); + iterator insertMulti(const Key &key, const T &value); + QHash &unite(const QHash &other); + + + typedef T mapped_type; + typedef Key key_type; + typedef qptrdiff difference_type; + typedef int size_type; + + inline bool empty() const { return isEmpty(); } + + + + + + +private: + void detach_helper(); + void freeData(QHashData *d); + Node **findNode(const Key &key, uint *hp = 0) const; + Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); + void deleteNode(Node *node); + static void deleteNode2(QHashData::Node *node); + + static void duplicateNode(QHashData::Node *originalNode, void *newNode); +}; + + +template +inline void QHash::deleteNode(Node *node) +{ + deleteNode2(reinterpret_cast(node)); + d->freeNode(node); +} + +template +inline void QHash::deleteNode2(QHashData::Node *node) +{ + + + + concrete(node)->~Node(); + +} + +template +void QHash::duplicateNode(QHashData::Node *node, void *newNode) +{ + Node *concreteNode = concrete(node); + if (QTypeInfo::isDummy) { + (void) new (newNode) DummyNode(concreteNode->key); + } else { + (void) new (newNode) Node(concreteNode->key, concreteNode->value); + } +} + +template +inline typename QHash::Node * +QHash::createNode(uint ah, const Key &akey, const T &avalue, Node **anextNode) +{ + Node *node; + + if (QTypeInfo::isDummy) { + node = reinterpret_cast(new (d->allocateNode(alignOfDummyNode())) DummyNode(akey)); + } else { + node = new (d->allocateNode(alignOfNode())) Node(akey, avalue); + } + + node->h = ah; + node->next = *anextNode; + *anextNode = node; + ++d->size; + return node; +} + +template +inline QHash &QHash::unite(const QHash &other) +{ + QHash copy(other); + const_iterator it = copy.constEnd(); + while (it != copy.constBegin()) { + --it; + insertMulti(it.key(), it.value()); + } + return *this; +} + +template + void QHash::freeData(QHashData *x) +{ + x->free_helper(deleteNode2); +} + +template +inline void QHash::clear() +{ + *this = QHash(); +} + +template + void QHash::detach_helper() +{ + QHashData *x = d->detach_helper2(duplicateNode, deleteNode2, + QTypeInfo::isDummy ? sizeof(DummyNode) : sizeof(Node), + QTypeInfo::isDummy ? alignOfDummyNode() : alignOfNode()); + if (!d->ref.deref()) + freeData(d); + d = x; +} + +template +inline QHash &QHash::operator=(const QHash &other) +{ + if (d != other.d) { + QHashData *o = other.d; + o->ref.ref(); + if (!d->ref.deref()) + freeData(d); + d = o; + if (!d->sharable) + detach_helper(); + } + return *this; +} + +template +inline const T QHash::value(const Key &akey) const +{ + Node *node; + if (d->size == 0 || (node = *findNode(akey)) == e) { + return T(); + } else { + return node->value; + } +} + +template +inline const T QHash::value(const Key &akey, const T &adefaultValue) const +{ + Node *node; + if (d->size == 0 || (node = *findNode(akey)) == e) { + return adefaultValue; + } else { + return node->value; + } +} + +template + QList QHash::uniqueKeys() const +{ + QList res; + res.reserve(size()); + const_iterator i = begin(); + if (i != end()) { + for (;;) { + const Key &aKey = i.key(); + res.append(aKey); + do { + if (++i == end()) + goto break_out_of_outer_loop; + } while (aKey == i.key()); + } + } +break_out_of_outer_loop: + return res; +} + +template + QList QHash::keys() const +{ + QList res; + res.reserve(size()); + const_iterator i = begin(); + while (i != end()) { + res.append(i.key()); + ++i; + } + return res; +} + +template + QList QHash::keys(const T &avalue) const +{ + QList res; + const_iterator i = begin(); + while (i != end()) { + if (i.value() == avalue) + res.append(i.key()); + ++i; + } + return res; +} + +template + const Key QHash::key(const T &avalue) const +{ + return key(avalue, Key()); +} + +template + const Key QHash::key(const T &avalue, const Key &defaultValue) const +{ + const_iterator i = begin(); + while (i != end()) { + if (i.value() == avalue) + return i.key(); + ++i; + } + + return defaultValue; +} + +template + QList QHash::values() const +{ + QList res; + res.reserve(size()); + const_iterator i = begin(); + while (i != end()) { + res.append(i.value()); + ++i; + } + return res; +} + +template + QList QHash::values(const Key &akey) const +{ + QList res; + Node *node = *findNode(akey); + if (node != e) { + do { + res.append(node->value); + } while ((node = node->next) != e && node->key == akey); + } + return res; +} + +template + int QHash::count(const Key &akey) const +{ + int cnt = 0; + Node *node = *findNode(akey); + if (node != e) { + do { + ++cnt; + } while ((node = node->next) != e && node->key == akey); + } + return cnt; +} + +template +inline const T QHash::operator[](const Key &akey) const +{ + return value(akey); +} + +template +inline T &QHash::operator[](const Key &akey) +{ + detach(); + + uint h; + Node **node = findNode(akey, &h); + if (*node == e) { + if (d->willGrow()) + node = findNode(akey, &h); + return createNode(h, akey, T(), node)->value; + } + return (*node)->value; +} + +template +inline typename QHash::iterator QHash::insert(const Key &akey, + const T &avalue) +{ + detach(); + + uint h; + Node **node = findNode(akey, &h); + if (*node == e) { + if (d->willGrow()) + node = findNode(akey, &h); + return iterator(createNode(h, akey, avalue, node)); + } + + if (!QTypeInfo::isDummy) + (*node)->value = avalue; + return iterator(*node); +} + +template +inline typename QHash::iterator QHash::insertMulti(const Key &akey, + const T &avalue) +{ + detach(); + d->willGrow(); + + uint h; + Node **nextNode = findNode(akey, &h); + return iterator(createNode(h, akey, avalue, nextNode)); +} + +template + int QHash::remove(const Key &akey) +{ + if (isEmpty()) + return 0; + detach(); + + int oldSize = d->size; + Node **node = findNode(akey); + if (*node != e) { + bool deleteNext = true; + do { + Node *next = (*node)->next; + deleteNext = (next != e && next->key == (*node)->key); + deleteNode(*node); + *node = next; + --d->size; + } while (deleteNext); + d->hasShrunk(); + } + return oldSize - d->size; +} + +template + T QHash::take(const Key &akey) +{ + if (isEmpty()) + return T(); + detach(); + + Node **node = findNode(akey); + if (*node != e) { + T t = (*node)->value; + Node *next = (*node)->next; + deleteNode(*node); + *node = next; + --d->size; + d->hasShrunk(); + return t; + } + return T(); +} + +template + typename QHash::iterator QHash::erase(iterator it) +{ + if (it == iterator(e)) + return it; + + iterator ret = it; + ++ret; + + Node *node = it; + Node **node_ptr = reinterpret_cast(&d->buckets[node->h % d->numBuckets]); + while (*node_ptr != node) + node_ptr = &(*node_ptr)->next; + *node_ptr = node->next; + deleteNode(node); + --d->size; + return ret; +} + +template +inline void QHash::reserve(int asize) +{ + detach(); + d->rehash(-qMax(asize, 1)); +} + +template +inline typename QHash::const_iterator QHash::find(const Key &akey) const +{ + return const_iterator(*findNode(akey)); +} + +template +inline typename QHash::const_iterator QHash::constFind(const Key &akey) const +{ + return const_iterator(*findNode(akey)); +} + +template +inline typename QHash::iterator QHash::find(const Key &akey) +{ + detach(); + return iterator(*findNode(akey)); +} + +template +inline bool QHash::contains(const Key &akey) const +{ + return *findNode(akey) != e; +} + +template + typename QHash::Node **QHash::findNode(const Key &akey, + uint *ahp) const +{ + Node **node; + uint h = qHash(akey); + + if (d->numBuckets) { + node = reinterpret_cast(&d->buckets[h % d->numBuckets]); + ((!(*node == e || (*node)->next)) ? qt_assert("*node == e || (*node)->next","/usr/include/qt4/QtCore/qhash.h",886) : qt_noop()); + while (*node != e && !(*node)->same_key(h, akey)) + node = &(*node)->next; + } else { + node = const_cast(reinterpret_cast(&e)); + } + if (ahp) + *ahp = h; + return node; +} + +template + bool QHash::operator==(const QHash &other) const +{ + if (size() != other.size()) + return false; + if (d == other.d) + return true; + + const_iterator it = begin(); + + while (it != end()) { + const Key &akey = it.key(); + + const_iterator it2 = other.find(akey); + do { + if (it2 == other.end() || !(it2.key() == akey)) + return false; + if (!QTypeInfo::isDummy && !(it.value() == it2.value())) + return false; + ++it; + ++it2; + } while (it != end() && it.key() == akey); + } + return true; +} + +template +class QMultiHash : public QHash +{ +public: + QMultiHash() {} + QMultiHash(const QHash &other) : QHash(other) {} + inline void swap(QMultiHash &other) { QHash::swap(other); } + + inline typename QHash::iterator replace(const Key &key, const T &value) + { return QHash::insert(key, value); } + + inline typename QHash::iterator insert(const Key &key, const T &value) + { return QHash::insertMulti(key, value); } + + inline QMultiHash &operator+=(const QMultiHash &other) + { this->unite(other); return *this; } + inline QMultiHash operator+(const QMultiHash &other) const + { QMultiHash result = *this; result += other; return result; } + + + + using QHash::contains; + using QHash::remove; + using QHash::count; + using QHash::find; + using QHash::constFind; +# 966 "/usr/include/qt4/QtCore/qhash.h" + bool contains(const Key &key, const T &value) const; + + int remove(const Key &key, const T &value); + + int count(const Key &key, const T &value) const; + + typename QHash::iterator find(const Key &key, const T &value) { + typename QHash::iterator i(find(key)); + typename QHash::iterator end(this->end()); + while (i != end && i.key() == key) { + if (i.value() == value) + return i; + ++i; + } + return end; + } + typename QHash::const_iterator find(const Key &key, const T &value) const { + typename QHash::const_iterator i(constFind(key)); + typename QHash::const_iterator end(QHash::constEnd()); + while (i != end && i.key() == key) { + if (i.value() == value) + return i; + ++i; + } + return end; + } + typename QHash::const_iterator constFind(const Key &key, const T &value) const + { return find(key, value); } +private: + T &operator[](const Key &key); + const T operator[](const Key &key) const; +}; + +template +inline bool QMultiHash::contains(const Key &key, const T &value) const +{ + return constFind(key, value) != QHash::constEnd(); +} + +template +inline int QMultiHash::remove(const Key &key, const T &value) +{ + int n = 0; + typename QHash::iterator i(find(key)); + typename QHash::iterator end(QHash::end()); + while (i != end && i.key() == key) { + if (i.value() == value) { + i = this->erase(i); + ++n; + } else { + ++i; + } + } + return n; +} + +template +inline int QMultiHash::count(const Key &key, const T &value) const +{ + int n = 0; + typename QHash::const_iterator i(constFind(key)); + typename QHash::const_iterator end(QHash::constEnd()); + while (i != end && i.key() == key) { + if (i.value() == value) + ++n; + ++i; + } + return n; +} + +template class QHashIterator { typedef typename QHash::const_iterator const_iterator; typedef const_iterator Item; QHash c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QHashIterator(const QHash &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QHashIterator &operator=(const QHash &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qhash.h",1036) : qt_noop()); return *n; } inline const Key &key() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qhash.h",1036) : qt_noop()); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; +template class QMutableHashIterator { typedef typename QHash::iterator iterator; typedef typename QHash::const_iterator const_iterator; typedef iterator Item; QHash *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableHashIterator(QHash &container) : c(&container) { c->setSharable(false); i = c->begin(); n = c->end(); } inline ~QMutableHashIterator() { c->setSharable(true); } inline QMutableHashIterator &operator=(QHash &container) { c->setSharable(true); c = &container; c->setSharable(false); i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qhash.h",1037) : qt_noop()); return *n; } inline const T &value() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qhash.h",1037) : qt_noop()); return *n; } inline const Key &key() const { ((!(item_exists())) ? qt_assert("item_exists()","/usr/include/qt4/QtCore/qhash.h",1037) : qt_noop()); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; + + + + +# 51 "/usr/include/qt4/QtCore/qvariant.h" 2 + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QBitArray; +class QDataStream; +class QDate; +class QDateTime; +class QEasingCurve; +class QLine; +class QLineF; +class QLocale; +class QMatrix; +class QTransform; +class QStringList; +class QTime; +class QPoint; +class QPointF; +class QSize; +class QSizeF; +class QRect; +class QRectF; + +class QRegExp; + +class QTextFormat; +class QTextLength; +class QUrl; +class QVariant; +class QVariantComparisonHelper; + +template +inline QVariant qVariantFromValue(const T &); + +template +inline T qvariant_cast(const QVariant &); + +class QVariant +{ + public: + enum Type { + Invalid = 0, + + Bool = 1, + Int = 2, + UInt = 3, + LongLong = 4, + ULongLong = 5, + Double = 6, + Char = 7, + Map = 8, + List = 9, + String = 10, + StringList = 11, + ByteArray = 12, + BitArray = 13, + Date = 14, + Time = 15, + DateTime = 16, + Url = 17, + Locale = 18, + Rect = 19, + RectF = 20, + Size = 21, + SizeF = 22, + Line = 23, + LineF = 24, + Point = 25, + PointF = 26, + RegExp = 27, + Hash = 28, + EasingCurve = 29, + LastCoreType = EasingCurve, + + + + + + Font = 64, + Pixmap = 65, + Brush = 66, + Color = 67, + Palette = 68, + Icon = 69, + Image = 70, + Polygon = 71, + Region = 72, + Bitmap = 73, + Cursor = 74, + SizePolicy = 75, + KeySequence = 76, + Pen = 77, + TextLength = 78, + TextFormat = 79, + Matrix = 80, + Transform = 81, + Matrix4x4 = 82, + Vector2D = 83, + Vector3D = 84, + Vector4D = 85, + Quaternion = 86, + LastGuiType = Quaternion, + + UserType = 127, + + + + + + LastType = 0xffffffff + }; + + inline QVariant(); + ~QVariant(); + QVariant(Type type); + QVariant(int typeOrUserType, const void *copy); + QVariant(int typeOrUserType, const void *copy, uint flags); + QVariant(const QVariant &other); + + + QVariant(QDataStream &s); + + + QVariant(int i); + QVariant(uint ui); + QVariant(qlonglong ll); + QVariant(qulonglong ull); + QVariant(bool b); + QVariant(double d); + QVariant(float f) { d.is_null = false; d.type = QMetaType::Float; d.data.f = f; } + + QVariant(const char *str); + + + QVariant(const QByteArray &bytearray); + QVariant(const QBitArray &bitarray); + QVariant(const QString &string); + QVariant(const QLatin1String &string); + QVariant(const QStringList &stringlist); + QVariant(const QChar &qchar); + QVariant(const QDate &date); + QVariant(const QTime &time); + QVariant(const QDateTime &datetime); + QVariant(const QList &list); + QVariant(const QMap &map); + QVariant(const QHash &hash); + + QVariant(const QSize &size); + QVariant(const QSizeF &size); + QVariant(const QPoint &pt); + QVariant(const QPointF &pt); + QVariant(const QLine &line); + QVariant(const QLineF &line); + QVariant(const QRect &rect); + QVariant(const QRectF &rect); + + QVariant(const QUrl &url); + QVariant(const QLocale &locale); + + QVariant(const QRegExp ®Exp); + + + QVariant(const QEasingCurve &easing); + + QVariant(Qt::GlobalColor color); + + QVariant& operator=(const QVariant &other); + + inline QVariant &operator=(QVariant &&other) + { qSwap(d, other.d); return *this; } + + + inline void swap(QVariant &other) { qSwap(d, other.d); } + + Type type() const; + int userType() const; + const char *typeName() const; + + bool canConvert(Type t) const; + bool convert(Type t); +# 243 "/usr/include/qt4/QtCore/qvariant.h" + inline bool isValid() const; + bool isNull() const; + + void clear(); + + void detach(); + inline bool isDetached() const; + + int toInt(bool *ok = 0) const; + uint toUInt(bool *ok = 0) const; + qlonglong toLongLong(bool *ok = 0) const; + qulonglong toULongLong(bool *ok = 0) const; + bool toBool() const; + double toDouble(bool *ok = 0) const; + float toFloat(bool *ok = 0) const; + qreal toReal(bool *ok = 0) const; + QByteArray toByteArray() const; + QBitArray toBitArray() const; + QString toString() const; + QStringList toStringList() const; + QChar toChar() const; + QDate toDate() const; + QTime toTime() const; + QDateTime toDateTime() const; + QList toList() const; + QMap toMap() const; + QHash toHash() const; + + + QPoint toPoint() const; + QPointF toPointF() const; + QRect toRect() const; + QSize toSize() const; + QSizeF toSizeF() const; + QLine toLine() const; + QLineF toLineF() const; + QRectF toRectF() const; + + QUrl toUrl() const; + QLocale toLocale() const; + + QRegExp toRegExp() const; + + + QEasingCurve toEasingCurve() const; +# 312 "/usr/include/qt4/QtCore/qvariant.h" + void load(QDataStream &ds); + void save(QDataStream &ds) const; + + static const char *typeToName(Type type); + static Type nameToType(const char *name); + + + + + + + + void *data(); + const void *constData() const; + inline const void *data() const { return constData(); } + + template + inline void setValue(const T &value); + + template + inline T value() const + { return qvariant_cast(*this); } + + template + static inline QVariant fromValue(const T &value) + { return qVariantFromValue(value); } + + template + bool canConvert() const + { return canConvert(Type(qMetaTypeId())); } + + public: + + struct PrivateShared + { + inline PrivateShared(void *v) : ptr(v), ref(1) { } + void *ptr; + QAtomicInt ref; + }; + struct Private + { + inline Private(): type(Invalid), is_shared(false), is_null(true) { data.ptr = 0; } + inline Private(const Private &other) + : data(other.data), type(other.type), + is_shared(other.is_shared), is_null(other.is_null) + {} + union Data + { + char c; + int i; + uint u; + bool b; + double d; + float f; + qreal real; + qlonglong ll; + qulonglong ull; + QObject *o; + void *ptr; + PrivateShared *shared; + } data; + uint type : 30; + uint is_shared : 1; + uint is_null : 1; + }; + public: + typedef void (*f_construct)(Private *, const void *); + typedef void (*f_clear)(Private *); + typedef bool (*f_null)(const Private *); + + typedef void (*f_load)(Private *, QDataStream &); + typedef void (*f_save)(const Private *, QDataStream &); + + typedef bool (*f_compare)(const Private *, const Private *); + typedef bool (*f_convert)(const QVariant::Private *d, Type t, void *, bool *); + typedef bool (*f_canConvert)(const QVariant::Private *d, Type t); + typedef void (*f_debugStream)(QDebug, const QVariant &); + struct Handler { + f_construct construct; + f_clear clear; + f_null isNull; + + f_load load; + f_save save; + + f_compare compare; + f_convert convert; + f_canConvert canConvert; + f_debugStream debugStream; + }; + + + inline bool operator==(const QVariant &v) const + { return cmp(v); } + inline bool operator!=(const QVariant &v) const + { return !cmp(v); } + +protected: + friend inline bool qvariant_cast_helper(const QVariant &, QVariant::Type, void *); + friend int qRegisterGuiVariant(); + friend int qUnregisterGuiVariant(); + friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); + + friend QDebug operator<<(QDebug, const QVariant &); + + Private d; + + static const Handler *handler; + + void create(int type, const void *copy); + + + + bool cmp(const QVariant &other) const; + +private: + + inline QVariant(void *) { ((!(false)) ? qt_assert("false","/usr/include/qt4/QtCore/qvariant.h",429) : qt_noop()); } + + + + + + + inline QVariant(bool, int) { ((!(false)) ? qt_assert("false","/usr/include/qt4/QtCore/qvariant.h",436) : qt_noop()); } + +public: + typedef Private DataPtr; + inline DataPtr &data_ptr() { return d; } +}; + +typedef QList QVariantList; +typedef QMap QVariantMap; +typedef QHash QVariantHash; + +inline bool qvariant_cast_helper(const QVariant &v, QVariant::Type tp, void *ptr) +{ return QVariant::handler->convert(&v.d, tp, ptr, 0); } + +template +inline QVariant qVariantFromValue(const T &t) +{ + return QVariant(qMetaTypeId(reinterpret_cast(0)), &t, QTypeInfo::isPointer); +} + +template <> +inline QVariant qVariantFromValue(const QVariant &t) { return t; } + +template +inline void qVariantSetValue(QVariant &v, const T &t) +{ + + const uint type = qMetaTypeId(reinterpret_cast(0)); + QVariant::Private &d = v.data_ptr(); + if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) { + d.type = type; + d.is_null = false; + T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); + if (QTypeInfo::isComplex) + old->~T(); + new (old) T(t); + } else { + v = QVariant(type, &t, QTypeInfo::isPointer); + } +} + +template <> +inline void qVariantSetValue(QVariant &v, const QVariant &t) +{ + v = t; +} + + +inline QVariant::QVariant() {} +inline bool QVariant::isValid() const { return d.type != Invalid; } +# 526 "/usr/include/qt4/QtCore/qvariant.h" +template +inline void QVariant::setValue(const T &avalue) +{ qVariantSetValue(*this, avalue); } + + + QDataStream& operator>> (QDataStream& s, QVariant& p); + QDataStream& operator<< (QDataStream& s, const QVariant& p); + QDataStream& operator>> (QDataStream& s, QVariant::Type& p); + QDataStream& operator<< (QDataStream& s, const QVariant::Type p); + + +inline bool QVariant::isDetached() const +{ return !d.is_shared || d.data.shared->ref == 1; } +# 549 "/usr/include/qt4/QtCore/qvariant.h" +class QVariantComparisonHelper +{ +public: + inline QVariantComparisonHelper(const QVariant &var) + : v(&var) {} +private: + friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); + const QVariant *v; +}; + +inline bool operator==(const QVariant &v1, const QVariantComparisonHelper &v2) +{ + return v1.cmp(*v2.v); +} + +inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) +{ + return !operator==(v1, v2); +} + + + +template inline T qvariant_cast(const QVariant &v) +{ + const int vid = qMetaTypeId(static_cast(0)); + if (vid == v.userType()) + return *reinterpret_cast(v.constData()); + if (vid < int(QMetaType::User)) { + T t; + if (qvariant_cast_helper(v, QVariant::Type(vid), &t)) + return t; + } + return T(); +} + +template<> inline QVariant qvariant_cast(const QVariant &v) +{ + if (v.userType() == QMetaType::QVariant) + return *reinterpret_cast(v.constData()); + return v; +} + + +template +inline T qVariantValue(const QVariant &variant) +{ return qvariant_cast(variant); } + +template +inline bool qVariantCanConvert(const QVariant &variant) +{ return variant.template canConvert(); } + + + +template <> inline bool qIsDetached(QVariant &t) { return t.isDetached(); } template <> inline void qSwap(QVariant &value1, QVariant &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QVariant>(::QVariant &value1, ::QVariant &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QVariant)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QVariant"; } }; + + + QDebug operator<<(QDebug, const QVariant &); + QDebug operator<<(QDebug, const QVariant::Type); + + + + + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVariantList }; static inline int qt_metatype_id() { return QMetaType::QVariantList; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVariantMap }; static inline int qt_metatype_id() { return QMetaType::QVariantMap; } }; + template<> struct QMetaTypeId2 { enum { Defined = 1, MetaType = QMetaType::QVariantHash }; static inline int qt_metatype_id() { return QMetaType::QVariantHash; } }; + + +# 46 "/usr/include/qt4/QtCore/qlocale.h" 2 + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QDataStream; +class QDate; +class QDateTime; +class QTime; +class QVariant; +class QTextStream; +class QTextStreamPrivate; + +class QLocale; + + +class QSystemLocale +{ +public: + QSystemLocale(); + virtual ~QSystemLocale(); + + struct CurrencyToStringArgument + { + CurrencyToStringArgument() { } + CurrencyToStringArgument(const QVariant &v, const QString &s) + : value(v), symbol(s) { } + QVariant value; + QString symbol; + }; + + enum QueryType { + LanguageId, + CountryId, + DecimalPoint, + GroupSeparator, + ZeroDigit, + NegativeSign, + DateFormatLong, + DateFormatShort, + TimeFormatLong, + TimeFormatShort, + DayNameLong, + DayNameShort, + MonthNameLong, + MonthNameShort, + DateToStringLong, + DateToStringShort, + TimeToStringLong, + TimeToStringShort, + DateTimeFormatLong, + DateTimeFormatShort, + DateTimeToStringLong, + DateTimeToStringShort, + MeasurementSystem, + PositiveSign, + AMText, + PMText, + FirstDayOfWeek, + Weekdays, + CurrencySymbol, + CurrencyToString, + UILanguages, + StringToStandardQuotation, + StringToAlternateQuotation, + ScriptId, + ListToSeparatedString, + LocaleChanged, + NativeLanguageName, + NativeCountryName, + StandaloneMonthNameLong, + StandaloneMonthNameShort + }; + virtual QVariant query(QueryType type, QVariant in) const; + virtual QLocale fallbackLocale() const; + +private: + QSystemLocale(bool); + friend QSystemLocale *QSystemLocale_globalSystemLocale(); +}; + + +struct QLocalePrivate; +class QLocale +{ + public: static const QMetaObject staticMetaObject; private: + + + friend class QString; + friend class QByteArray; + friend class QIntValidator; + friend class QDoubleValidatorPrivate; + friend class QTextStream; + friend class QTextStreamPrivate; + +public: + + + enum Language { + AnyLanguage = 0, + C = 1, + Abkhazian = 2, + Afan = 3, + Afar = 4, + Afrikaans = 5, + Albanian = 6, + Amharic = 7, + Arabic = 8, + Armenian = 9, + Assamese = 10, + Aymara = 11, + Azerbaijani = 12, + Bashkir = 13, + Basque = 14, + Bengali = 15, + Bhutani = 16, + Bihari = 17, + Bislama = 18, + Breton = 19, + Bulgarian = 20, + Burmese = 21, + Byelorussian = 22, + Cambodian = 23, + Catalan = 24, + Chinese = 25, + Corsican = 26, + Croatian = 27, + Czech = 28, + Danish = 29, + Dutch = 30, + English = 31, + Esperanto = 32, + Estonian = 33, + Faroese = 34, + FijiLanguage = 35, + Finnish = 36, + French = 37, + Frisian = 38, + Gaelic = 39, + Galician = 40, + Georgian = 41, + German = 42, + Greek = 43, + Greenlandic = 44, + Guarani = 45, + Gujarati = 46, + Hausa = 47, + Hebrew = 48, + Hindi = 49, + Hungarian = 50, + Icelandic = 51, + Indonesian = 52, + Interlingua = 53, + Interlingue = 54, + Inuktitut = 55, + Inupiak = 56, + Irish = 57, + Italian = 58, + Japanese = 59, + Javanese = 60, + Kannada = 61, + Kashmiri = 62, + Kazakh = 63, + Kinyarwanda = 64, + Kirghiz = 65, + Korean = 66, + Kurdish = 67, + Rundi = 68, + Laothian = 69, + Latin = 70, + Latvian = 71, + Lingala = 72, + Lithuanian = 73, + Macedonian = 74, + Malagasy = 75, + Malay = 76, + Malayalam = 77, + Maltese = 78, + Maori = 79, + Marathi = 80, + Moldavian = 81, + Mongolian = 82, + NauruLanguage = 83, + Nepali = 84, + Norwegian = 85, + Occitan = 86, + Oriya = 87, + Pashto = 88, + Persian = 89, + Polish = 90, + Portuguese = 91, + Punjabi = 92, + Quechua = 93, + RhaetoRomance = 94, + Romanian = 95, + Russian = 96, + Samoan = 97, + Sangho = 98, + Sanskrit = 99, + Serbian = 100, + SerboCroatian = 101, + Sesotho = 102, + Setswana = 103, + Shona = 104, + Sindhi = 105, + Singhalese = 106, + Siswati = 107, + Slovak = 108, + Slovenian = 109, + Somali = 110, + Spanish = 111, + Sundanese = 112, + Swahili = 113, + Swedish = 114, + Tagalog = 115, + Tajik = 116, + Tamil = 117, + Tatar = 118, + Telugu = 119, + Thai = 120, + Tibetan = 121, + Tigrinya = 122, + TongaLanguage = 123, + Tsonga = 124, + Turkish = 125, + Turkmen = 126, + Twi = 127, + Uigur = 128, + Ukrainian = 129, + Urdu = 130, + Uzbek = 131, + Vietnamese = 132, + Volapuk = 133, + Welsh = 134, + Wolof = 135, + Xhosa = 136, + Yiddish = 137, + Yoruba = 138, + Zhuang = 139, + Zulu = 140, + Nynorsk = 141, + Bosnian = 142, + Divehi = 143, + Manx = 144, + Cornish = 145, + Akan = 146, + Konkani = 147, + Ga = 148, + Igbo = 149, + Kamba = 150, + Syriac = 151, + Blin = 152, + Geez = 153, + Koro = 154, + Sidamo = 155, + Atsam = 156, + Tigre = 157, + Jju = 158, + Friulian = 159, + Venda = 160, + Ewe = 161, + Walamo = 162, + Hawaiian = 163, + Tyap = 164, + Chewa = 165, + Filipino = 166, + SwissGerman = 167, + SichuanYi = 168, + Kpelle = 169, + LowGerman = 170, + SouthNdebele = 171, + NorthernSotho = 172, + NorthernSami = 173, + Taroko = 174, + Gusii = 175, + Taita = 176, + Fulah = 177, + Kikuyu = 178, + Samburu = 179, + Sena = 180, + NorthNdebele = 181, + Rombo = 182, + Tachelhit = 183, + Kabyle = 184, + Nyankole = 185, + Bena = 186, + Vunjo = 187, + Bambara = 188, + Embu = 189, + Cherokee = 190, + Morisyen = 191, + Makonde = 192, + Langi = 193, + Ganda = 194, + Bemba = 195, + Kabuverdianu = 196, + Meru = 197, + Kalenjin = 198, + Nama = 199, + Machame = 200, + Colognian = 201, + Masai = 202, + Soga = 203, + Luyia = 204, + Asu = 205, + Teso = 206, + Saho = 207, + KoyraChiini = 208, + Rwa = 209, + Luo = 210, + Chiga = 211, + CentralMoroccoTamazight = 212, + KoyraboroSenni = 213, + Shambala = 214, + Bodo = 215, + Aghem = 216, + Basaa = 217, + Zarma = 218, + Duala = 219, + JolaFonyi = 220, + Ewondo = 221, + Bafia = 222, + LubaKatanga = 223, + MakhuwaMeetto = 224, + Mundang = 225, + Kwasio = 226, + Nuer = 227, + Sakha = 228, + Sangu = 229, + CongoSwahili = 230, + Tasawaq = 231, + Vai = 232, + Walser = 233, + Yangben = 234, + NorwegianBokmal = Norwegian, + NorwegianNynorsk = Nynorsk, + Kurundi = Rundi, + LastLanguage = Yangben + }; + + enum Script { + AnyScript = 0, + ArabicScript = 1, + CyrillicScript = 2, + DeseretScript = 3, + GurmukhiScript = 4, + SimplifiedHanScript = 5, + TraditionalHanScript = 6, + LatinScript = 7, + MongolianScript = 8, + TifinaghScript = 9, + SimplifiedChineseScript = SimplifiedHanScript, + TraditionalChineseScript = TraditionalHanScript, + LastScript = TifinaghScript + }; + enum Country { + AnyCountry = 0, + Afghanistan = 1, + Albania = 2, + Algeria = 3, + AmericanSamoa = 4, + Andorra = 5, + Angola = 6, + Anguilla = 7, + Antarctica = 8, + AntiguaAndBarbuda = 9, + Argentina = 10, + Armenia = 11, + Aruba = 12, + Australia = 13, + Austria = 14, + Azerbaijan = 15, + Bahamas = 16, + Bahrain = 17, + Bangladesh = 18, + Barbados = 19, + Belarus = 20, + Belgium = 21, + Belize = 22, + Benin = 23, + Bermuda = 24, + Bhutan = 25, + Bolivia = 26, + BosniaAndHerzegowina = 27, + Botswana = 28, + BouvetIsland = 29, + Brazil = 30, + BritishIndianOceanTerritory = 31, + BruneiDarussalam = 32, + Bulgaria = 33, + BurkinaFaso = 34, + Burundi = 35, + Cambodia = 36, + Cameroon = 37, + Canada = 38, + CapeVerde = 39, + CaymanIslands = 40, + CentralAfricanRepublic = 41, + Chad = 42, + Chile = 43, + China = 44, + ChristmasIsland = 45, + CocosIslands = 46, + Colombia = 47, + Comoros = 48, + DemocraticRepublicOfCongo = 49, + PeoplesRepublicOfCongo = 50, + CookIslands = 51, + CostaRica = 52, + IvoryCoast = 53, + Croatia = 54, + Cuba = 55, + Cyprus = 56, + CzechRepublic = 57, + Denmark = 58, + Djibouti = 59, + Dominica = 60, + DominicanRepublic = 61, + EastTimor = 62, + Ecuador = 63, + Egypt = 64, + ElSalvador = 65, + EquatorialGuinea = 66, + Eritrea = 67, + Estonia = 68, + Ethiopia = 69, + FalklandIslands = 70, + FaroeIslands = 71, + FijiCountry = 72, + Finland = 73, + France = 74, + MetropolitanFrance = 75, + FrenchGuiana = 76, + FrenchPolynesia = 77, + FrenchSouthernTerritories = 78, + Gabon = 79, + Gambia = 80, + Georgia = 81, + Germany = 82, + Ghana = 83, + Gibraltar = 84, + Greece = 85, + Greenland = 86, + Grenada = 87, + Guadeloupe = 88, + Guam = 89, + Guatemala = 90, + Guinea = 91, + GuineaBissau = 92, + Guyana = 93, + Haiti = 94, + HeardAndMcDonaldIslands = 95, + Honduras = 96, + HongKong = 97, + Hungary = 98, + Iceland = 99, + India = 100, + Indonesia = 101, + Iran = 102, + Iraq = 103, + Ireland = 104, + Israel = 105, + Italy = 106, + Jamaica = 107, + Japan = 108, + Jordan = 109, + Kazakhstan = 110, + Kenya = 111, + Kiribati = 112, + DemocraticRepublicOfKorea = 113, + RepublicOfKorea = 114, + Kuwait = 115, + Kyrgyzstan = 116, + Lao = 117, + Latvia = 118, + Lebanon = 119, + Lesotho = 120, + Liberia = 121, + LibyanArabJamahiriya = 122, + Liechtenstein = 123, + Lithuania = 124, + Luxembourg = 125, + Macau = 126, + Macedonia = 127, + Madagascar = 128, + Malawi = 129, + Malaysia = 130, + Maldives = 131, + Mali = 132, + Malta = 133, + MarshallIslands = 134, + Martinique = 135, + Mauritania = 136, + Mauritius = 137, + Mayotte = 138, + Mexico = 139, + Micronesia = 140, + Moldova = 141, + Monaco = 142, + Mongolia = 143, + Montserrat = 144, + Morocco = 145, + Mozambique = 146, + Myanmar = 147, + Namibia = 148, + NauruCountry = 149, + Nepal = 150, + Netherlands = 151, + NetherlandsAntilles = 152, + NewCaledonia = 153, + NewZealand = 154, + Nicaragua = 155, + Niger = 156, + Nigeria = 157, + Niue = 158, + NorfolkIsland = 159, + NorthernMarianaIslands = 160, + Norway = 161, + Oman = 162, + Pakistan = 163, + Palau = 164, + PalestinianTerritory = 165, + Panama = 166, + PapuaNewGuinea = 167, + Paraguay = 168, + Peru = 169, + Philippines = 170, + Pitcairn = 171, + Poland = 172, + Portugal = 173, + PuertoRico = 174, + Qatar = 175, + Reunion = 176, + Romania = 177, + RussianFederation = 178, + Rwanda = 179, + SaintKittsAndNevis = 180, + StLucia = 181, + StVincentAndTheGrenadines = 182, + Samoa = 183, + SanMarino = 184, + SaoTomeAndPrincipe = 185, + SaudiArabia = 186, + Senegal = 187, + Seychelles = 188, + SierraLeone = 189, + Singapore = 190, + Slovakia = 191, + Slovenia = 192, + SolomonIslands = 193, + Somalia = 194, + SouthAfrica = 195, + SouthGeorgiaAndTheSouthSandwichIslands = 196, + Spain = 197, + SriLanka = 198, + StHelena = 199, + StPierreAndMiquelon = 200, + Sudan = 201, + Suriname = 202, + SvalbardAndJanMayenIslands = 203, + Swaziland = 204, + Sweden = 205, + Switzerland = 206, + SyrianArabRepublic = 207, + Taiwan = 208, + Tajikistan = 209, + Tanzania = 210, + Thailand = 211, + Togo = 212, + Tokelau = 213, + TongaCountry = 214, + TrinidadAndTobago = 215, + Tunisia = 216, + Turkey = 217, + Turkmenistan = 218, + TurksAndCaicosIslands = 219, + Tuvalu = 220, + Uganda = 221, + Ukraine = 222, + UnitedArabEmirates = 223, + UnitedKingdom = 224, + UnitedStates = 225, + UnitedStatesMinorOutlyingIslands = 226, + Uruguay = 227, + Uzbekistan = 228, + Vanuatu = 229, + VaticanCityState = 230, + Venezuela = 231, + VietNam = 232, + BritishVirginIslands = 233, + USVirginIslands = 234, + WallisAndFutunaIslands = 235, + WesternSahara = 236, + Yemen = 237, + Yugoslavia = 238, + Zambia = 239, + Zimbabwe = 240, + SerbiaAndMontenegro = 241, + Montenegro = 242, + Serbia = 243, + SaintBarthelemy = 244, + SaintMartin = 245, + LatinAmericaAndTheCaribbean = 246, + LastCountry = LatinAmericaAndTheCaribbean + }; + + + enum MeasurementSystem { MetricSystem, ImperialSystem }; + + enum FormatType { LongFormat, ShortFormat, NarrowFormat }; + enum NumberOption { + OmitGroupSeparator = 0x01, + RejectGroupSeparator = 0x02 + }; + typedef QFlags NumberOptions; + + enum CurrencySymbolFormat { + CurrencyIsoCode, + CurrencySymbol, + CurrencyDisplayName + }; + + QLocale(); + QLocale(const QString &name); + QLocale(Language language, Country country = AnyCountry); + QLocale(Language language, Script script, Country country); + QLocale(const QLocale &other); + + QLocale &operator=(const QLocale &other); + + Language language() const; + Script script() const; + Country country() const; + QString name() const; + + QString bcp47Name() const; + QString nativeLanguageName() const; + QString nativeCountryName() const; + + short toShort(const QString &s, bool *ok = 0, int base = 0) const; + ushort toUShort(const QString &s, bool *ok = 0, int base = 0) const; + int toInt(const QString &s, bool *ok = 0, int base = 0) const; + uint toUInt(const QString &s, bool *ok = 0, int base = 0) const; + qlonglong toLongLong(const QString &s, bool *ok = 0, int base = 0) const; + qlonglong toULongLong(const QString &s, bool *ok = 0, int base = 0) const; + float toFloat(const QString &s, bool *ok = 0) const; + double toDouble(const QString &s, bool *ok = 0) const; + + QString toString(qlonglong i) const; + QString toString(qulonglong i) const; + inline QString toString(short i) const; + inline QString toString(ushort i) const; + inline QString toString(int i) const; + inline QString toString(uint i) const; + QString toString(double i, char f = 'g', int prec = 6) const; + inline QString toString(float i, char f = 'g', int prec = 6) const; + QString toString(const QDate &date, const QString &formatStr) const; + QString toString(const QDate &date, FormatType format = LongFormat) const; + QString toString(const QTime &time, const QString &formatStr) const; + QString toString(const QTime &time, FormatType format = LongFormat) const; + QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; + QString toString(const QDateTime &dateTime, const QString &format) const; + + QString dateFormat(FormatType format = LongFormat) const; + QString timeFormat(FormatType format = LongFormat) const; + QString dateTimeFormat(FormatType format = LongFormat) const; + + QDate toDate(const QString &string, FormatType = LongFormat) const; + QTime toTime(const QString &string, FormatType = LongFormat) const; + QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; + QDate toDate(const QString &string, const QString &format) const; + QTime toTime(const QString &string, const QString &format) const; + QDateTime toDateTime(const QString &string, const QString &format) const; + + + + + QChar decimalPoint() const; + QChar groupSeparator() const; + QChar percent() const; + QChar zeroDigit() const; + QChar negativeSign() const; + QChar positiveSign() const; + QChar exponential() const; + + QString monthName(int, FormatType format = LongFormat) const; + QString standaloneMonthName(int, FormatType format = LongFormat) const; + QString dayName(int, FormatType format = LongFormat) const; + QString standaloneDayName(int, FormatType format = LongFormat) const; + + Qt::DayOfWeek firstDayOfWeek() const; + QList weekdays() const; + + QString amText() const; + QString pmText() const; + + MeasurementSystem measurementSystem() const; + + Qt::LayoutDirection textDirection() const; + + QString toUpper(const QString &str) const; + QString toLower(const QString &str) const; + + QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; + QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; + QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; + inline QString toCurrencyString(short, const QString &symbol = QString()) const; + inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; + inline QString toCurrencyString(int, const QString &symbol = QString()) const; + inline QString toCurrencyString(uint, const QString &symbol = QString()) const; + QString toCurrencyString(double, const QString &symbol = QString()) const; + inline QString toCurrencyString(float, const QString &symbol = QString()) const; + + QStringList uiLanguages() const; + + inline bool operator==(const QLocale &other) const; + inline bool operator!=(const QLocale &other) const; + + static QString languageToString(Language language); + static QString countryToString(Country country); + static QString scriptToString(Script script); + static void setDefault(const QLocale &locale); + + static QLocale c() { return QLocale(C); } + static QLocale system(); + + static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); + static QList countriesForLanguage(Language lang); + + void setNumberOptions(NumberOptions options); + NumberOptions numberOptions() const; + + enum QuotationStyle { StandardQuotation, AlternateQuotation }; + QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; + QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; + + QString createSeparatedList(const QStringList &strl) const; + + struct Data { + quint16 index; + quint16 numberOptions; + } + + __attribute__ ((__packed__)) + + ; + +private: + friend struct QLocalePrivate; + + + union { + void *v; + Data p; + }; + const QLocalePrivate *d() const; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QLocale)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QLocale"; } }; +constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QLocale::NumberOptions::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QLocale::NumberOptions::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +inline QString QLocale::toString(short i) const + { return toString(qlonglong(i)); } +inline QString QLocale::toString(ushort i) const + { return toString(qulonglong(i)); } +inline QString QLocale::toString(int i) const + { return toString(qlonglong(i)); } +inline QString QLocale::toString(uint i) const + { return toString(qulonglong(i)); } +inline QString QLocale::toString(float i, char f, int prec) const + { return toString(double(i), f, prec); } +inline bool QLocale::operator==(const QLocale &other) const + { return d() == other.d() && numberOptions() == other.numberOptions(); } +inline bool QLocale::operator!=(const QLocale &other) const + { return d() != other.d() || numberOptions() != other.numberOptions(); } + +inline QString QLocale::toCurrencyString(short i, const QString &symbol) const + { return toCurrencyString(qlonglong(i), symbol); } +inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const + { return toCurrencyString(qulonglong(i), symbol); } +inline QString QLocale::toCurrencyString(int i, const QString &symbol) const +{ return toCurrencyString(qlonglong(i), symbol); } +inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const +{ return toCurrencyString(qulonglong(i), symbol); } +inline QString QLocale::toCurrencyString(float i, const QString &symbol) const +{ return toCurrencyString(double(i), symbol); } + + + QDataStream &operator<<(QDataStream &, const QLocale &); + QDataStream &operator>>(QDataStream &, QLocale &); + + + + + + template <> struct QMetaTypeId< QSystemLocale::CurrencyToStringArgument > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { (0) }; if (!metatype_id) metatype_id = qRegisterMetaType< QSystemLocale::CurrencyToStringArgument >("QSystemLocale::CurrencyToStringArgument", reinterpret_cast< QSystemLocale::CurrencyToStringArgument *>(quintptr(-1))); return metatype_id; } }; + + + +# 49 "/usr/include/qt4/QtGui/qvalidator.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QValidatorPrivate; + +class QValidator : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); +public: + explicit QValidator(QObject * parent = 0); + ~QValidator(); + + enum State { + Invalid, + Intermediate, + Acceptable + + + + + }; + + void setLocale(const QLocale &locale); + QLocale locale() const; + + virtual State validate(QString &, int &) const = 0; + virtual void fixup(QString &) const; + + + + + +protected: + QValidator(QObjectPrivate &d, QObject *parent); + QValidator(QValidatorPrivate &d, QObject *parent); + +private: + QValidator(const QValidator &); QValidator &operator=(const QValidator &); + inline QValidatorPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QValidatorPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QValidatorPrivate; +}; + +class QIntValidator : public QValidator +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + explicit QIntValidator(QObject * parent = 0); + QIntValidator(int bottom, int top, QObject *parent = 0); + ~QIntValidator(); + + QValidator::State validate(QString &, int &) const; + void fixup(QString &input) const; + + void setBottom(int); + void setTop(int); + virtual void setRange(int bottom, int top); + + int bottom() const { return b; } + int top() const { return t; } + + + + + + + +private: + QIntValidator(const QIntValidator &); QIntValidator &operator=(const QIntValidator &); + + int b; + int t; +}; + + + +class QDoubleValidatorPrivate; + +class QDoubleValidator : public QValidator +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + +public: + explicit QDoubleValidator(QObject * parent = 0); + QDoubleValidator(double bottom, double top, int decimals, QObject *parent = 0); + ~QDoubleValidator(); + + enum Notation { + StandardNotation, + ScientificNotation + }; + + QValidator::State validate(QString &, int &) const; + + virtual void setRange(double bottom, double top, int decimals = 0); + void setBottom(double); + void setTop(double); + void setDecimals(int); + void setNotation(Notation); + + double bottom() const { return b; } + double top() const { return t; } + int decimals() const { return dec; } + Notation notation() const; + + + + + + + +private: + inline QDoubleValidatorPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QDoubleValidatorPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QDoubleValidatorPrivate; + QDoubleValidator(const QDoubleValidator &); QDoubleValidator &operator=(const QDoubleValidator &); + + double b; + double t; + int dec; +}; + + +class QRegExpValidator : public QValidator +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + +public: + explicit QRegExpValidator(QObject *parent = 0); + QRegExpValidator(const QRegExp& rx, QObject *parent = 0); + ~QRegExpValidator(); + + virtual QValidator::State validate(QString& input, int& pos) const; + + void setRegExp(const QRegExp& rx); + const QRegExp& regExp() const { return r; } + + + + + + + +private: + QRegExpValidator(const QRegExpValidator &); QRegExpValidator &operator=(const QRegExpValidator &); + + QRegExp r; +}; + + + + + + + + +# 47 "/usr/include/qt4/QtGui/qabstractspinbox.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QLineEdit; + +class QAbstractSpinBoxPrivate; +class QStyleOptionSpinBox; + +class QAbstractSpinBox : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + +public: + explicit QAbstractSpinBox(QWidget *parent = 0); + ~QAbstractSpinBox(); + + enum StepEnabledFlag { StepNone = 0x00, StepUpEnabled = 0x01, + StepDownEnabled = 0x02 }; + typedef QFlags StepEnabled; + + enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }; + + ButtonSymbols buttonSymbols() const; + void setButtonSymbols(ButtonSymbols bs); + + enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }; + + void setCorrectionMode(CorrectionMode cm); + CorrectionMode correctionMode() const; + + bool hasAcceptableInput() const; + QString text() const; + + QString specialValueText() const; + void setSpecialValueText(const QString &txt); + + bool wrapping() const; + void setWrapping(bool w); + + void setReadOnly(bool r); + bool isReadOnly() const; + + void setKeyboardTracking(bool kt); + bool keyboardTracking() const; + + void setAlignment(Qt::Alignment flag); + Qt::Alignment alignment() const; + + void setFrame(bool); + bool hasFrame() const; + + void setAccelerated(bool on); + bool isAccelerated() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + void interpretText(); + bool event(QEvent *event); + + QVariant inputMethodQuery(Qt::InputMethodQuery) const; + + virtual QValidator::State validate(QString &input, int &pos) const; + virtual void fixup(QString &input) const; + + virtual void stepBy(int steps); +public : + void stepUp(); + void stepDown(); + void selectAll(); + virtual void clear(); +protected: + void resizeEvent(QResizeEvent *event); + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + + void wheelEvent(QWheelEvent *event); + + void focusInEvent(QFocusEvent *event); + void focusOutEvent(QFocusEvent *event); + void contextMenuEvent(QContextMenuEvent *event); + void changeEvent(QEvent *event); + void closeEvent(QCloseEvent *event); + void hideEvent(QHideEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void timerEvent(QTimerEvent *event); + void paintEvent(QPaintEvent *event); + void showEvent(QShowEvent *event); + void initStyleOption(QStyleOptionSpinBox *option) const; + + QLineEdit *lineEdit() const; + void setLineEdit(QLineEdit *edit); + + virtual StepEnabled stepEnabled() const; +protected: + void editingFinished(); +protected: + QAbstractSpinBox(QAbstractSpinBoxPrivate &dd, QWidget *parent = 0); + +private: + + + + inline QAbstractSpinBoxPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractSpinBoxPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractSpinBoxPrivate; + QAbstractSpinBox(const QAbstractSpinBox &); QAbstractSpinBox &operator=(const QAbstractSpinBox &); +}; +constexpr inline QFlags operator|(QAbstractSpinBox::StepEnabled::enum_type f1, QAbstractSpinBox::StepEnabled::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QAbstractSpinBox::StepEnabled::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QAbstractSpinBox::StepEnabled::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + + + +# 46 "/usr/include/qt4/QtGui/qspinbox.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QSpinBoxPrivate; +class QSpinBox : public QAbstractSpinBox +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + +public: + explicit QSpinBox(QWidget *parent = 0); + + + + + + + int value() const; + + QString prefix() const; + void setPrefix(const QString &prefix); + + QString suffix() const; + void setSuffix(const QString &suffix); + + QString cleanText() const; + + int singleStep() const; + void setSingleStep(int val); + + int minimum() const; + void setMinimum(int min); + + int maximum() const; + void setMaximum(int max); + + void setRange(int min, int max); +# 105 "/usr/include/qt4/QtGui/qspinbox.h" +protected: + bool event(QEvent *event); + virtual QValidator::State validate(QString &input, int &pos) const; + virtual int valueFromText(const QString &text) const; + virtual QString textFromValue(int val) const; + virtual void fixup(QString &str) const; + + +public : + void setValue(int val); + +protected: + void valueChanged(int); + void valueChanged(const QString &); + +private: + QSpinBox(const QSpinBox &); QSpinBox &operator=(const QSpinBox &); + inline QSpinBoxPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QSpinBoxPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QSpinBoxPrivate; +}; + +class QDoubleSpinBoxPrivate; +class QDoubleSpinBox : public QAbstractSpinBox +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + +public: + explicit QDoubleSpinBox(QWidget *parent = 0); + + double value() const; + + QString prefix() const; + void setPrefix(const QString &prefix); + + QString suffix() const; + void setSuffix(const QString &suffix); + + QString cleanText() const; + + double singleStep() const; + void setSingleStep(double val); + + double minimum() const; + void setMinimum(double min); + + double maximum() const; + void setMaximum(double max); + + void setRange(double min, double max); + + int decimals() const; + void setDecimals(int prec); + + virtual QValidator::State validate(QString &input, int &pos) const; + virtual double valueFromText(const QString &text) const; + virtual QString textFromValue(double val) const; + virtual void fixup(QString &str) const; + +public : + void setValue(double val); + +protected: + void valueChanged(double); + void valueChanged(const QString &); + +private: + QDoubleSpinBox(const QDoubleSpinBox &); QDoubleSpinBox &operator=(const QDoubleSpinBox &); + inline QDoubleSpinBoxPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QDoubleSpinBoxPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QDoubleSpinBoxPrivate; +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QSpinBox" 2 +# 35 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QSlider" 1 +# 1 "/usr/include/qt4/QtGui/qslider.h" 1 +# 45 "/usr/include/qt4/QtGui/qslider.h" +# 1 "/usr/include/qt4/QtGui/qabstractslider.h" 1 +# 47 "/usr/include/qt4/QtGui/qabstractslider.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QAbstractSliderPrivate; + +class QAbstractSlider : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + +public: + explicit QAbstractSlider(QWidget *parent=0); + ~QAbstractSlider(); + + Qt::Orientation orientation() const; + + void setMinimum(int); + int minimum() const; + + void setMaximum(int); + int maximum() const; + + void setRange(int min, int max); + + void setSingleStep(int); + int singleStep() const; + + void setPageStep(int); + int pageStep() const; + + void setTracking(bool enable); + bool hasTracking() const; + + void setSliderDown(bool); + bool isSliderDown() const; + + void setSliderPosition(int); + int sliderPosition() const; + + void setInvertedAppearance(bool); + bool invertedAppearance() const; + + void setInvertedControls(bool); + bool invertedControls() const; + + enum SliderAction { + SliderNoAction, + SliderSingleStepAdd, + SliderSingleStepSub, + SliderPageStepAdd, + SliderPageStepSub, + SliderToMinimum, + SliderToMaximum, + SliderMove + }; + + int value() const; + + void triggerAction(SliderAction action); + +public : + void setValue(int); + void setOrientation(Qt::Orientation); + +protected: + void valueChanged(int value); + + void sliderPressed(); + void sliderMoved(int position); + void sliderReleased(); + + void rangeChanged(int min, int max); + + void actionTriggered(int action); + +protected: + bool event(QEvent *e); + + void setRepeatAction(SliderAction action, int thresholdTime = 500, int repeatTime = 50); + SliderAction repeatAction() const; + + enum SliderChange { + SliderRangeChange, + SliderOrientationChange, + SliderStepsChange, + SliderValueChange + }; + virtual void sliderChange(SliderChange change); + + void keyPressEvent(QKeyEvent *ev); + void timerEvent(QTimerEvent *); + + void wheelEvent(QWheelEvent *e); + + void changeEvent(QEvent *e); +# 172 "/usr/include/qt4/QtGui/qabstractslider.h" +protected: + QAbstractSlider(QAbstractSliderPrivate &dd, QWidget *parent=0); + +private: + QAbstractSlider(const QAbstractSlider &); QAbstractSlider &operator=(const QAbstractSlider &); + inline QAbstractSliderPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractSliderPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractSliderPrivate; +}; + + + + +# 46 "/usr/include/qt4/QtGui/qslider.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QSliderPrivate; +class QStyleOptionSlider; +class QSlider : public QAbstractSlider +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + +public: + enum TickPosition { + NoTicks = 0, + TicksAbove = 1, + TicksLeft = TicksAbove, + TicksBelow = 2, + TicksRight = TicksBelow, + TicksBothSides = 3 +# 82 "/usr/include/qt4/QtGui/qslider.h" + }; + + explicit QSlider(QWidget *parent = 0); + explicit QSlider(Qt::Orientation orientation, QWidget *parent = 0); + + ~QSlider(); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + void setTickPosition(TickPosition position); + TickPosition tickPosition() const; + + void setTickInterval(int ti); + int tickInterval() const; + + bool event(QEvent *event); + +protected: + void paintEvent(QPaintEvent *ev); + void mousePressEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *ev); + void mouseMoveEvent(QMouseEvent *ev); + void initStyleOption(QStyleOptionSlider *option) const; +# 121 "/usr/include/qt4/QtGui/qslider.h" +private: + friend QStyleOptionSlider qt_qsliderStyleOption(QSlider *slider); + + QSlider(const QSlider &); QSlider &operator=(const QSlider &); + inline QSliderPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QSliderPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QSliderPrivate; +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QSlider" 2 +# 36 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QLCDNumber" 1 +# 1 "/usr/include/qt4/QtGui/qlcdnumber.h" 1 +# 45 "/usr/include/qt4/QtGui/qlcdnumber.h" +# 1 "/usr/include/qt4/QtGui/qframe.h" 1 +# 47 "/usr/include/qt4/QtGui/qframe.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QFramePrivate; + +class QFrame : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + +public: + explicit QFrame(QWidget* parent = 0, Qt::WindowFlags f = 0); + ~QFrame(); + + int frameStyle() const; + void setFrameStyle(int); + + int frameWidth() const; + + QSize sizeHint() const; + + enum Shape { + NoFrame = 0, + Box = 0x0001, + Panel = 0x0002, + WinPanel = 0x0003, + HLine = 0x0004, + VLine = 0x0005, + StyledPanel = 0x0006 +# 95 "/usr/include/qt4/QtGui/qframe.h" + }; + enum Shadow { + Plain = 0x0010, + Raised = 0x0020, + Sunken = 0x0030 + }; + + enum StyleMask { + Shadow_Mask = 0x00f0, + Shape_Mask = 0x000f + + + + + }; + + Shape frameShape() const; + void setFrameShape(Shape); + Shadow frameShadow() const; + void setFrameShadow(Shadow); + + int lineWidth() const; + void setLineWidth(int); + + int midLineWidth() const; + void setMidLineWidth(int); + + QRect frameRect() const; + void setFrameRect(const QRect &); + +protected: + bool event(QEvent *e); + void paintEvent(QPaintEvent *); + void changeEvent(QEvent *); + void drawFrame(QPainter *); + + + + + + +protected: + QFrame(QFramePrivate &dd, QWidget* parent = 0, Qt::WindowFlags f = 0); + +private: + QFrame(const QFrame &); QFrame &operator=(const QFrame &); + inline QFramePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFramePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFramePrivate; +}; + + + + +# 46 "/usr/include/qt4/QtGui/qlcdnumber.h" 2 +# 1 "/usr/include/qt4/QtCore/qbitarray.h" 1 +# 47 "/usr/include/qt4/QtCore/qbitarray.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QBitRef; +class QBitArray +{ + friend QDataStream &operator<<(QDataStream &, const QBitArray &); + friend QDataStream &operator>>(QDataStream &, QBitArray &); + friend uint qHash(const QBitArray &key); + QByteArray d; + +public: + inline QBitArray() {} + explicit QBitArray(int size, bool val = false); + QBitArray(const QBitArray &other) : d(other.d) {} + inline QBitArray &operator=(const QBitArray &other) { d = other.d; return *this; } + + inline QBitArray &operator=(QBitArray &&other) + { qSwap(d, other.d); return *this; } + + + inline void swap(QBitArray &other) { qSwap(d, other.d); } + + inline int size() const { return (d.size() << 3) - *d.constData(); } + inline int count() const { return (d.size() << 3) - *d.constData(); } + int count(bool on) const; + + + inline bool isEmpty() const { return d.isEmpty(); } + inline bool isNull() const { return d.isNull(); } + + void resize(int size); + + inline void detach() { d.detach(); } + inline bool isDetached() const { return d.isDetached(); } + inline void clear() { d.clear(); } + + bool testBit(int i) const; + void setBit(int i); + void setBit(int i, bool val); + void clearBit(int i); + bool toggleBit(int i); + + bool at(int i) const; + QBitRef operator[](int i); + bool operator[](int i) const; + QBitRef operator[](uint i); + bool operator[](uint i) const; + + QBitArray& operator&=(const QBitArray &); + QBitArray& operator|=(const QBitArray &); + QBitArray& operator^=(const QBitArray &); + QBitArray operator~() const; + + inline bool operator==(const QBitArray& a) const { return d == a.d; } + inline bool operator!=(const QBitArray& a) const { return d != a.d; } + + inline bool fill(bool val, int size = -1); + void fill(bool val, int first, int last); + + inline void truncate(int pos) { if (pos < size()) resize(pos); } + +public: + typedef QByteArray::DataPtr DataPtr; + inline DataPtr &data_ptr() { return d.data_ptr(); } +}; + +inline bool QBitArray::fill(bool aval, int asize) +{ *this = QBitArray((asize < 0 ? this->size() : asize), aval); return true; } + + QBitArray operator&(const QBitArray &, const QBitArray &); + QBitArray operator|(const QBitArray &, const QBitArray &); + QBitArray operator^(const QBitArray &, const QBitArray &); + +inline bool QBitArray::testBit(int i) const +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qbitarray.h",125) : qt_noop()); + return (*(reinterpret_cast(d.constData())+1+(i>>3)) & (1 << (i & 7))) != 0; } + +inline void QBitArray::setBit(int i) +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qbitarray.h",129) : qt_noop()); + *(reinterpret_cast(d.data())+1+(i>>3)) |= uchar(1 << (i & 7)); } + +inline void QBitArray::clearBit(int i) +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qbitarray.h",133) : qt_noop()); + *(reinterpret_cast(d.data())+1+(i>>3)) &= ~uchar(1 << (i & 7)); } + +inline void QBitArray::setBit(int i, bool val) +{ if (val) setBit(i); else clearBit(i); } + +inline bool QBitArray::toggleBit(int i) +{ ((!(uint(i) < uint(size()))) ? qt_assert("uint(i) < uint(size())","/usr/include/qt4/QtCore/qbitarray.h",140) : qt_noop()); + uchar b = uchar(1<<(i&7)); uchar* p = reinterpret_cast(d.data())+1+(i>>3); + uchar c = uchar(*p&b); *p^=b; return c!=0; } + +inline bool QBitArray::operator[](int i) const { return testBit(i); } +inline bool QBitArray::operator[](uint i) const { return testBit(i); } +inline bool QBitArray::at(int i) const { return testBit(i); } + +class QBitRef +{ +private: + QBitArray& a; + int i; + inline QBitRef(QBitArray& array, int idx) : a(array), i(idx) {} + friend class QBitArray; +public: + inline operator bool() const { return a.testBit(i); } + inline bool operator!() const { return !a.testBit(i); } + QBitRef& operator=(const QBitRef& val) { a.setBit(i, val); return *this; } + QBitRef& operator=(bool val) { a.setBit(i, val); return *this; } +}; + +inline QBitRef QBitArray::operator[](int i) +{ ((!(i >= 0)) ? qt_assert("i >= 0","/usr/include/qt4/QtCore/qbitarray.h",163) : qt_noop()); return QBitRef(*this, i); } +inline QBitRef QBitArray::operator[](uint i) +{ return QBitRef(*this, i); } + + + + QDataStream &operator<<(QDataStream &, const QBitArray &); + QDataStream &operator>>(QDataStream &, QBitArray &); + + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QBitArray)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QBitArray"; } }; +template <> inline bool qIsDetached(QBitArray &t) { return t.isDetached(); } template <> inline void qSwap(QBitArray &value1, QBitArray &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QBitArray>(::QBitArray &value1, ::QBitArray &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } + + + + +# 47 "/usr/include/qt4/QtGui/qlcdnumber.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QLCDNumberPrivate; +class QLCDNumber : public QFrame +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + +public: + explicit QLCDNumber(QWidget* parent = 0); + explicit QLCDNumber(uint numDigits, QWidget* parent = 0); + ~QLCDNumber(); + + enum Mode { + Hex, Dec, Oct, Bin + + + + }; + enum SegmentStyle { + Outline, Filled, Flat + }; + + bool smallDecimalPoint() const; + + int numDigits() const; + void setNumDigits(int nDigits); + + int digitCount() const; + void setDigitCount(int nDigits); + + bool checkOverflow(double num) const; + bool checkOverflow(int num) const; + + Mode mode() const; + void setMode(Mode); + + SegmentStyle segmentStyle() const; + void setSegmentStyle(SegmentStyle); + + double value() const; + int intValue() const; + + QSize sizeHint() const; + +public : + void display(const QString &str); + void display(int num); + void display(double num); + void setHexMode(); + void setDecMode(); + void setOctMode(); + void setBinMode(); + void setSmallDecimalPoint(bool); + +protected: + void overflow(); + +protected: + bool event(QEvent *e); + void paintEvent(QPaintEvent *); + +public: +# 133 "/usr/include/qt4/QtGui/qlcdnumber.h" +private: + QLCDNumber(const QLCDNumber &); QLCDNumber &operator=(const QLCDNumber &); + inline QLCDNumberPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QLCDNumberPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QLCDNumberPrivate; +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QLCDNumber" 2 +# 37 "common.h" 2 + +# 1 "/usr/include/qt4/QtGui/QVBoxLayout" 1 +# 1 "/usr/include/qt4/QtGui/qboxlayout.h" 1 +# 45 "/usr/include/qt4/QtGui/qboxlayout.h" +# 1 "/usr/include/qt4/QtGui/qlayout.h" 1 +# 46 "/usr/include/qt4/QtGui/qlayout.h" +# 1 "/usr/include/qt4/QtGui/qlayoutitem.h" 1 +# 48 "/usr/include/qt4/QtGui/qlayoutitem.h" +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 49 "/usr/include/qt4/QtGui/qlayoutitem.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +static const int QLAYOUTSIZE_MAX = 0x7fffffff/256/16; + +class QLayout; +class QLayoutItem; +class QSpacerItem; +class QWidget; +class QSize; + +class QLayoutItem +{ +public: + inline explicit QLayoutItem(Qt::Alignment alignment = 0); + virtual ~QLayoutItem(); + virtual QSize sizeHint() const = 0; + virtual QSize minimumSize() const = 0; + virtual QSize maximumSize() const = 0; + virtual Qt::Orientations expandingDirections() const = 0; + virtual void setGeometry(const QRect&) = 0; + virtual QRect geometry() const = 0; + virtual bool isEmpty() const = 0; + virtual bool hasHeightForWidth() const; + virtual int heightForWidth(int) const; + virtual int minimumHeightForWidth(int) const; + virtual void invalidate(); + + virtual QWidget *widget(); + virtual QLayout *layout(); + virtual QSpacerItem *spacerItem(); + + Qt::Alignment alignment() const { return align; } + void setAlignment(Qt::Alignment a); + QSizePolicy::ControlTypes controlTypes() const; + +protected: + Qt::Alignment align; +}; + +inline QLayoutItem::QLayoutItem(Qt::Alignment aalignment) + : align(aalignment) { } + +class QSpacerItem : public QLayoutItem +{ +public: + QSpacerItem(int w, int h, + QSizePolicy::Policy hData = QSizePolicy::Minimum, + QSizePolicy::Policy vData = QSizePolicy::Minimum) + : width(w), height(h), sizeP(hData, vData) { } + void changeSize(int w, int h, + QSizePolicy::Policy hData = QSizePolicy::Minimum, + QSizePolicy::Policy vData = QSizePolicy::Minimum); + QSize sizeHint() const; + QSize minimumSize() const; + QSize maximumSize() const; + Qt::Orientations expandingDirections() const; + bool isEmpty() const; + void setGeometry(const QRect&); + QRect geometry() const; + QSpacerItem *spacerItem(); + +private: + int width; + int height; + QSizePolicy sizeP; + QRect rect; +}; + +class QWidgetItem : public QLayoutItem +{ + QWidgetItem(const QWidgetItem &); QWidgetItem &operator=(const QWidgetItem &); + +public: + explicit QWidgetItem(QWidget *w) : wid(w) { } + QSize sizeHint() const; + QSize minimumSize() const; + QSize maximumSize() const; + Qt::Orientations expandingDirections() const; + bool isEmpty() const; + void setGeometry(const QRect&); + QRect geometry() const; + virtual QWidget *widget(); + + bool hasHeightForWidth() const; + int heightForWidth(int) const; + +protected: + QWidget *wid; +}; + +class QWidgetItemV2 : public QWidgetItem +{ +public: + explicit QWidgetItemV2(QWidget *widget); + ~QWidgetItemV2(); + + QSize sizeHint() const; + QSize minimumSize() const; + QSize maximumSize() const; + int heightForWidth(int width) const; + +private: + enum { Dirty = -123, HfwCacheMaxSize = 3 }; + + inline bool useSizeCache() const; + void updateCacheIfNecessary() const; + inline void invalidateSizeCache() { + q_cachedMinimumSize.setWidth(Dirty); + q_hfwCacheSize = 0; + } + + mutable QSize q_cachedMinimumSize; + mutable QSize q_cachedSizeHint; + mutable QSize q_cachedMaximumSize; + mutable QSize q_cachedHfws[HfwCacheMaxSize]; + mutable short q_firstCachedHfw; + mutable short q_hfwCacheSize; + void *d; + + friend class QWidgetPrivate; + + QWidgetItemV2(const QWidgetItemV2 &); QWidgetItemV2 &operator=(const QWidgetItemV2 &); +}; + + + + +# 47 "/usr/include/qt4/QtGui/qlayout.h" 2 + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 52 "/usr/include/qt4/QtGui/qlayout.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QLayout; +class QSize; +# 88 "/usr/include/qt4/QtGui/qlayout.h" +class QLayoutPrivate; + +class QLayout : public QObject, public QLayoutItem +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QLayoutPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QLayoutPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QLayoutPrivate; + + + + + +public: + enum SizeConstraint { + SetDefaultConstraint, + SetNoConstraint, + SetMinimumSize, + SetFixedSize, + SetMaximumSize, + SetMinAndMaxSize + + + + + + + }; + + QLayout(QWidget *parent); + QLayout(); + ~QLayout(); + + int margin() const; + int spacing() const; + + void setMargin(int); + void setSpacing(int); + + void setContentsMargins(int left, int top, int right, int bottom); + void setContentsMargins(const QMargins &margins); + void getContentsMargins(int *left, int *top, int *right, int *bottom) const; + QMargins contentsMargins() const; + QRect contentsRect() const; + + bool setAlignment(QWidget *w, Qt::Alignment alignment); + bool setAlignment(QLayout *l, Qt::Alignment alignment); + + + + using QLayoutItem::setAlignment; + + + void setSizeConstraint(SizeConstraint); + SizeConstraint sizeConstraint() const; + + + + + void setMenuBar(QWidget *w); + QWidget *menuBar() const; + + QWidget *parentWidget() const; + + void invalidate(); + QRect geometry() const; + bool activate(); + void update(); + + void addWidget(QWidget *w); + virtual void addItem(QLayoutItem *) = 0; + + void removeWidget(QWidget *w); + void removeItem(QLayoutItem *); + + Qt::Orientations expandingDirections() const; + QSize minimumSize() const; + QSize maximumSize() const; + virtual void setGeometry(const QRect&); + virtual QLayoutItem *itemAt(int index) const = 0; + virtual QLayoutItem *takeAt(int index) = 0; + virtual int indexOf(QWidget *) const; + virtual int count() const = 0; + bool isEmpty() const; + + int totalHeightForWidth(int w) const; + QSize totalMinimumSize() const; + QSize totalMaximumSize() const; + QSize totalSizeHint() const; + QLayout *layout(); + + void setEnabled(bool); + bool isEnabled() const; + + + + + + + static QSize closestAcceptableSize(const QWidget *w, const QSize &s); + +protected: + void widgetEvent(QEvent *); + void childEvent(QChildEvent *e); + void addChildLayout(QLayout *l); + void addChildWidget(QWidget *w); + bool adoptLayout(QLayout *layout); + + + + + QRect alignmentRect(const QRect&) const; +protected: + QLayout(QLayoutPrivate &d, QLayout*, QWidget*); + +private: + QLayout(const QLayout &); QLayout &operator=(const QLayout &); + + static void activateRecursiveHelper(QLayoutItem *item); + + friend class QApplicationPrivate; + friend class QWidget; +# 225 "/usr/include/qt4/QtGui/qlayout.h" +}; +# 236 "/usr/include/qt4/QtGui/qlayout.h" + +# 1 "/usr/include/qt4/QtGui/qboxlayout.h" 1 +# 238 "/usr/include/qt4/QtGui/qlayout.h" 2 +# 1 "/usr/include/qt4/QtGui/qgridlayout.h" 1 +# 45 "/usr/include/qt4/QtGui/qgridlayout.h" +# 1 "/usr/include/qt4/QtGui/qlayout.h" 1 +# 46 "/usr/include/qt4/QtGui/qgridlayout.h" 2 + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 51 "/usr/include/qt4/QtGui/qgridlayout.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QGridLayoutPrivate; + +class QGridLayout : public QLayout +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QGridLayoutPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGridLayoutPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGridLayoutPrivate; + + + +public: + explicit QGridLayout(QWidget *parent); + QGridLayout(); +# 78 "/usr/include/qt4/QtGui/qgridlayout.h" + ~QGridLayout(); + + QSize sizeHint() const; + QSize minimumSize() const; + QSize maximumSize() const; + + void setHorizontalSpacing(int spacing); + int horizontalSpacing() const; + void setVerticalSpacing(int spacing); + int verticalSpacing() const; + void setSpacing(int spacing); + int spacing() const; + + void setRowStretch(int row, int stretch); + void setColumnStretch(int column, int stretch); + int rowStretch(int row) const; + int columnStretch(int column) const; + + void setRowMinimumHeight(int row, int minSize); + void setColumnMinimumWidth(int column, int minSize); + int rowMinimumHeight(int row) const; + int columnMinimumWidth(int column) const; + + int columnCount() const; + int rowCount() const; + + QRect cellRect(int row, int column) const; + + + + + bool hasHeightForWidth() const; + int heightForWidth(int) const; + int minimumHeightForWidth(int) const; + + Qt::Orientations expandingDirections() const; + void invalidate(); + + inline void addWidget(QWidget *w) { QLayout::addWidget(w); } + void addWidget(QWidget *, int row, int column, Qt::Alignment = 0); + void addWidget(QWidget *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0); + void addLayout(QLayout *, int row, int column, Qt::Alignment = 0); + void addLayout(QLayout *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0); + + void setOriginCorner(Qt::Corner); + Qt::Corner originCorner() const; + + + + + + QLayoutItem *itemAt(int index) const; + QLayoutItem *itemAtPosition(int row, int column) const; + QLayoutItem *takeAt(int index); + int count() const; + void setGeometry(const QRect&); + + void addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment = 0); + + void setDefaultPositioning(int n, Qt::Orientation orient); + void getItemPosition(int idx, int *row, int *column, int *rowSpan, int *columnSpan); + +protected: + + + + void addItem(QLayoutItem *); + +private: + QGridLayout(const QGridLayout &); QGridLayout &operator=(const QGridLayout &); +# 170 "/usr/include/qt4/QtGui/qgridlayout.h" +}; + + + + +# 239 "/usr/include/qt4/QtGui/qlayout.h" 2 + + + + + + +# 46 "/usr/include/qt4/QtGui/qboxlayout.h" 2 + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 51 "/usr/include/qt4/QtGui/qboxlayout.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QBoxLayoutPrivate; + +class QBoxLayout : public QLayout +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QBoxLayoutPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QBoxLayoutPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QBoxLayoutPrivate; +public: + enum Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop, + Down = TopToBottom, Up = BottomToTop }; + + explicit QBoxLayout(Direction, QWidget *parent = 0); +# 77 "/usr/include/qt4/QtGui/qboxlayout.h" + ~QBoxLayout(); + + Direction direction() const; + void setDirection(Direction); + + void addSpacing(int size); + void addStretch(int stretch = 0); + void addSpacerItem(QSpacerItem *spacerItem); + void addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = 0); + void addLayout(QLayout *layout, int stretch = 0); + void addStrut(int); + void addItem(QLayoutItem *); + + void insertSpacing(int index, int size); + void insertStretch(int index, int stretch = 0); + void insertSpacerItem(int index, QSpacerItem *spacerItem); + void insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = 0); + void insertLayout(int index, QLayout *layout, int stretch = 0); + + int spacing() const; + void setSpacing(int spacing); + + bool setStretchFactor(QWidget *w, int stretch); + bool setStretchFactor(QLayout *l, int stretch); + void setStretch(int index, int stretch); + int stretch(int index) const; + + QSize sizeHint() const; + QSize minimumSize() const; + QSize maximumSize() const; + + bool hasHeightForWidth() const; + int heightForWidth(int) const; + int minimumHeightForWidth(int) const; + + Qt::Orientations expandingDirections() const; + void invalidate(); + QLayoutItem *itemAt(int) const; + QLayoutItem *takeAt(int); + int count() const; + void setGeometry(const QRect&); + + + +protected: + + void insertItem(int index, QLayoutItem *); + +private: + QBoxLayout(const QBoxLayout &); QBoxLayout &operator=(const QBoxLayout &); +}; + +class QHBoxLayout : public QBoxLayout +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); +public: + QHBoxLayout(); + explicit QHBoxLayout(QWidget *parent); + ~QHBoxLayout(); +# 145 "/usr/include/qt4/QtGui/qboxlayout.h" +private: + QHBoxLayout(const QHBoxLayout &); QHBoxLayout &operator=(const QHBoxLayout &); +}; + +class QVBoxLayout : public QBoxLayout +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); +public: + QVBoxLayout(); + explicit QVBoxLayout(QWidget *parent); + ~QVBoxLayout(); +# 165 "/usr/include/qt4/QtGui/qboxlayout.h" +private: + QVBoxLayout(const QVBoxLayout &); QVBoxLayout &operator=(const QVBoxLayout &); +}; + + + + +# 1 "/usr/include/qt4/QtGui/QVBoxLayout" 2 +# 39 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QSplitter" 1 +# 1 "/usr/include/qt4/QtGui/qsplitter.h" 1 +# 48 "/usr/include/qt4/QtGui/qsplitter.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QSplitterPrivate; +class QTextStream; +template class QList; + +class QSplitterHandle; + +class QSplitter : public QFrame +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + +public: + explicit QSplitter(QWidget* parent = 0); + explicit QSplitter(Qt::Orientation, QWidget* parent = 0); + ~QSplitter(); + + void addWidget(QWidget *widget); + void insertWidget(int index, QWidget *widget); + + void setOrientation(Qt::Orientation); + Qt::Orientation orientation() const; + + void setChildrenCollapsible(bool); + bool childrenCollapsible() const; + + void setCollapsible(int index, bool); + bool isCollapsible(int index) const; + void setOpaqueResize(bool opaque = true); + bool opaqueResize() const; + void refresh(); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + QList sizes() const; + void setSizes(const QList &list); + + QByteArray saveState() const; + bool restoreState(const QByteArray &state); + + int handleWidth() const; + void setHandleWidth(int); + + int indexOf(QWidget *w) const; + QWidget *widget(int index) const; + int count() const; + + void getRange(int index, int *, int *) const; + QSplitterHandle *handle(int index) const; + + void setStretchFactor(int index, int stretch); + +protected: + void splitterMoved(int pos, int index); + +protected: + virtual QSplitterHandle *createHandle(); + + void childEvent(QChildEvent *); + + bool event(QEvent *); + void resizeEvent(QResizeEvent *); + + void changeEvent(QEvent *); + void moveSplitter(int pos, int index); + void setRubberBand(int position); + int closestLegalPosition(int, int); +# 143 "/usr/include/qt4/QtGui/qsplitter.h" +private: + QSplitter(const QSplitter &); QSplitter &operator=(const QSplitter &); + inline QSplitterPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QSplitterPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QSplitterPrivate; +private: + friend class QSplitterHandle; +}; + + + + QTextStream& operator<<(QTextStream&, const QSplitter&); + QTextStream& operator>>(QTextStream&, QSplitter&); + + + +class QSplitterHandlePrivate; +class QSplitterHandle : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); +public: + QSplitterHandle(Qt::Orientation o, QSplitter *parent); + void setOrientation(Qt::Orientation o); + Qt::Orientation orientation() const; + bool opaqueResize() const; + QSplitter *splitter() const; + + QSize sizeHint() const; + +protected: + void paintEvent(QPaintEvent *); + void mouseMoveEvent(QMouseEvent *); + void mousePressEvent(QMouseEvent *); + void mouseReleaseEvent(QMouseEvent *); + void resizeEvent(QResizeEvent *); + bool event(QEvent *); + + void moveSplitter(int p); + int closestLegalPosition(int p); + +private: + QSplitterHandle(const QSplitterHandle &); QSplitterHandle &operator=(const QSplitterHandle &); + inline QSplitterHandlePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QSplitterHandlePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QSplitterHandlePrivate; +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QSplitter" 2 +# 40 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QToolBar" 1 +# 1 "/usr/include/qt4/QtGui/qtoolbar.h" 1 +# 47 "/usr/include/qt4/QtGui/qtoolbar.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QToolBarPrivate; + +class QAction; +class QIcon; +class QMainWindow; +class QStyleOptionToolBar; + +class QToolBar : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + + +public: + explicit QToolBar(const QString &title, QWidget *parent = 0); + explicit QToolBar(QWidget *parent = 0); + ~QToolBar(); + + void setMovable(bool movable); + bool isMovable() const; + + void setAllowedAreas(Qt::ToolBarAreas areas); + Qt::ToolBarAreas allowedAreas() const; + + inline bool isAreaAllowed(Qt::ToolBarArea area) const + { return (allowedAreas() & area) == area; } + + void setOrientation(Qt::Orientation orientation); + Qt::Orientation orientation() const; + + void clear(); + + + + + + using QWidget::addAction; + + + QAction *addAction(const QString &text); + QAction *addAction(const QIcon &icon, const QString &text); + QAction *addAction(const QString &text, const QObject *receiver, const char* member); + QAction *addAction(const QIcon &icon, const QString &text, + const QObject *receiver, const char* member); + + QAction *addSeparator(); + QAction *insertSeparator(QAction *before); + + QAction *addWidget(QWidget *widget); + QAction *insertWidget(QAction *before, QWidget *widget); + + QRect actionGeometry(QAction *action) const; + QAction *actionAt(const QPoint &p) const; + inline QAction *actionAt(int x, int y) const; + + QAction *toggleViewAction() const; + + QSize iconSize() const; + Qt::ToolButtonStyle toolButtonStyle() const; + + QWidget *widgetForAction(QAction *action) const; + + bool isFloatable() const; + void setFloatable(bool floatable); + bool isFloating() const; + +public : + void setIconSize(const QSize &iconSize); + void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle); + +protected: + void actionTriggered(QAction *action); + void movableChanged(bool movable); + void allowedAreasChanged(Qt::ToolBarAreas allowedAreas); + void orientationChanged(Qt::Orientation orientation); + void iconSizeChanged(const QSize &iconSize); + void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle); + void topLevelChanged(bool topLevel); + void visibilityChanged(bool visible); + +protected: + void actionEvent(QActionEvent *event); + void changeEvent(QEvent *event); + void childEvent(QChildEvent *event); + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent *event); + bool event(QEvent *event); + void initStyleOption(QStyleOptionToolBar *option) const; +# 166 "/usr/include/qt4/QtGui/qtoolbar.h" +private: + inline QToolBarPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QToolBarPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QToolBarPrivate; + QToolBar(const QToolBar &); QToolBar &operator=(const QToolBar &); + + + + + friend class QMainWindow; + friend class QMainWindowLayout; + friend class QToolBarLayout; + friend class QToolBarAreaLayout; +}; + +inline QAction *QToolBar::actionAt(int ax, int ay) const +{ return actionAt(QPoint(ax, ay)); } + + + + + + +# 1 "/usr/include/qt4/QtGui/QToolBar" 2 +# 41 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QStatusBar" 1 +# 1 "/usr/include/qt4/QtGui/qstatusbar.h" 1 +# 47 "/usr/include/qt4/QtGui/qstatusbar.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QStatusBarPrivate; + +class QStatusBar: public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + explicit QStatusBar(QWidget* parent=0); + virtual ~QStatusBar(); + + void addWidget(QWidget *widget, int stretch = 0); + int insertWidget(int index, QWidget *widget, int stretch = 0); + void addPermanentWidget(QWidget *widget, int stretch = 0); + int insertPermanentWidget(int index, QWidget *widget, int stretch = 0); + void removeWidget(QWidget *widget); + + void setSizeGripEnabled(bool); + bool isSizeGripEnabled() const; + + QString currentMessage() const; + +public : + void showMessage(const QString &text, int timeout = 0); + void clearMessage(); +# 92 "/usr/include/qt4/QtGui/qstatusbar.h" +protected: + void messageChanged(const QString &text); + +protected: + void showEvent(QShowEvent *); + void paintEvent(QPaintEvent *); + void resizeEvent(QResizeEvent *); + + + void reformat(); + void hideOrShow(); + bool event(QEvent *); + +private: + QStatusBar(const QStatusBar &); QStatusBar &operator=(const QStatusBar &); + inline QStatusBarPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QStatusBarPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QStatusBarPrivate; +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QStatusBar" 2 +# 42 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QTime" 1 +# 1 "/usr/include/qt4/QtCore/qdatetime.h" 1 +# 49 "/usr/include/qt4/QtCore/qdatetime.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QDate +{ +public: + enum MonthNameType { + DateFormat = 0, + StandaloneFormat + }; +public: + QDate() { jd = 0; } + QDate(int y, int m, int d); + + bool isNull() const { return jd == 0; } + bool isValid() const; + + int year() const; + int month() const; + int day() const; + int dayOfWeek() const; + int dayOfYear() const; + int daysInMonth() const; + int daysInYear() const; + int weekNumber(int *yearNum = 0) const; + + + + + + + + static QString shortMonthName(int month); + static QString shortMonthName(int month, MonthNameType type); + static QString shortDayName(int weekday); + static QString shortDayName(int weekday, MonthNameType type); + static QString longMonthName(int month); + static QString longMonthName(int month, MonthNameType type); + static QString longDayName(int weekday); + static QString longDayName(int weekday, MonthNameType type); + + + QString toString(Qt::DateFormat f = Qt::TextDate) const; + QString toString(const QString &format) const; + + bool setYMD(int y, int m, int d); + bool setDate(int year, int month, int day); + + void getDate(int *year, int *month, int *day); + + QDate addDays(int days) const; + QDate addMonths(int months) const; + QDate addYears(int years) const; + int daysTo(const QDate &) const; + + bool operator==(const QDate &other) const { return jd == other.jd; } + bool operator!=(const QDate &other) const { return jd != other.jd; } + bool operator<(const QDate &other) const { return jd < other.jd; } + bool operator<=(const QDate &other) const { return jd <= other.jd; } + bool operator>(const QDate &other) const { return jd > other.jd; } + bool operator>=(const QDate &other) const { return jd >= other.jd; } + + static QDate currentDate(); + + static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); + static QDate fromString(const QString &s, const QString &format); + + static bool isValid(int y, int m, int d); + static bool isLeapYear(int year); + + + + + + static uint gregorianToJulian(int y, int m, int d); + static void julianToGregorian(uint jd, int &y, int &m, int &d); + + + + + + static inline QDate fromJulianDay(int jd) { QDate d; d.jd = jd; return d; } + inline int toJulianDay() const { return jd; } + +private: + uint jd; + + friend class QDateTime; + friend class QDateTimePrivate; + + friend QDataStream &operator<<(QDataStream &, const QDate &); + friend QDataStream &operator>>(QDataStream &, QDate &); + +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QDate)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QDate"; } }; + +class QTime +{ +public: + QTime(): mds(NullTime) + + + + {} + QTime(int h, int m, int s = 0, int ms = 0); + + bool isNull() const { return mds == NullTime; } + bool isValid() const; + + int hour() const; + int minute() const; + int second() const; + int msec() const; + + QString toString(Qt::DateFormat f = Qt::TextDate) const; + QString toString(const QString &format) const; + + bool setHMS(int h, int m, int s, int ms = 0); + + QTime addSecs(int secs) const; + int secsTo(const QTime &) const; + QTime addMSecs(int ms) const; + int msecsTo(const QTime &) const; + + bool operator==(const QTime &other) const { return mds == other.mds; } + bool operator!=(const QTime &other) const { return mds != other.mds; } + bool operator<(const QTime &other) const { return mds < other.mds; } + bool operator<=(const QTime &other) const { return mds <= other.mds; } + bool operator>(const QTime &other) const { return mds > other.mds; } + bool operator>=(const QTime &other) const { return mds >= other.mds; } + + static QTime currentTime(); + + static QTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); + static QTime fromString(const QString &s, const QString &format); + + static bool isValid(int h, int m, int s, int ms = 0); + + + + + + void start(); + int restart(); + int elapsed() const; +private: + enum TimeFlag { NullTime = -1 }; + inline int ds() const { return mds == -1 ? 0 : mds; } + int mds; + + + + + friend class QDateTime; + friend class QDateTimePrivate; + + friend QDataStream &operator<<(QDataStream &, const QTime &); + friend QDataStream &operator>>(QDataStream &, QTime &); + +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QTime)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QTime"; } }; + +class QDateTimePrivate; + +class QDateTime +{ +public: + QDateTime(); + explicit QDateTime(const QDate &); + QDateTime(const QDate &, const QTime &, Qt::TimeSpec spec = Qt::LocalTime); + QDateTime(const QDateTime &other); + ~QDateTime(); + + QDateTime &operator=(const QDateTime &other); + + bool isNull() const; + bool isValid() const; + + QDate date() const; + QTime time() const; + Qt::TimeSpec timeSpec() const; + qint64 toMSecsSinceEpoch() const; + uint toTime_t() const; + void setDate(const QDate &date); + void setTime(const QTime &time); + void setTimeSpec(Qt::TimeSpec spec); + void setMSecsSinceEpoch(qint64 msecs); + void setTime_t(uint secsSince1Jan1970UTC); + + QString toString(Qt::DateFormat f = Qt::TextDate) const; + QString toString(const QString &format) const; + + QDateTime addDays(int days) const; + QDateTime addMonths(int months) const; + QDateTime addYears(int years) const; + QDateTime addSecs(int secs) const; + QDateTime addMSecs(qint64 msecs) const; + QDateTime toTimeSpec(Qt::TimeSpec spec) const; + inline QDateTime toLocalTime() const { return toTimeSpec(Qt::LocalTime); } + inline QDateTime toUTC() const { return toTimeSpec(Qt::UTC); } + int daysTo(const QDateTime &) const; + int secsTo(const QDateTime &) const; + qint64 msecsTo(const QDateTime &) const; + + bool operator==(const QDateTime &other) const; + inline bool operator!=(const QDateTime &other) const { return !(*this == other); } + bool operator<(const QDateTime &other) const; + inline bool operator<=(const QDateTime &other) const { return !(other < *this); } + inline bool operator>(const QDateTime &other) const { return other < *this; } + inline bool operator>=(const QDateTime &other) const { return !(*this < other); } + + void setUtcOffset(int seconds); + int utcOffset() const; + + static QDateTime currentDateTime(); + static QDateTime currentDateTimeUtc(); + + static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); + static QDateTime fromString(const QString &s, const QString &format); + + static QDateTime fromTime_t(uint secsSince1Jan1970UTC); + static QDateTime fromMSecsSinceEpoch(qint64 msecs); + static qint64 currentMSecsSinceEpoch(); +# 291 "/usr/include/qt4/QtCore/qdatetime.h" +private: + friend class QDateTimePrivate; + void detach(); + QExplicitlySharedDataPointer d; + + + friend QDataStream &operator<<(QDataStream &, const QDateTime &); + friend QDataStream &operator>>(QDataStream &, QDateTime &); + +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QDateTime)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QDateTime"; } }; +# 322 "/usr/include/qt4/QtCore/qdatetime.h" + QDataStream &operator<<(QDataStream &, const QDate &); + QDataStream &operator>>(QDataStream &, QDate &); + QDataStream &operator<<(QDataStream &, const QTime &); + QDataStream &operator>>(QDataStream &, QTime &); + QDataStream &operator<<(QDataStream &, const QDateTime &); + QDataStream &operator>>(QDataStream &, QDateTime &); + + + + QDebug operator<<(QDebug, const QDate &); + QDebug operator<<(QDebug, const QTime &); + QDebug operator<<(QDebug, const QDateTime &); + + + + + +# 1 "/usr/include/qt4/QtCore/QTime" 2 +# 43 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QThread" 1 +# 1 "/usr/include/qt4/QtCore/qthread.h" 1 +# 47 "/usr/include/qt4/QtCore/qthread.h" +# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4 +# 48 "/usr/include/qt4/QtCore/qthread.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QThreadData; +class QThreadPrivate; + + +class QThread : public QObject +{ +public: + static Qt::HANDLE currentThreadId(); + static QThread *currentThread(); + static int idealThreadCount(); + static void yieldCurrentThread(); + + explicit QThread(QObject *parent = 0); + ~QThread(); + + enum Priority { + IdlePriority, + + LowestPriority, + LowPriority, + NormalPriority, + HighPriority, + HighestPriority, + + TimeCriticalPriority, + + InheritPriority + }; + + void setPriority(Priority priority); + Priority priority() const; + + bool isFinished() const; + bool isRunning() const; + + void setStackSize(uint stackSize); + uint stackSize() const; + + void exit(int retcode = 0); + +public : + void start(Priority = InheritPriority); + void terminate(); + void quit(); + +public: + + bool wait(unsigned long time = +# 102 "/usr/include/qt4/QtCore/qthread.h" 3 4 + (0x7fffffffffffffffL * 2UL + 1UL) +# 102 "/usr/include/qt4/QtCore/qthread.h" + ); + +protected: + void started(); + void finished(); + void terminated(); + +protected: + virtual void run(); + int exec(); + + static void setTerminationEnabled(bool enabled = true); + + static void sleep(unsigned long); + static void msleep(unsigned long); + static void usleep(unsigned long); + + + + + + + +protected: + QThread(QThreadPrivate &dd, QObject *parent = 0); + +private: + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QThreadPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QThreadPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QThreadPrivate; + + static void initialize(); + static void cleanup(); + + friend class QCoreApplication; + friend class QThreadData; +}; +# 162 "/usr/include/qt4/QtCore/qthread.h" + + + +# 1 "/usr/include/qt4/QtCore/QThread" 2 +# 44 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QLabel" 1 +# 1 "/usr/include/qt4/QtGui/qlabel.h" 1 +# 47 "/usr/include/qt4/QtGui/qlabel.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QLabelPrivate; + +class QLabel : public QFrame +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + +public: + explicit QLabel(QWidget *parent=0, Qt::WindowFlags f=0); + explicit QLabel(const QString &text, QWidget *parent=0, Qt::WindowFlags f=0); + ~QLabel(); + + QString text() const; + const QPixmap *pixmap() const; + + const QPicture *picture() const; + + + QMovie *movie() const; + + + Qt::TextFormat textFormat() const; + void setTextFormat(Qt::TextFormat); + + Qt::Alignment alignment() const; + void setAlignment(Qt::Alignment); + + void setWordWrap(bool on); + bool wordWrap() const; + + int indent() const; + void setIndent(int); + + int margin() const; + void setMargin(int); + + bool hasScaledContents() const; + void setScaledContents(bool); + QSize sizeHint() const; + QSize minimumSizeHint() const; + + void setBuddy(QWidget *); + QWidget *buddy() const; + + int heightForWidth(int) const; + + bool openExternalLinks() const; + void setOpenExternalLinks(bool open); + + void setTextInteractionFlags(Qt::TextInteractionFlags flags); + Qt::TextInteractionFlags textInteractionFlags() const; + + void setSelection(int, int); + bool hasSelectedText() const; + QString selectedText() const; + int selectionStart() const; + +public : + void setText(const QString &); + void setPixmap(const QPixmap &); + + void setPicture(const QPicture &); + + + void setMovie(QMovie *movie); + + void setNum(int); + void setNum(double); + void clear(); + +protected: + void linkActivated(const QString& link); + void linkHovered(const QString& link); + +protected: + bool event(QEvent *e); + void keyPressEvent(QKeyEvent *ev); + void paintEvent(QPaintEvent *); + void changeEvent(QEvent *); + void mousePressEvent(QMouseEvent *ev); + void mouseMoveEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *ev); + void contextMenuEvent(QContextMenuEvent *ev); + void focusInEvent(QFocusEvent *ev); + void focusOutEvent(QFocusEvent *ev); + bool focusNextPrevChild(bool next); +# 164 "/usr/include/qt4/QtGui/qlabel.h" +private: + QLabel(const QLabel &); QLabel &operator=(const QLabel &); + inline QLabelPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QLabelPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QLabelPrivate; + + + + + + + friend class QTipLabel; + friend class QMessageBoxPrivate; + friend class QBalloonTip; +}; + + + + +# 1 "/usr/include/qt4/QtGui/QLabel" 2 +# 45 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QComboBox" 1 +# 1 "/usr/include/qt4/QtGui/qcombobox.h" 1 +# 46 "/usr/include/qt4/QtGui/qcombobox.h" +# 1 "/usr/include/qt4/QtGui/qabstractitemdelegate.h" 1 +# 46 "/usr/include/qt4/QtGui/qabstractitemdelegate.h" +# 1 "/usr/include/qt4/QtGui/qstyleoption.h" 1 +# 49 "/usr/include/qt4/QtGui/qstyleoption.h" +# 1 "/usr/include/qt4/QtGui/qslider.h" 1 +# 50 "/usr/include/qt4/QtGui/qstyleoption.h" 2 +# 1 "/usr/include/qt4/QtGui/qstyle.h" 1 +# 53 "/usr/include/qt4/QtGui/qstyle.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QAction; +class QDebug; +class QTab; +class QFontMetrics; +class QStyleHintReturn; +class QStyleOption; +class QStyleOptionComplex; +class QStylePrivate; + +class QStyle : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QStylePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QStylePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QStylePrivate; + +protected: + QStyle(QStylePrivate &dd); + +public: + QStyle(); + virtual ~QStyle(); + + virtual void polish(QWidget *); + virtual void unpolish(QWidget *); + + virtual void polish(QApplication *); + virtual void unpolish(QApplication *); + + virtual void polish(QPalette &); + + virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, + int flags, bool enabled, + const QString &text) const; + + virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; + + virtual void drawItemText(QPainter *painter, const QRect &rect, + int flags, const QPalette &pal, bool enabled, + const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; + + virtual void drawItemPixmap(QPainter *painter, const QRect &rect, + int alignment, const QPixmap &pixmap) const; + + virtual QPalette standardPalette() const; + + enum StateFlag { + State_None = 0x00000000, + + + + State_Enabled = 0x00000001, + State_Raised = 0x00000002, + State_Sunken = 0x00000004, + State_Off = 0x00000008, + State_NoChange = 0x00000010, + State_On = 0x00000020, + State_DownArrow = 0x00000040, + State_Horizontal = 0x00000080, + State_HasFocus = 0x00000100, + State_Top = 0x00000200, + State_Bottom = 0x00000400, + State_FocusAtBorder = 0x00000800, + State_AutoRaise = 0x00001000, + State_MouseOver = 0x00002000, + State_UpArrow = 0x00004000, + State_Selected = 0x00008000, + State_Active = 0x00010000, + State_Window = 0x00020000, + State_Open = 0x00040000, + State_Children = 0x00080000, + State_Item = 0x00100000, + State_Sibling = 0x00200000, + State_Editing = 0x00400000, + State_KeyboardFocusChange = 0x00800000, + + + + State_ReadOnly = 0x02000000, + State_Small = 0x04000000, + State_Mini = 0x08000000 + }; + typedef QFlags State; + + + + + + enum PrimitiveElement { + PE_Q3CheckListController, + PE_Q3CheckListExclusiveIndicator, + PE_Q3CheckListIndicator, + PE_Q3DockWindowSeparator, + PE_Q3Separator, + + PE_Frame, + PE_FrameDefaultButton, + PE_FrameDockWidget, + PE_FrameFocusRect, + PE_FrameGroupBox, + PE_FrameLineEdit, + PE_FrameMenu, + PE_FrameStatusBar, + PE_FrameStatusBarItem = PE_FrameStatusBar, + PE_FrameTabWidget, + PE_FrameWindow, + PE_FrameButtonBevel, + PE_FrameButtonTool, + PE_FrameTabBarBase, + + PE_PanelButtonCommand, + PE_PanelButtonBevel, + PE_PanelButtonTool, + PE_PanelMenuBar, + PE_PanelToolBar, + PE_PanelLineEdit, + + PE_IndicatorArrowDown, + PE_IndicatorArrowLeft, + PE_IndicatorArrowRight, + PE_IndicatorArrowUp, + PE_IndicatorBranch, + PE_IndicatorButtonDropDown, + PE_IndicatorViewItemCheck, + PE_IndicatorItemViewItemCheck = PE_IndicatorViewItemCheck, + PE_IndicatorCheckBox, + PE_IndicatorDockWidgetResizeHandle, + PE_IndicatorHeaderArrow, + PE_IndicatorMenuCheckMark, + PE_IndicatorProgressChunk, + PE_IndicatorRadioButton, + PE_IndicatorSpinDown, + PE_IndicatorSpinMinus, + PE_IndicatorSpinPlus, + PE_IndicatorSpinUp, + PE_IndicatorToolBarHandle, + PE_IndicatorToolBarSeparator, + PE_PanelTipLabel, + PE_IndicatorTabTear, + PE_PanelScrollAreaCorner, + + PE_Widget, + + PE_IndicatorColumnViewArrow, + PE_IndicatorItemViewItemDrop, + + PE_PanelItemViewItem, + PE_PanelItemViewRow, + + PE_PanelStatusBar, + + PE_IndicatorTabClose, + PE_PanelMenu, + + + PE_CustomBase = 0xf000000 + }; + + virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, + const QWidget *w = 0) const = 0; + enum ControlElement { + CE_PushButton, + CE_PushButtonBevel, + CE_PushButtonLabel, + + CE_CheckBox, + CE_CheckBoxLabel, + + CE_RadioButton, + CE_RadioButtonLabel, + + CE_TabBarTab, + CE_TabBarTabShape, + CE_TabBarTabLabel, + + CE_ProgressBar, + CE_ProgressBarGroove, + CE_ProgressBarContents, + CE_ProgressBarLabel, + + CE_MenuItem, + CE_MenuScroller, + CE_MenuVMargin, + CE_MenuHMargin, + CE_MenuTearoff, + CE_MenuEmptyArea, + + CE_MenuBarItem, + CE_MenuBarEmptyArea, + + CE_ToolButtonLabel, + + CE_Header, + CE_HeaderSection, + CE_HeaderLabel, + + CE_Q3DockWindowEmptyArea, + CE_ToolBoxTab, + CE_SizeGrip, + CE_Splitter, + CE_RubberBand, + CE_DockWidgetTitle, + + CE_ScrollBarAddLine, + CE_ScrollBarSubLine, + CE_ScrollBarAddPage, + CE_ScrollBarSubPage, + CE_ScrollBarSlider, + CE_ScrollBarFirst, + CE_ScrollBarLast, + + CE_FocusFrame, + CE_ComboBoxLabel, + + CE_ToolBar, + CE_ToolBoxTabShape, + CE_ToolBoxTabLabel, + CE_HeaderEmptyArea, + + CE_ColumnViewGrip, + + CE_ItemViewItem, + + CE_ShapedFrame, + + + CE_CustomBase = 0xf0000000 + }; + + virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, + const QWidget *w = 0) const = 0; + + enum SubElement { + SE_PushButtonContents, + SE_PushButtonFocusRect, + + SE_CheckBoxIndicator, + SE_CheckBoxContents, + SE_CheckBoxFocusRect, + SE_CheckBoxClickRect, + + SE_RadioButtonIndicator, + SE_RadioButtonContents, + SE_RadioButtonFocusRect, + SE_RadioButtonClickRect, + + SE_ComboBoxFocusRect, + + SE_SliderFocusRect, + + SE_Q3DockWindowHandleRect, + + SE_ProgressBarGroove, + SE_ProgressBarContents, + SE_ProgressBarLabel, + + + SE_DialogButtonAccept, + SE_DialogButtonReject, + SE_DialogButtonApply, + SE_DialogButtonHelp, + SE_DialogButtonAll, + SE_DialogButtonAbort, + SE_DialogButtonIgnore, + SE_DialogButtonRetry, + SE_DialogButtonCustom, + + SE_ToolBoxTabContents, + + SE_HeaderLabel, + SE_HeaderArrow, + + SE_TabWidgetTabBar, + SE_TabWidgetTabPane, + SE_TabWidgetTabContents, + SE_TabWidgetLeftCorner, + SE_TabWidgetRightCorner, + + SE_ViewItemCheckIndicator, + SE_ItemViewItemCheckIndicator = SE_ViewItemCheckIndicator, + + SE_TabBarTearIndicator, + + SE_TreeViewDisclosureItem, + + SE_LineEditContents, + SE_FrameContents, + + SE_DockWidgetCloseButton, + SE_DockWidgetFloatButton, + SE_DockWidgetTitleBarText, + SE_DockWidgetIcon, + + SE_CheckBoxLayoutItem, + SE_ComboBoxLayoutItem, + SE_DateTimeEditLayoutItem, + SE_DialogButtonBoxLayoutItem, + SE_LabelLayoutItem, + SE_ProgressBarLayoutItem, + SE_PushButtonLayoutItem, + SE_RadioButtonLayoutItem, + SE_SliderLayoutItem, + SE_SpinBoxLayoutItem, + SE_ToolButtonLayoutItem, + + SE_FrameLayoutItem, + SE_GroupBoxLayoutItem, + SE_TabWidgetLayoutItem, + + SE_ItemViewItemDecoration, + SE_ItemViewItemText, + SE_ItemViewItemFocusRect, + + SE_TabBarTabLeftButton, + SE_TabBarTabRightButton, + SE_TabBarTabText, + + SE_ShapedFrameContents, + + SE_ToolBarHandle, + + + SE_CustomBase = 0xf0000000 + }; + + virtual QRect subElementRect(SubElement subElement, const QStyleOption *option, + const QWidget *widget = 0) const = 0; + + + enum ComplexControl { + CC_SpinBox, + CC_ComboBox, + CC_ScrollBar, + CC_Slider, + CC_ToolButton, + CC_TitleBar, + CC_Q3ListView, + CC_Dial, + CC_GroupBox, + CC_MdiControls, + + + CC_CustomBase = 0xf0000000 + }; + + enum SubControl { + SC_None = 0x00000000, + + SC_ScrollBarAddLine = 0x00000001, + SC_ScrollBarSubLine = 0x00000002, + SC_ScrollBarAddPage = 0x00000004, + SC_ScrollBarSubPage = 0x00000008, + SC_ScrollBarFirst = 0x00000010, + SC_ScrollBarLast = 0x00000020, + SC_ScrollBarSlider = 0x00000040, + SC_ScrollBarGroove = 0x00000080, + + SC_SpinBoxUp = 0x00000001, + SC_SpinBoxDown = 0x00000002, + SC_SpinBoxFrame = 0x00000004, + SC_SpinBoxEditField = 0x00000008, + + SC_ComboBoxFrame = 0x00000001, + SC_ComboBoxEditField = 0x00000002, + SC_ComboBoxArrow = 0x00000004, + SC_ComboBoxListBoxPopup = 0x00000008, + + SC_SliderGroove = 0x00000001, + SC_SliderHandle = 0x00000002, + SC_SliderTickmarks = 0x00000004, + + SC_ToolButton = 0x00000001, + SC_ToolButtonMenu = 0x00000002, + + SC_TitleBarSysMenu = 0x00000001, + SC_TitleBarMinButton = 0x00000002, + SC_TitleBarMaxButton = 0x00000004, + SC_TitleBarCloseButton = 0x00000008, + SC_TitleBarNormalButton = 0x00000010, + SC_TitleBarShadeButton = 0x00000020, + SC_TitleBarUnshadeButton = 0x00000040, + SC_TitleBarContextHelpButton = 0x00000080, + SC_TitleBarLabel = 0x00000100, + + SC_Q3ListView = 0x00000001, + SC_Q3ListViewBranch = 0x00000002, + SC_Q3ListViewExpand = 0x00000004, + + SC_DialGroove = 0x00000001, + SC_DialHandle = 0x00000002, + SC_DialTickmarks = 0x00000004, + + SC_GroupBoxCheckBox = 0x00000001, + SC_GroupBoxLabel = 0x00000002, + SC_GroupBoxContents = 0x00000004, + SC_GroupBoxFrame = 0x00000008, + + SC_MdiMinButton = 0x00000001, + SC_MdiNormalButton = 0x00000002, + SC_MdiCloseButton = 0x00000004, + + SC_CustomBase = 0xf0000000, + SC_All = 0xffffffff + }; + typedef QFlags SubControls; + + + + + + virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, + const QWidget *widget = 0) const = 0; + virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, + const QPoint &pt, const QWidget *widget = 0) const = 0; + virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, + SubControl sc, const QWidget *widget = 0) const = 0; + + enum PixelMetric { + PM_ButtonMargin, + PM_ButtonDefaultIndicator, + PM_MenuButtonIndicator, + PM_ButtonShiftHorizontal, + PM_ButtonShiftVertical, + + PM_DefaultFrameWidth, + PM_SpinBoxFrameWidth, + PM_ComboBoxFrameWidth, + + PM_MaximumDragDistance, + + PM_ScrollBarExtent, + PM_ScrollBarSliderMin, + + PM_SliderThickness, + PM_SliderControlThickness, + PM_SliderLength, + PM_SliderTickmarkOffset, + PM_SliderSpaceAvailable, + + PM_DockWidgetSeparatorExtent, + PM_DockWidgetHandleExtent, + PM_DockWidgetFrameWidth, + + PM_TabBarTabOverlap, + PM_TabBarTabHSpace, + PM_TabBarTabVSpace, + PM_TabBarBaseHeight, + PM_TabBarBaseOverlap, + + PM_ProgressBarChunkWidth, + + PM_SplitterWidth, + PM_TitleBarHeight, + + PM_MenuScrollerHeight, + PM_MenuHMargin, + PM_MenuVMargin, + PM_MenuPanelWidth, + PM_MenuTearoffHeight, + PM_MenuDesktopFrameWidth, + + PM_MenuBarPanelWidth, + PM_MenuBarItemSpacing, + PM_MenuBarVMargin, + PM_MenuBarHMargin, + + PM_IndicatorWidth, + PM_IndicatorHeight, + PM_ExclusiveIndicatorWidth, + PM_ExclusiveIndicatorHeight, + PM_CheckListButtonSize, + PM_CheckListControllerSize, + + PM_DialogButtonsSeparator, + PM_DialogButtonsButtonWidth, + PM_DialogButtonsButtonHeight, + + PM_MdiSubWindowFrameWidth, + PM_MDIFrameWidth = PM_MdiSubWindowFrameWidth, + PM_MdiSubWindowMinimizedWidth, + PM_MDIMinimizedWidth = PM_MdiSubWindowMinimizedWidth, + + PM_HeaderMargin, + PM_HeaderMarkSize, + PM_HeaderGripMargin, + PM_TabBarTabShiftHorizontal, + PM_TabBarTabShiftVertical, + PM_TabBarScrollButtonWidth, + + PM_ToolBarFrameWidth, + PM_ToolBarHandleExtent, + PM_ToolBarItemSpacing, + PM_ToolBarItemMargin, + PM_ToolBarSeparatorExtent, + PM_ToolBarExtensionExtent, + + PM_SpinBoxSliderHeight, + + PM_DefaultTopLevelMargin, + PM_DefaultChildMargin, + PM_DefaultLayoutSpacing, + + PM_ToolBarIconSize, + PM_ListViewIconSize, + PM_IconViewIconSize, + PM_SmallIconSize, + PM_LargeIconSize, + + PM_FocusFrameVMargin, + PM_FocusFrameHMargin, + + PM_ToolTipLabelFrameWidth, + PM_CheckBoxLabelSpacing, + PM_TabBarIconSize, + PM_SizeGripSize, + PM_DockWidgetTitleMargin, + PM_MessageBoxIconSize, + PM_ButtonIconSize, + + PM_DockWidgetTitleBarButtonMargin, + + PM_RadioButtonLabelSpacing, + PM_LayoutLeftMargin, + PM_LayoutTopMargin, + PM_LayoutRightMargin, + PM_LayoutBottomMargin, + PM_LayoutHorizontalSpacing, + PM_LayoutVerticalSpacing, + PM_TabBar_ScrollButtonOverlap, + + PM_TextCursorWidth, + + PM_TabCloseIndicatorWidth, + PM_TabCloseIndicatorHeight, + + PM_ScrollView_ScrollBarSpacing, + PM_SubMenuOverlap, + + + PM_CustomBase = 0xf0000000 + }; + + virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, + const QWidget *widget = 0) const = 0; + + enum ContentsType { + CT_PushButton, + CT_CheckBox, + CT_RadioButton, + CT_ToolButton, + CT_ComboBox, + CT_Splitter, + CT_Q3DockWindow, + CT_ProgressBar, + CT_MenuItem, + CT_MenuBarItem, + CT_MenuBar, + CT_Menu, + CT_TabBarTab, + CT_Slider, + CT_ScrollBar, + CT_Q3Header, + CT_LineEdit, + CT_SpinBox, + CT_SizeGrip, + CT_TabWidget, + CT_DialogButtons, + CT_HeaderSection, + CT_GroupBox, + CT_MdiControls, + CT_ItemViewItem, + + CT_CustomBase = 0xf0000000 + }; + + virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, + const QSize &contentsSize, const QWidget *w = 0) const = 0; + + enum RequestSoftwareInputPanel { + RSIP_OnMouseClickAndAlreadyFocused, + RSIP_OnMouseClick + }; + + enum StyleHint { + SH_EtchDisabledText, + SH_DitherDisabledText, + SH_ScrollBar_MiddleClickAbsolutePosition, + SH_ScrollBar_ScrollWhenPointerLeavesControl, + SH_TabBar_SelectMouseType, + SH_TabBar_Alignment, + SH_Header_ArrowAlignment, + SH_Slider_SnapToValue, + SH_Slider_SloppyKeyEvents, + SH_ProgressDialog_CenterCancelButton, + SH_ProgressDialog_TextLabelAlignment, + SH_PrintDialog_RightAlignButtons, + SH_MainWindow_SpaceBelowMenuBar, + SH_FontDialog_SelectAssociatedText, + SH_Menu_AllowActiveAndDisabled, + SH_Menu_SpaceActivatesItem, + SH_Menu_SubMenuPopupDelay, + SH_ScrollView_FrameOnlyAroundContents, + SH_MenuBar_AltKeyNavigation, + SH_ComboBox_ListMouseTracking, + SH_Menu_MouseTracking, + SH_MenuBar_MouseTracking, + SH_ItemView_ChangeHighlightOnFocus, + SH_Widget_ShareActivation, + SH_Workspace_FillSpaceOnMaximize, + SH_ComboBox_Popup, + SH_TitleBar_NoBorder, + SH_Slider_StopMouseOverSlider, + SH_ScrollBar_StopMouseOverSlider = SH_Slider_StopMouseOverSlider, + SH_BlinkCursorWhenTextSelected, + SH_RichText_FullWidthSelection, + SH_Menu_Scrollable, + SH_GroupBox_TextLabelVerticalAlignment, + SH_GroupBox_TextLabelColor, + SH_Menu_SloppySubMenus, + SH_Table_GridLineColor, + SH_LineEdit_PasswordCharacter, + SH_DialogButtons_DefaultButton, + SH_ToolBox_SelectedPageTitleBold, + SH_TabBar_PreferNoArrows, + SH_ScrollBar_LeftClickAbsolutePosition, + SH_Q3ListViewExpand_SelectMouseType, + SH_UnderlineShortcut, + SH_SpinBox_AnimateButton, + SH_SpinBox_KeyPressAutoRepeatRate, + SH_SpinBox_ClickAutoRepeatRate, + SH_Menu_FillScreenWithScroll, + SH_ToolTipLabel_Opacity, + SH_DrawMenuBarSeparator, + SH_TitleBar_ModifyNotification, + SH_Button_FocusPolicy, + SH_MenuBar_DismissOnSecondClick, + SH_MessageBox_UseBorderForButtonSpacing, + SH_TitleBar_AutoRaise, + SH_ToolButton_PopupDelay, + SH_FocusFrame_Mask, + SH_RubberBand_Mask, + SH_WindowFrame_Mask, + SH_SpinControls_DisableOnBounds, + SH_Dial_BackgroundRole, + SH_ComboBox_LayoutDirection, + SH_ItemView_EllipsisLocation, + SH_ItemView_ShowDecorationSelected, + SH_ItemView_ActivateItemOnSingleClick, + SH_ScrollBar_ContextMenu, + SH_ScrollBar_RollBetweenButtons, + SH_Slider_AbsoluteSetButtons, + SH_Slider_PageSetButtons, + SH_Menu_KeyboardSearch, + SH_TabBar_ElideMode, + SH_DialogButtonLayout, + SH_ComboBox_PopupFrameStyle, + SH_MessageBox_TextInteractionFlags, + SH_DialogButtonBox_ButtonsHaveIcons, + SH_SpellCheckUnderlineStyle, + SH_MessageBox_CenterButtons, + SH_Menu_SelectionWrap, + SH_ItemView_MovementWithoutUpdatingSelection, + SH_ToolTip_Mask, + SH_FocusFrame_AboveWidget, + SH_TextControl_FocusIndicatorTextCharFormat, + SH_WizardStyle, + SH_ItemView_ArrowKeysNavigateIntoChildren, + SH_Menu_Mask, + SH_Menu_FlashTriggeredItem, + SH_Menu_FadeOutOnHide, + SH_SpinBox_ClickAutoRepeatThreshold, + SH_ItemView_PaintAlternatingRowColorsForEmptyArea, + SH_FormLayoutWrapPolicy, + SH_TabWidget_DefaultTabPosition, + SH_ToolBar_Movable, + SH_FormLayoutFieldGrowthPolicy, + SH_FormLayoutFormAlignment, + SH_FormLayoutLabelAlignment, + SH_ItemView_DrawDelegateFrame, + SH_TabBar_CloseButtonPosition, + SH_DockWidget_ButtonsHaveFrame, + SH_ToolButtonStyle, + SH_RequestSoftwareInputPanel, +# 749 "/usr/include/qt4/QtGui/qstyle.h" + SH_CustomBase = 0xf0000000 + }; + + virtual int styleHint(StyleHint stylehint, const QStyleOption *opt = 0, + const QWidget *widget = 0, QStyleHintReturn* returnData = 0) const = 0; + + enum StandardPixmap { + SP_TitleBarMenuButton, + SP_TitleBarMinButton, + SP_TitleBarMaxButton, + SP_TitleBarCloseButton, + SP_TitleBarNormalButton, + SP_TitleBarShadeButton, + SP_TitleBarUnshadeButton, + SP_TitleBarContextHelpButton, + SP_DockWidgetCloseButton, + SP_MessageBoxInformation, + SP_MessageBoxWarning, + SP_MessageBoxCritical, + SP_MessageBoxQuestion, + SP_DesktopIcon, + SP_TrashIcon, + SP_ComputerIcon, + SP_DriveFDIcon, + SP_DriveHDIcon, + SP_DriveCDIcon, + SP_DriveDVDIcon, + SP_DriveNetIcon, + SP_DirOpenIcon, + SP_DirClosedIcon, + SP_DirLinkIcon, + SP_FileIcon, + SP_FileLinkIcon, + SP_ToolBarHorizontalExtensionButton, + SP_ToolBarVerticalExtensionButton, + SP_FileDialogStart, + SP_FileDialogEnd, + SP_FileDialogToParent, + SP_FileDialogNewFolder, + SP_FileDialogDetailedView, + SP_FileDialogInfoView, + SP_FileDialogContentsView, + SP_FileDialogListView, + SP_FileDialogBack, + SP_DirIcon, + SP_DialogOkButton, + SP_DialogCancelButton, + SP_DialogHelpButton, + SP_DialogOpenButton, + SP_DialogSaveButton, + SP_DialogCloseButton, + SP_DialogApplyButton, + SP_DialogResetButton, + SP_DialogDiscardButton, + SP_DialogYesButton, + SP_DialogNoButton, + SP_ArrowUp, + SP_ArrowDown, + SP_ArrowLeft, + SP_ArrowRight, + SP_ArrowBack, + SP_ArrowForward, + SP_DirHomeIcon, + SP_CommandLink, + SP_VistaShield, + SP_BrowserReload, + SP_BrowserStop, + SP_MediaPlay, + SP_MediaStop, + SP_MediaPause, + SP_MediaSkipForward, + SP_MediaSkipBackward, + SP_MediaSeekForward, + SP_MediaSeekBackward, + SP_MediaVolume, + SP_MediaVolumeMuted, + + SP_CustomBase = 0xf0000000 + }; + + virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt = 0, + const QWidget *widget = 0) const = 0; + + QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0, + const QWidget *widget = 0) const; + + virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, + const QStyleOption *opt) const = 0; + + static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, + const QRect &logicalRect); + static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, + const QPoint &logicalPos); + static int sliderPositionFromValue(int min, int max, int val, int space, + bool upsideDown = false); + static int sliderValueFromPosition(int min, int max, int pos, int space, + bool upsideDown = false); + static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment); + static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, + const QSize &size, const QRect &rectangle); + + int layoutSpacing(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, Qt::Orientation orientation, + const QStyleOption *option = 0, const QWidget *widget = 0) const; + int combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, + QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, + QStyleOption *option = 0, QWidget *widget = 0) const; + + const QStyle * proxy() const; + +protected : + QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *opt = 0, + const QWidget *widget = 0) const; + int layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption *option = 0, + const QWidget *widget = 0) const; + +private: + QStyle(const QStyle &); QStyle &operator=(const QStyle &); + friend class QWidget; + friend class QWidgetPrivate; + friend class QApplication; + friend class QProxyStyle; + friend class QProxyStylePrivate; + void setProxy(QStyle *style); +}; + +constexpr inline QFlags operator|(QStyle::State::enum_type f1, QStyle::State::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyle::State::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyle::State::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(QStyle::SubControls::enum_type f1, QStyle::SubControls::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyle::SubControls::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyle::SubControls::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + QDebug operator<<(QDebug debug, QStyle::State state); + + + + + +# 51 "/usr/include/qt4/QtGui/qstyleoption.h" 2 +# 1 "/usr/include/qt4/QtGui/qtabbar.h" 1 +# 47 "/usr/include/qt4/QtGui/qtabbar.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QIcon; +class QTabBarPrivate; +class QStyleOptionTab; + +class QTabBar: public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + +public: + explicit QTabBar(QWidget* parent=0); + ~QTabBar(); + + enum Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, + TriangularNorth, TriangularSouth, TriangularWest, TriangularEast + + + + + }; + + enum ButtonPosition { + LeftSide, + RightSide + }; + + enum SelectionBehavior { + SelectLeftTab, + SelectRightTab, + SelectPreviousTab + }; + + Shape shape() const; + void setShape(Shape shape); + + int addTab(const QString &text); + int addTab(const QIcon &icon, const QString &text); + + int insertTab(int index, const QString &text); + int insertTab(int index, const QIcon&icon, const QString &text); + + void removeTab(int index); + void moveTab(int from, int to); + + bool isTabEnabled(int index) const; + void setTabEnabled(int index, bool); + + QString tabText(int index) const; + void setTabText(int index, const QString &text); + + QColor tabTextColor(int index) const; + void setTabTextColor(int index, const QColor &color); + + QIcon tabIcon(int index) const; + void setTabIcon(int index, const QIcon &icon); + + Qt::TextElideMode elideMode() const; + void setElideMode(Qt::TextElideMode); + + + void setTabToolTip(int index, const QString &tip); + QString tabToolTip(int index) const; + + + + void setTabWhatsThis(int index, const QString &text); + QString tabWhatsThis(int index) const; + + + void setTabData(int index, const QVariant &data); + QVariant tabData(int index) const; + + QRect tabRect(int index) const; + int tabAt(const QPoint &pos) const; + + int currentIndex() const; + int count() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + void setDrawBase(bool drawTheBase); + bool drawBase() const; + + QSize iconSize() const; + void setIconSize(const QSize &size); + + bool usesScrollButtons() const; + void setUsesScrollButtons(bool useButtons); + + bool tabsClosable() const; + void setTabsClosable(bool closable); + + void setTabButton(int index, ButtonPosition position, QWidget *widget); + QWidget *tabButton(int index, ButtonPosition position) const; + + SelectionBehavior selectionBehaviorOnRemove() const; + void setSelectionBehaviorOnRemove(SelectionBehavior behavior); + + bool expanding() const; + void setExpanding(bool enabled); + + bool isMovable() const; + void setMovable(bool movable); + + bool documentMode() const; + void setDocumentMode(bool set); + +public : + void setCurrentIndex(int index); + +protected: + void currentChanged(int index); + void tabCloseRequested(int index); + void tabMoved(int from, int to); + +protected: + virtual QSize tabSizeHint(int index) const; + virtual void tabInserted(int index); + virtual void tabRemoved(int index); + virtual void tabLayoutChange(); + + bool event(QEvent *); + void resizeEvent(QResizeEvent *); + void showEvent(QShowEvent *); + void hideEvent(QHideEvent *); + void paintEvent(QPaintEvent *); + void mousePressEvent (QMouseEvent *); + void mouseMoveEvent (QMouseEvent *); + void mouseReleaseEvent (QMouseEvent *); + + void wheelEvent(QWheelEvent *event); + + void keyPressEvent(QKeyEvent *); + void changeEvent(QEvent *); + void initStyleOption(QStyleOptionTab *option, int tabIndex) const; +# 212 "/usr/include/qt4/QtGui/qtabbar.h" + friend class QAccessibleTabBar; +private: + QTabBar(const QTabBar &); QTabBar &operator=(const QTabBar &); + inline QTabBarPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QTabBarPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QTabBarPrivate; + + +}; + + + + + + +# 52 "/usr/include/qt4/QtGui/qstyleoption.h" 2 +# 1 "/usr/include/qt4/QtGui/qtabwidget.h" 1 +# 48 "/usr/include/qt4/QtGui/qtabwidget.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QTabBar; +class QTabWidgetPrivate; +class QStyleOptionTabWidgetFrame; + +class QTabWidget : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + +public: + explicit QTabWidget(QWidget *parent = 0); + ~QTabWidget(); + + int addTab(QWidget *widget, const QString &); + int addTab(QWidget *widget, const QIcon& icon, const QString &label); + + int insertTab(int index, QWidget *widget, const QString &); + int insertTab(int index, QWidget *widget, const QIcon& icon, const QString &label); + + void removeTab(int index); + + bool isTabEnabled(int index) const; + void setTabEnabled(int index, bool); + + QString tabText(int index) const; + void setTabText(int index, const QString &); + + QIcon tabIcon(int index) const; + void setTabIcon(int index, const QIcon & icon); + + + void setTabToolTip(int index, const QString & tip); + QString tabToolTip(int index) const; + + + + void setTabWhatsThis(int index, const QString &text); + QString tabWhatsThis(int index) const; + + + int currentIndex() const; + QWidget *currentWidget() const; + QWidget *widget(int index) const; + int indexOf(QWidget *widget) const; + int count() const; + + enum TabPosition { North, South, West, East + + + + }; + TabPosition tabPosition() const; + void setTabPosition(TabPosition); + + bool tabsClosable() const; + void setTabsClosable(bool closeable); + + bool isMovable() const; + void setMovable(bool movable); + + enum TabShape { Rounded, Triangular }; + TabShape tabShape() const; + void setTabShape(TabShape s); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + int heightForWidth(int width) const; + + void setCornerWidget(QWidget * w, Qt::Corner corner = Qt::TopRightCorner); + QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const; + + Qt::TextElideMode elideMode() const; + void setElideMode(Qt::TextElideMode); + + QSize iconSize() const; + void setIconSize(const QSize &size); + + bool usesScrollButtons() const; + void setUsesScrollButtons(bool useButtons); + + bool documentMode() const; + void setDocumentMode(bool set); + + void clear(); + +public : + void setCurrentIndex(int index); + void setCurrentWidget(QWidget *widget); + +protected: + void currentChanged(int index); + void tabCloseRequested(int index); + +protected: + virtual void tabInserted(int index); + virtual void tabRemoved(int index); + + void showEvent(QShowEvent *); + void resizeEvent(QResizeEvent *); + void keyPressEvent(QKeyEvent *); + void paintEvent(QPaintEvent *); + void setTabBar(QTabBar *); + QTabBar* tabBar() const; + void changeEvent(QEvent *); + bool event(QEvent *); + void initStyleOption(QStyleOptionTabWidgetFrame *option) const; +# 237 "/usr/include/qt4/QtGui/qtabwidget.h" +private: + inline QTabWidgetPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QTabWidgetPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QTabWidgetPrivate; + QTabWidget(const QTabWidget &); QTabWidget &operator=(const QTabWidget &); + + + + void setUpLayout(bool = false); + friend class Q3TabDialog; +}; + + + + + + +# 53 "/usr/include/qt4/QtGui/qstyleoption.h" 2 +# 1 "/usr/include/qt4/QtGui/qrubberband.h" 1 +# 47 "/usr/include/qt4/QtGui/qrubberband.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QRubberBandPrivate; +class QStyleOptionRubberBand; + +class QRubberBand : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + enum Shape { Line, Rectangle }; + explicit QRubberBand(Shape, QWidget * =0); + ~QRubberBand(); + + Shape shape() const; + + void setGeometry(const QRect &r); + + inline void setGeometry(int x, int y, int w, int h); + inline void move(int x, int y); + inline void move(const QPoint &p) + { move(p.x(), p.y()); } + inline void resize(int w, int h) + { setGeometry(geometry().x(), geometry().y(), w, h); } + inline void resize(const QSize &s) + { resize(s.width(), s.height()); } + +protected: + bool event(QEvent *e); + void paintEvent(QPaintEvent *); + void changeEvent(QEvent *); + void showEvent(QShowEvent *); + void resizeEvent(QResizeEvent *); + void moveEvent(QMoveEvent *); + void initStyleOption(QStyleOptionRubberBand *option) const; + +private: + inline QRubberBandPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QRubberBandPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QRubberBandPrivate; +}; + +inline void QRubberBand::setGeometry(int ax, int ay, int aw, int ah) +{ setGeometry(QRect(ax, ay, aw, ah)); } +inline void QRubberBand::move(int ax, int ay) +{ setGeometry(ax, ay, width(), height()); } + + + + + + +# 54 "/usr/include/qt4/QtGui/qstyleoption.h" 2 + + +# 1 "/usr/include/qt4/QtCore/qabstractitemmodel.h" 1 +# 49 "/usr/include/qt4/QtCore/qabstractitemmodel.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QAbstractItemModel; +class QPersistentModelIndex; + +class QModelIndex +{ + friend class QAbstractItemModel; + friend class QProxyModel; +public: + inline QModelIndex() : r(-1), c(-1), p(0), m(0) {} + inline QModelIndex(const QModelIndex &other) + : r(other.r), c(other.c), p(other.p), m(other.m) {} + inline ~QModelIndex() { p = 0; m = 0; } + inline int row() const { return r; } + inline int column() const { return c; } + inline void *internalPointer() const { return p; } + inline qint64 internalId() const { return reinterpret_cast(p); } + inline QModelIndex parent() const; + inline QModelIndex sibling(int row, int column) const; + inline QModelIndex child(int row, int column) const; + inline QVariant data(int role = Qt::DisplayRole) const; + inline Qt::ItemFlags flags() const; + inline const QAbstractItemModel *model() const { return m; } + inline bool isValid() const { return (r >= 0) && (c >= 0) && (m != 0); } + inline bool operator==(const QModelIndex &other) const + { return (other.r == r) && (other.p == p) && (other.c == c) && (other.m == m); } + inline bool operator!=(const QModelIndex &other) const + { return !(*this == other); } + inline bool operator<(const QModelIndex &other) const + { + if (r < other.r) return true; + if (r == other.r) { + if (c < other.c) return true; + if (c == other.c) { + if (p < other.p) return true; + if (p == other.p) return m < other.m; + } + } + return false; } +private: + inline QModelIndex(int row, int column, void *ptr, const QAbstractItemModel *model); + int r, c; + void *p; + const QAbstractItemModel *m; +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QModelIndex)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QModelIndex"; } }; + + + QDebug operator<<(QDebug, const QModelIndex &); + + +class QPersistentModelIndexData; + +class QPersistentModelIndex +{ +public: + QPersistentModelIndex(); + QPersistentModelIndex(const QModelIndex &index); + QPersistentModelIndex(const QPersistentModelIndex &other); + ~QPersistentModelIndex(); + bool operator<(const QPersistentModelIndex &other) const; + bool operator==(const QPersistentModelIndex &other) const; + inline bool operator!=(const QPersistentModelIndex &other) const + { return !operator==(other); } + QPersistentModelIndex &operator=(const QPersistentModelIndex &other); + bool operator==(const QModelIndex &other) const; + bool operator!=(const QModelIndex &other) const; + QPersistentModelIndex &operator=(const QModelIndex &other); + operator const QModelIndex&() const; + int row() const; + int column() const; + void *internalPointer() const; + qint64 internalId() const; + QModelIndex parent() const; + QModelIndex sibling(int row, int column) const; + QModelIndex child(int row, int column) const; + QVariant data(int role = Qt::DisplayRole) const; + Qt::ItemFlags flags() const; + const QAbstractItemModel *model() const; + bool isValid() const; +private: + QPersistentModelIndexData *d; + friend uint qHash(const QPersistentModelIndex &); + + friend QDebug operator<<(QDebug, const QPersistentModelIndex &); + +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QPersistentModelIndex)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QPersistentModelIndex"; } }; + +inline uint qHash(const QPersistentModelIndex &index) +{ return qHash(index.d); } + + + + QDebug operator<<(QDebug, const QPersistentModelIndex &); + + +template class QList; +typedef QList QModelIndexList; + +class QMimeData; +class QAbstractItemModelPrivate; +template class QMap; + + +class QAbstractItemModel : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + friend class QPersistentModelIndexData; + friend class QAbstractItemViewPrivate; + friend class QIdentityProxyModel; +public: + + explicit QAbstractItemModel(QObject *parent = 0); + virtual ~QAbstractItemModel(); + + bool hasIndex(int row, int column, const QModelIndex &parent = QModelIndex()) const; + virtual QModelIndex index(int row, int column, + const QModelIndex &parent = QModelIndex()) const = 0; + virtual QModelIndex parent(const QModelIndex &child) const = 0; + + inline QModelIndex sibling(int row, int column, const QModelIndex &idx) const + { return index(row, column, parent(idx)); } + + virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0; + virtual int columnCount(const QModelIndex &parent = QModelIndex()) const = 0; + virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; + + virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const = 0; + virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + + virtual QVariant headerData(int section, Qt::Orientation orientation, + int role = Qt::DisplayRole) const; + virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, + int role = Qt::EditRole); + + virtual QMap itemData(const QModelIndex &index) const; + virtual bool setItemData(const QModelIndex &index, const QMap &roles); + + virtual QStringList mimeTypes() const; + virtual QMimeData *mimeData(const QModelIndexList &indexes) const; + virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, + int row, int column, const QModelIndex &parent); + virtual Qt::DropActions supportedDropActions() const; + + Qt::DropActions supportedDragActions() const; + void setSupportedDragActions(Qt::DropActions); + + virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); + virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); + virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); + virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); + + inline bool insertRow(int row, const QModelIndex &parent = QModelIndex()); + inline bool insertColumn(int column, const QModelIndex &parent = QModelIndex()); + inline bool removeRow(int row, const QModelIndex &parent = QModelIndex()); + inline bool removeColumn(int column, const QModelIndex &parent = QModelIndex()); + + virtual void fetchMore(const QModelIndex &parent); + virtual bool canFetchMore(const QModelIndex &parent) const; + virtual Qt::ItemFlags flags(const QModelIndex &index) const; + virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); + virtual QModelIndex buddy(const QModelIndex &index) const; + virtual QModelIndexList match(const QModelIndex &start, int role, + const QVariant &value, int hits = 1, + Qt::MatchFlags flags = + Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const; + virtual QSize span(const QModelIndex &index) const; + + const QHash &roleNames() const; + + + + + using QObject::parent; + + +protected: + void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); + void headerDataChanged(Qt::Orientation orientation, int first, int last); + void layoutChanged(); + void layoutAboutToBeChanged(); + + +private: + + void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last); + void rowsInserted(const QModelIndex &parent, int first, int last); + + void rowsAboutToBeRemoved(const QModelIndex &parent, int first, int last); + void rowsRemoved(const QModelIndex &parent, int first, int last); + + void columnsAboutToBeInserted(const QModelIndex &parent, int first, int last); + void columnsInserted(const QModelIndex &parent, int first, int last); + + void columnsAboutToBeRemoved(const QModelIndex &parent, int first, int last); + void columnsRemoved(const QModelIndex &parent, int first, int last); + + void modelAboutToBeReset(); + void modelReset(); + + void rowsAboutToBeMoved( const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow ); + void rowsMoved( const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row ); + + void columnsAboutToBeMoved( const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn ); + void columnsMoved( const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column ); + + +public : + virtual bool submit(); + virtual void revert(); + +protected: + QAbstractItemModel(QAbstractItemModelPrivate &dd, QObject *parent = 0); + + inline QModelIndex createIndex(int row, int column, void *data = 0) const; + inline QModelIndex createIndex(int row, int column, int id) const; + inline QModelIndex createIndex(int row, int column, quint32 id) const; + + void encodeData(const QModelIndexList &indexes, QDataStream &stream) const; + bool decodeData(int row, int column, const QModelIndex &parent, QDataStream &stream); + + void beginInsertRows(const QModelIndex &parent, int first, int last); + void endInsertRows(); + + void beginRemoveRows(const QModelIndex &parent, int first, int last); + void endRemoveRows(); + + bool beginMoveRows(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow); + void endMoveRows(); + + void beginInsertColumns(const QModelIndex &parent, int first, int last); + void endInsertColumns(); + + void beginRemoveColumns(const QModelIndex &parent, int first, int last); + void endRemoveColumns(); + + bool beginMoveColumns(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn); + void endMoveColumns(); + + void reset(); + + void beginResetModel(); + void endResetModel(); + + void changePersistentIndex(const QModelIndex &from, const QModelIndex &to); + void changePersistentIndexList(const QModelIndexList &from, const QModelIndexList &to); + QModelIndexList persistentIndexList() const; + + void setRoleNames(const QHash &roleNames); + +protected : + void resetInternalData(); + +private: + inline QAbstractItemModelPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractItemModelPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractItemModelPrivate; + QAbstractItemModel(const QAbstractItemModel &); QAbstractItemModel &operator=(const QAbstractItemModel &); +}; + +inline bool QAbstractItemModel::insertRow(int arow, const QModelIndex &aparent) +{ return insertRows(arow, 1, aparent); } +inline bool QAbstractItemModel::insertColumn(int acolumn, const QModelIndex &aparent) +{ return insertColumns(acolumn, 1, aparent); } +inline bool QAbstractItemModel::removeRow(int arow, const QModelIndex &aparent) +{ return removeRows(arow, 1, aparent); } +inline bool QAbstractItemModel::removeColumn(int acolumn, const QModelIndex &aparent) +{ return removeColumns(acolumn, 1, aparent); } + +inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, void *adata) const +{ return QModelIndex(arow, acolumn, adata, this); } +inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, int aid) const + + + + +{ return QModelIndex(arow, acolumn, reinterpret_cast(aid), this); } + + + +inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, quint32 aid) const + + + + +{ return QModelIndex(arow, acolumn, reinterpret_cast(aid), this); } + + + + + +class QAbstractTableModel : public QAbstractItemModel +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + explicit QAbstractTableModel(QObject *parent = 0); + ~QAbstractTableModel(); + + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, + int row, int column, const QModelIndex &parent); +protected: + QAbstractTableModel(QAbstractItemModelPrivate &dd, QObject *parent); + +private: + QAbstractTableModel(const QAbstractTableModel &); QAbstractTableModel &operator=(const QAbstractTableModel &); + QModelIndex parent(const QModelIndex &child) const; + bool hasChildren(const QModelIndex &parent) const; +}; + +class QAbstractListModel : public QAbstractItemModel +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + explicit QAbstractListModel(QObject *parent = 0); + ~QAbstractListModel(); + + QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, + int row, int column, const QModelIndex &parent); +protected: + QAbstractListModel(QAbstractItemModelPrivate &dd, QObject *parent); + +private: + QAbstractListModel(const QAbstractListModel &); QAbstractListModel &operator=(const QAbstractListModel &); + QModelIndex parent(const QModelIndex &child) const; + int columnCount(const QModelIndex &parent) const; + bool hasChildren(const QModelIndex &parent) const; +}; + + + +inline QModelIndex::QModelIndex(int arow, int acolumn, void *adata, + const QAbstractItemModel *amodel) + : r(arow), c(acolumn), p(adata), m(amodel) {} + +inline QModelIndex QModelIndex::parent() const +{ return m ? m->parent(*this) : QModelIndex(); } + +inline QModelIndex QModelIndex::sibling(int arow, int acolumn) const +{ return m ? (r == arow && c == acolumn) ? *this : m->index(arow, acolumn, m->parent(*this)) : QModelIndex(); } + +inline QModelIndex QModelIndex::child(int arow, int acolumn) const +{ return m ? m->index(arow, acolumn, *this) : QModelIndex(); } + +inline QVariant QModelIndex::data(int arole) const +{ return m ? m->data(*this, arole) : QVariant(); } + +inline Qt::ItemFlags QModelIndex::flags() const +{ return m ? m->flags(*this) : Qt::ItemFlags(0); } + +inline uint qHash(const QModelIndex &index) +{ return uint((index.row() << 4) + index.column() + index.internalId()); } + + + + +# 57 "/usr/include/qt4/QtGui/qstyleoption.h" 2 + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QDebug; + +class QStyleOption +{ +public: + enum OptionType { + SO_Default, SO_FocusRect, SO_Button, SO_Tab, SO_MenuItem, + SO_Frame, SO_ProgressBar, SO_ToolBox, SO_Header, SO_Q3DockWindow, + SO_DockWidget, SO_Q3ListViewItem, SO_ViewItem, SO_TabWidgetFrame, + SO_TabBarBase, SO_RubberBand, SO_ToolBar, SO_GraphicsItem, + + SO_Complex = 0xf0000, SO_Slider, SO_SpinBox, SO_ToolButton, SO_ComboBox, + SO_Q3ListView, SO_TitleBar, SO_GroupBox, SO_SizeGrip, + + SO_CustomBase = 0xf00, + SO_ComplexCustomBase = 0xf000000 + }; + + enum StyleOptionType { Type = SO_Default }; + enum StyleOptionVersion { Version = 1 }; + + int version; + int type; + QStyle::State state; + Qt::LayoutDirection direction; + QRect rect; + QFontMetrics fontMetrics; + QPalette palette; + + QStyleOption(int version = QStyleOption::Version, int type = SO_Default); + QStyleOption(const QStyleOption &other); + ~QStyleOption(); + + void init(const QWidget *w); + inline void initFrom(const QWidget *w) { init(w); } + QStyleOption &operator=(const QStyleOption &other); +}; + +class QStyleOptionFocusRect : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_FocusRect }; + enum StyleOptionVersion { Version = 1 }; + + QColor backgroundColor; + + QStyleOptionFocusRect(); + QStyleOptionFocusRect(const QStyleOptionFocusRect &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionFocusRect(int version); +}; + +class QStyleOptionFrame : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Frame }; + enum StyleOptionVersion { Version = 1 }; + + int lineWidth; + int midLineWidth; + + QStyleOptionFrame(); + QStyleOptionFrame(const QStyleOptionFrame &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionFrame(int version); +}; + +class QStyleOptionFrameV2 : public QStyleOptionFrame +{ +public: + enum StyleOptionVersion { Version = 2 }; + enum FrameFeature { + None = 0x00, + Flat = 0x01 + }; + typedef QFlags FrameFeatures; + FrameFeatures features; + + QStyleOptionFrameV2(); + QStyleOptionFrameV2(const QStyleOptionFrameV2 &other) : QStyleOptionFrame(Version) { *this = other; } + QStyleOptionFrameV2(const QStyleOptionFrame &other); + QStyleOptionFrameV2 &operator=(const QStyleOptionFrame &other); + +protected: + QStyleOptionFrameV2(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionFrameV2::FrameFeatures::enum_type f1, QStyleOptionFrameV2::FrameFeatures::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionFrameV2::FrameFeatures::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionFrameV2::FrameFeatures::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + +class QStyleOptionFrameV3 : public QStyleOptionFrameV2 +{ +public: + enum StyleOptionVersion { Version = 3 }; + QFrame::Shape frameShape : 4; + uint unused : 28; + + QStyleOptionFrameV3(); + QStyleOptionFrameV3(const QStyleOptionFrameV3 &other) : QStyleOptionFrameV2(Version) { *this = other; } + QStyleOptionFrameV3(const QStyleOptionFrame &other); + QStyleOptionFrameV3 &operator=(const QStyleOptionFrame &other); + +protected: + QStyleOptionFrameV3(int version); +}; + + + +class QStyleOptionTabWidgetFrame : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_TabWidgetFrame }; + enum StyleOptionVersion { Version = 1 }; + + int lineWidth; + int midLineWidth; + QTabBar::Shape shape; + QSize tabBarSize; + QSize rightCornerWidgetSize; + QSize leftCornerWidgetSize; + + QStyleOptionTabWidgetFrame(); + inline QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other) + : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionTabWidgetFrame(int version); +}; + +class QStyleOptionTabWidgetFrameV2 : public QStyleOptionTabWidgetFrame +{ +public: + enum StyleOptionVersion { Version = 2 }; + + QRect tabBarRect; + QRect selectedTabRect; + + QStyleOptionTabWidgetFrameV2(); + QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrameV2 &other) : + QStyleOptionTabWidgetFrame(Version) { *this = other; } + QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other); + QStyleOptionTabWidgetFrameV2 &operator=(const QStyleOptionTabWidgetFrame &other); + +protected: + QStyleOptionTabWidgetFrameV2(int version); +}; + + + + + +class QStyleOptionTabBarBase : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_TabBarBase }; + enum StyleOptionVersion { Version = 1 }; + + QTabBar::Shape shape; + QRect tabBarRect; + QRect selectedTabRect; + + QStyleOptionTabBarBase(); + QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionTabBarBase(int version); +}; + +class QStyleOptionTabBarBaseV2 : public QStyleOptionTabBarBase +{ +public: + enum StyleOptionVersion { Version = 2 }; + bool documentMode; + QStyleOptionTabBarBaseV2(); + QStyleOptionTabBarBaseV2(const QStyleOptionTabBarBaseV2 &other) : QStyleOptionTabBarBase(Version) { *this = other; } + QStyleOptionTabBarBaseV2(const QStyleOptionTabBarBase &other); + QStyleOptionTabBarBaseV2 &operator=(const QStyleOptionTabBarBase &other); + +protected: + QStyleOptionTabBarBaseV2(int version); +}; + + + +class QStyleOptionHeader : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Header }; + enum StyleOptionVersion { Version = 1 }; + + enum SectionPosition { Beginning, Middle, End, OnlyOneSection }; + enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected, + NextAndPreviousAreSelected }; + enum SortIndicator { None, SortUp, SortDown }; + + int section; + QString text; + Qt::Alignment textAlignment; + QIcon icon; + Qt::Alignment iconAlignment; + SectionPosition position; + SelectedPosition selectedPosition; + SortIndicator sortIndicator; + Qt::Orientation orientation; + + QStyleOptionHeader(); + QStyleOptionHeader(const QStyleOptionHeader &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionHeader(int version); +}; + +class QStyleOptionButton : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Button }; + enum StyleOptionVersion { Version = 1 }; + + enum ButtonFeature { None = 0x00, Flat = 0x01, HasMenu = 0x02, DefaultButton = 0x04, + AutoDefaultButton = 0x08, CommandLinkButton = 0x10 }; + typedef QFlags ButtonFeatures; + + ButtonFeatures features; + QString text; + QIcon icon; + QSize iconSize; + + QStyleOptionButton(); + QStyleOptionButton(const QStyleOptionButton &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionButton(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionButton::ButtonFeatures::enum_type f1, QStyleOptionButton::ButtonFeatures::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionButton::ButtonFeatures::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionButton::ButtonFeatures::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + +class QStyleOptionTab : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Tab }; + enum StyleOptionVersion { Version = 1 }; + + enum TabPosition { Beginning, Middle, End, OnlyOneTab }; + enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected }; + enum CornerWidget { NoCornerWidgets = 0x00, LeftCornerWidget = 0x01, + RightCornerWidget = 0x02 }; + typedef QFlags CornerWidgets; + + QTabBar::Shape shape; + QString text; + QIcon icon; + int row; + TabPosition position; + SelectedPosition selectedPosition; + CornerWidgets cornerWidgets; + + QStyleOptionTab(); + QStyleOptionTab(const QStyleOptionTab &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionTab(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionTab::CornerWidgets::enum_type f1, QStyleOptionTab::CornerWidgets::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionTab::CornerWidgets::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionTab::CornerWidgets::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +class QStyleOptionTabV2 : public QStyleOptionTab +{ +public: + enum StyleOptionVersion { Version = 2 }; + QSize iconSize; + QStyleOptionTabV2(); + QStyleOptionTabV2(const QStyleOptionTabV2 &other) : QStyleOptionTab(Version) { *this = other; } + QStyleOptionTabV2(const QStyleOptionTab &other); + QStyleOptionTabV2 &operator=(const QStyleOptionTab &other); + +protected: + QStyleOptionTabV2(int version); +}; + +class QStyleOptionTabV3 : public QStyleOptionTabV2 +{ +public: + enum StyleOptionVersion { Version = 3 }; + bool documentMode; + QSize leftButtonSize; + QSize rightButtonSize; + QStyleOptionTabV3(); + QStyleOptionTabV3(const QStyleOptionTabV3 &other) : QStyleOptionTabV2(Version) { *this = other; } + QStyleOptionTabV3(const QStyleOptionTabV2 &other) : QStyleOptionTabV2(Version) { *this = other; } + QStyleOptionTabV3(const QStyleOptionTab &other); + QStyleOptionTabV3 &operator=(const QStyleOptionTab &other); + +protected: + QStyleOptionTabV3(int version); +}; + + + + + + +class QStyleOptionToolBar : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_ToolBar }; + enum StyleOptionVersion { Version = 1 }; + enum ToolBarPosition { Beginning, Middle, End, OnlyOne }; + enum ToolBarFeature { None = 0x0, Movable = 0x1 }; + typedef QFlags ToolBarFeatures; + ToolBarPosition positionOfLine; + ToolBarPosition positionWithinLine; + Qt::ToolBarArea toolBarArea; + ToolBarFeatures features; + int lineWidth; + int midLineWidth; + QStyleOptionToolBar(); + QStyleOptionToolBar(const QStyleOptionToolBar &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionToolBar(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionToolBar::ToolBarFeatures::enum_type f1, QStyleOptionToolBar::ToolBarFeatures::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionToolBar::ToolBarFeatures::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionToolBar::ToolBarFeatures::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + + +class QStyleOptionProgressBar : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_ProgressBar }; + enum StyleOptionVersion { Version = 1 }; + + int minimum; + int maximum; + int progress; + QString text; + Qt::Alignment textAlignment; + bool textVisible; + + QStyleOptionProgressBar(); + QStyleOptionProgressBar(const QStyleOptionProgressBar &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionProgressBar(int version); +}; + + +class QStyleOptionProgressBarV2 : public QStyleOptionProgressBar +{ +public: + enum StyleOptionType { Type = SO_ProgressBar }; + enum StyleOptionVersion { Version = 2 }; + Qt::Orientation orientation; + bool invertedAppearance; + bool bottomToTop; + + QStyleOptionProgressBarV2(); + QStyleOptionProgressBarV2(const QStyleOptionProgressBar &other); + QStyleOptionProgressBarV2(const QStyleOptionProgressBarV2 &other); + QStyleOptionProgressBarV2 &operator=(const QStyleOptionProgressBar &other); + +protected: + QStyleOptionProgressBarV2(int version); +}; + +class QStyleOptionMenuItem : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_MenuItem }; + enum StyleOptionVersion { Version = 1 }; + + enum MenuItemType { Normal, DefaultItem, Separator, SubMenu, Scroller, TearOff, Margin, + EmptyArea }; + enum CheckType { NotCheckable, Exclusive, NonExclusive }; + + MenuItemType menuItemType; + CheckType checkType; + bool checked; + bool menuHasCheckableItems; + QRect menuRect; + QString text; + QIcon icon; + int maxIconWidth; + int tabWidth; + QFont font; + + QStyleOptionMenuItem(); + QStyleOptionMenuItem(const QStyleOptionMenuItem &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionMenuItem(int version); +}; + +class QStyleOptionQ3ListViewItem : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Q3ListViewItem }; + enum StyleOptionVersion { Version = 1 }; + + enum Q3ListViewItemFeature { None = 0x00, Expandable = 0x01, MultiLine = 0x02, Visible = 0x04, + ParentControl = 0x08 }; + typedef QFlags Q3ListViewItemFeatures; + + Q3ListViewItemFeatures features; + int height; + int totalHeight; + int itemY; + int childCount; + + QStyleOptionQ3ListViewItem(); + QStyleOptionQ3ListViewItem(const QStyleOptionQ3ListViewItem &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionQ3ListViewItem(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionQ3ListViewItem::Q3ListViewItemFeatures::enum_type f1, QStyleOptionQ3ListViewItem::Q3ListViewItemFeatures::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionQ3ListViewItem::Q3ListViewItemFeatures::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionQ3ListViewItem::Q3ListViewItemFeatures::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +class QStyleOptionQ3DockWindow : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Q3DockWindow }; + enum StyleOptionVersion { Version = 1 }; + + bool docked; + bool closeEnabled; + + QStyleOptionQ3DockWindow(); + QStyleOptionQ3DockWindow(const QStyleOptionQ3DockWindow &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionQ3DockWindow(int version); +}; + +class QStyleOptionDockWidget : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_DockWidget }; + enum StyleOptionVersion { Version = 1 }; + + QString title; + bool closable; + bool movable; + bool floatable; + + QStyleOptionDockWidget(); + QStyleOptionDockWidget(const QStyleOptionDockWidget &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionDockWidget(int version); +}; + +class QStyleOptionDockWidgetV2 : public QStyleOptionDockWidget +{ +public: + enum StyleOptionVersion { Version = 2 }; + + bool verticalTitleBar; + + QStyleOptionDockWidgetV2(); + QStyleOptionDockWidgetV2(const QStyleOptionDockWidgetV2 &other) + : QStyleOptionDockWidget(Version) { *this = other; } + QStyleOptionDockWidgetV2(const QStyleOptionDockWidget &other); + QStyleOptionDockWidgetV2 &operator = (const QStyleOptionDockWidget &other); + +protected: + QStyleOptionDockWidgetV2(int version); +}; + +class QStyleOptionViewItem : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_ViewItem }; + enum StyleOptionVersion { Version = 1 }; + + enum Position { Left, Right, Top, Bottom }; + + Qt::Alignment displayAlignment; + Qt::Alignment decorationAlignment; + Qt::TextElideMode textElideMode; + Position decorationPosition; + QSize decorationSize; + QFont font; + bool showDecorationSelected; + + QStyleOptionViewItem(); + QStyleOptionViewItem(const QStyleOptionViewItem &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionViewItem(int version); +}; + +class QStyleOptionViewItemV2 : public QStyleOptionViewItem +{ +public: + enum StyleOptionVersion { Version = 2 }; + + enum ViewItemFeature { + None = 0x00, + WrapText = 0x01, + Alternate = 0x02, + HasCheckIndicator = 0x04, + HasDisplay = 0x08, + HasDecoration = 0x10 + }; + typedef QFlags ViewItemFeatures; + + ViewItemFeatures features; + + QStyleOptionViewItemV2(); + QStyleOptionViewItemV2(const QStyleOptionViewItemV2 &other) : QStyleOptionViewItem(Version) { *this = other; } + QStyleOptionViewItemV2(const QStyleOptionViewItem &other); + QStyleOptionViewItemV2 &operator=(const QStyleOptionViewItem &other); + +protected: + QStyleOptionViewItemV2(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionViewItemV2::ViewItemFeatures::enum_type f1, QStyleOptionViewItemV2::ViewItemFeatures::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionViewItemV2::ViewItemFeatures::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionViewItemV2::ViewItemFeatures::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +class QStyleOptionViewItemV3 : public QStyleOptionViewItemV2 +{ +public: + enum StyleOptionVersion { Version = 3 }; + + QLocale locale; + const QWidget *widget; + + QStyleOptionViewItemV3(); + QStyleOptionViewItemV3(const QStyleOptionViewItemV3 &other) + : QStyleOptionViewItemV2(Version) { *this = other; } + QStyleOptionViewItemV3(const QStyleOptionViewItem &other); + QStyleOptionViewItemV3 &operator = (const QStyleOptionViewItem &other); + +protected: + QStyleOptionViewItemV3(int version); +}; + + +class QStyleOptionViewItemV4 : public QStyleOptionViewItemV3 +{ +public: + enum StyleOptionVersion { Version = 4 }; + enum ViewItemPosition { Invalid, Beginning, Middle, End, OnlyOne }; + + QModelIndex index; + Qt::CheckState checkState; + QIcon icon; + QString text; + ViewItemPosition viewItemPosition; + QBrush backgroundBrush; + + QStyleOptionViewItemV4(); + QStyleOptionViewItemV4(const QStyleOptionViewItemV4 &other) + : QStyleOptionViewItemV3(Version) { *this = other; } + QStyleOptionViewItemV4(const QStyleOptionViewItem &other); + QStyleOptionViewItemV4 &operator = (const QStyleOptionViewItem &other); + +protected: + QStyleOptionViewItemV4(int version); +}; + + +class QStyleOptionToolBox : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_ToolBox }; + enum StyleOptionVersion { Version = 1 }; + + QString text; + QIcon icon; + + QStyleOptionToolBox(); + QStyleOptionToolBox(const QStyleOptionToolBox &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionToolBox(int version); +}; + +class QStyleOptionToolBoxV2 : public QStyleOptionToolBox +{ +public: + enum StyleOptionVersion { Version = 2 }; + enum TabPosition { Beginning, Middle, End, OnlyOneTab }; + enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected }; + + TabPosition position; + SelectedPosition selectedPosition; + + QStyleOptionToolBoxV2(); + QStyleOptionToolBoxV2(const QStyleOptionToolBoxV2 &other) : QStyleOptionToolBox(Version) { *this = other; } + QStyleOptionToolBoxV2(const QStyleOptionToolBox &other); + QStyleOptionToolBoxV2 &operator=(const QStyleOptionToolBox &other); + +protected: + QStyleOptionToolBoxV2(int version); +}; + + +class QStyleOptionRubberBand : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_RubberBand }; + enum StyleOptionVersion { Version = 1 }; + + QRubberBand::Shape shape; + bool opaque; + + QStyleOptionRubberBand(); + QStyleOptionRubberBand(const QStyleOptionRubberBand &other) : QStyleOption(Version, Type) { *this = other; } + +protected: + QStyleOptionRubberBand(int version); +}; + + + +class QStyleOptionComplex : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_Complex }; + enum StyleOptionVersion { Version = 1 }; + + QStyle::SubControls subControls; + QStyle::SubControls activeSubControls; + + QStyleOptionComplex(int version = QStyleOptionComplex::Version, int type = SO_Complex); + QStyleOptionComplex(const QStyleOptionComplex &other) : QStyleOption(Version, Type) { *this = other; } +}; + + +class QStyleOptionSlider : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_Slider }; + enum StyleOptionVersion { Version = 1 }; + + Qt::Orientation orientation; + int minimum; + int maximum; + QSlider::TickPosition tickPosition; + int tickInterval; + bool upsideDown; + int sliderPosition; + int sliderValue; + int singleStep; + int pageStep; + qreal notchTarget; + bool dialWrapping; + + QStyleOptionSlider(); + QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; } + +protected: + QStyleOptionSlider(int version); +}; + + + +class QStyleOptionSpinBox : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_SpinBox }; + enum StyleOptionVersion { Version = 1 }; + + QAbstractSpinBox::ButtonSymbols buttonSymbols; + QAbstractSpinBox::StepEnabled stepEnabled; + bool frame; + + QStyleOptionSpinBox(); + QStyleOptionSpinBox(const QStyleOptionSpinBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } + +protected: + QStyleOptionSpinBox(int version); +}; + + +class QStyleOptionQ3ListView : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_Q3ListView }; + enum StyleOptionVersion { Version = 1 }; + + QList items; + QPalette viewportPalette; + QPalette::ColorRole viewportBGRole; + int sortColumn; + int itemMargin; + int treeStepSize; + bool rootIsDecorated; + + QStyleOptionQ3ListView(); + QStyleOptionQ3ListView(const QStyleOptionQ3ListView &other) : QStyleOptionComplex(Version, Type) { *this = other; } + +protected: + QStyleOptionQ3ListView(int version); +}; + +class QStyleOptionToolButton : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_ToolButton }; + enum StyleOptionVersion { Version = 1 }; + + enum ToolButtonFeature { None = 0x00, Arrow = 0x01, Menu = 0x04, MenuButtonPopup = Menu, PopupDelay = 0x08, + HasMenu = 0x10 }; + typedef QFlags ToolButtonFeatures; + + ToolButtonFeatures features; + QIcon icon; + QSize iconSize; + QString text; + Qt::ArrowType arrowType; + Qt::ToolButtonStyle toolButtonStyle; + QPoint pos; + QFont font; + + QStyleOptionToolButton(); + QStyleOptionToolButton(const QStyleOptionToolButton &other) : QStyleOptionComplex(Version, Type) { *this = other; } + +protected: + QStyleOptionToolButton(int version); +}; + +constexpr inline QFlags operator|(QStyleOptionToolButton::ToolButtonFeatures::enum_type f1, QStyleOptionToolButton::ToolButtonFeatures::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QStyleOptionToolButton::ToolButtonFeatures::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QStyleOptionToolButton::ToolButtonFeatures::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +class QStyleOptionComboBox : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_ComboBox }; + enum StyleOptionVersion { Version = 1 }; + + bool editable; + QRect popupRect; + bool frame; + QString currentText; + QIcon currentIcon; + QSize iconSize; + + QStyleOptionComboBox(); + QStyleOptionComboBox(const QStyleOptionComboBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } + +protected: + QStyleOptionComboBox(int version); +}; + +class QStyleOptionTitleBar : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_TitleBar }; + enum StyleOptionVersion { Version = 1 }; + + QString text; + QIcon icon; + int titleBarState; + Qt::WindowFlags titleBarFlags; + + QStyleOptionTitleBar(); + QStyleOptionTitleBar(const QStyleOptionTitleBar &other) : QStyleOptionComplex(Version, Type) { *this = other; } + +protected: + QStyleOptionTitleBar(int version); +}; + +class QStyleOptionGroupBox : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_GroupBox }; + enum StyleOptionVersion { Version = 1 }; + + QStyleOptionFrameV2::FrameFeatures features; + QString text; + Qt::Alignment textAlignment; + QColor textColor; + int lineWidth; + int midLineWidth; + + QStyleOptionGroupBox(); + QStyleOptionGroupBox(const QStyleOptionGroupBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } +protected: + QStyleOptionGroupBox(int version); +}; + +class QStyleOptionSizeGrip : public QStyleOptionComplex +{ +public: + enum StyleOptionType { Type = SO_SizeGrip }; + enum StyleOptionVersion { Version = 1 }; + + Qt::Corner corner; + + QStyleOptionSizeGrip(); + QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other) : QStyleOptionComplex(Version, Type) { *this = other; } +protected: + QStyleOptionSizeGrip(int version); +}; + +class QStyleOptionGraphicsItem : public QStyleOption +{ +public: + enum StyleOptionType { Type = SO_GraphicsItem }; + enum StyleOptionVersion { Version = 1 }; + + QRectF exposedRect; + QMatrix matrix; + qreal levelOfDetail; + + QStyleOptionGraphicsItem(); + QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other) : QStyleOption(Version, Type) { *this = other; } + static qreal levelOfDetailFromTransform(const QTransform &worldTransform); +protected: + QStyleOptionGraphicsItem(int version); +}; + +template +T qstyleoption_cast(const QStyleOption *opt) +{ + if (opt && opt->version >= static_cast(0)->Version && (opt->type == static_cast(0)->Type + || int(static_cast(0)->Type) == QStyleOption::SO_Default + || (int(static_cast(0)->Type) == QStyleOption::SO_Complex + && opt->type > QStyleOption::SO_Complex))) + return static_cast(opt); + return 0; +} + +template +T qstyleoption_cast(QStyleOption *opt) +{ + if (opt && opt->version >= static_cast(0)->Version && (opt->type == static_cast(0)->Type + || int(static_cast(0)->Type) == QStyleOption::SO_Default + || (int(static_cast(0)->Type) == QStyleOption::SO_Complex + && opt->type > QStyleOption::SO_Complex))) + return static_cast(opt); + return 0; +} + + +class QStyleHintReturn { +public: + enum HintReturnType { + SH_Default=0xf000, SH_Mask, SH_Variant + }; + + enum StyleOptionType { Type = SH_Default }; + enum StyleOptionVersion { Version = 1 }; + + QStyleHintReturn(int version = QStyleOption::Version, int type = SH_Default); + ~QStyleHintReturn(); + + int version; + int type; +}; + +class QStyleHintReturnMask : public QStyleHintReturn { +public: + enum StyleOptionType { Type = SH_Mask }; + enum StyleOptionVersion { Version = 1 }; + + QStyleHintReturnMask(); + + QRegion region; +}; + +class QStyleHintReturnVariant : public QStyleHintReturn { +public: + enum StyleOptionType { Type = SH_Variant }; + enum StyleOptionVersion { Version = 1 }; + + QStyleHintReturnVariant(); + + QVariant variant; +}; + +template +T qstyleoption_cast(const QStyleHintReturn *hint) +{ + if (hint && hint->version <= static_cast(0)->Version && + (hint->type == static_cast(0)->Type || int(static_cast(0)->Type) == QStyleHintReturn::SH_Default)) + return static_cast(hint); + return 0; +} + +template +T qstyleoption_cast(QStyleHintReturn *hint) +{ + if (hint && hint->version <= static_cast(0)->Version && + (hint->type == static_cast(0)->Type || int(static_cast(0)->Type) == QStyleHintReturn::SH_Default)) + return static_cast(hint); + return 0; +} + + + QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType); + QDebug operator<<(QDebug debug, const QStyleOption &option); + + + + + +# 47 "/usr/include/qt4/QtGui/qabstractitemdelegate.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QPainter; +class QModelIndex; +class QAbstractItemModel; +class QAbstractItemView; +class QHelpEvent; + +class QAbstractItemDelegate : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + + enum EndEditHint { + NoHint, + EditNextItem, + EditPreviousItem, + SubmitModelCache, + RevertModelCache + }; + + explicit QAbstractItemDelegate(QObject *parent = 0); + virtual ~QAbstractItemDelegate(); + + + virtual void paint(QPainter *painter, + const QStyleOptionViewItem &option, + const QModelIndex &index) const = 0; + + virtual QSize sizeHint(const QStyleOptionViewItem &option, + const QModelIndex &index) const = 0; + + + virtual QWidget *createEditor(QWidget *parent, + const QStyleOptionViewItem &option, + const QModelIndex &index) const; + + virtual void setEditorData(QWidget *editor, const QModelIndex &index) const; + + virtual void setModelData(QWidget *editor, + QAbstractItemModel *model, + const QModelIndex &index) const; + + virtual void updateEditorGeometry(QWidget *editor, + const QStyleOptionViewItem &option, + const QModelIndex &index) const; + + + virtual bool editorEvent(QEvent *event, + QAbstractItemModel *model, + const QStyleOptionViewItem &option, + const QModelIndex &index); + + static QString elidedText(const QFontMetrics &fontMetrics, int width, + Qt::TextElideMode mode, const QString &text); + +public : + bool helpEvent(QHelpEvent *event, + QAbstractItemView *view, + const QStyleOptionViewItem &option, + const QModelIndex &index); + +protected: + void commitData(QWidget *editor); + void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint = NoHint); + void sizeHintChanged(const QModelIndex &); + +protected: + QAbstractItemDelegate(QObjectPrivate &, QObject *parent = 0); +private: + QAbstractItemDelegate(const QAbstractItemDelegate &); QAbstractItemDelegate &operator=(const QAbstractItemDelegate &); +}; + + + + + + +# 47 "/usr/include/qt4/QtGui/qcombobox.h" 2 + + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + +class QAbstractItemView; +class QLineEdit; +class QComboBoxPrivate; +class QCompleter; + +class QComboBox : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + + + + + + + + + +public: + explicit QComboBox(QWidget *parent = 0); + ~QComboBox(); + + int maxVisibleItems() const; + void setMaxVisibleItems(int maxItems); + + int count() const; + void setMaxCount(int max); + int maxCount() const; + + + bool autoCompletion() const; + void setAutoCompletion(bool enable); + + Qt::CaseSensitivity autoCompletionCaseSensitivity() const; + void setAutoCompletionCaseSensitivity(Qt::CaseSensitivity sensitivity); + + + bool duplicatesEnabled() const; + void setDuplicatesEnabled(bool enable); + + void setFrame(bool); + bool hasFrame() const; + + inline int findText(const QString &text, + Qt::MatchFlags flags = static_cast(Qt::MatchExactly|Qt::MatchCaseSensitive)) const + { return findData(text, Qt::DisplayRole, flags); } + int findData(const QVariant &data, int role = Qt::UserRole, + Qt::MatchFlags flags = static_cast(Qt::MatchExactly|Qt::MatchCaseSensitive)) const; + + enum InsertPolicy { + NoInsert, + InsertAtTop, + InsertAtCurrent, + InsertAtBottom, + InsertAfterCurrent, + InsertBeforeCurrent, + InsertAlphabetically +# 136 "/usr/include/qt4/QtGui/qcombobox.h" + }; + + + + + InsertPolicy insertPolicy() const; + void setInsertPolicy(InsertPolicy policy); + + enum SizeAdjustPolicy { + AdjustToContents, + AdjustToContentsOnFirstShow, + AdjustToMinimumContentsLength, + AdjustToMinimumContentsLengthWithIcon + }; + + SizeAdjustPolicy sizeAdjustPolicy() const; + void setSizeAdjustPolicy(SizeAdjustPolicy policy); + int minimumContentsLength() const; + void setMinimumContentsLength(int characters); + QSize iconSize() const; + void setIconSize(const QSize &size); + + bool isEditable() const; + void setEditable(bool editable); + void setLineEdit(QLineEdit *edit); + QLineEdit *lineEdit() const; + + void setValidator(const QValidator *v); + const QValidator *validator() const; + + + + void setCompleter(QCompleter *c); + QCompleter *completer() const; + + + QAbstractItemDelegate *itemDelegate() const; + void setItemDelegate(QAbstractItemDelegate *delegate); + + QAbstractItemModel *model() const; + void setModel(QAbstractItemModel *model); + + QModelIndex rootModelIndex() const; + void setRootModelIndex(const QModelIndex &index); + + int modelColumn() const; + void setModelColumn(int visibleColumn); + + int currentIndex() const; + + QString currentText() const; + + QString itemText(int index) const; + QIcon itemIcon(int index) const; + QVariant itemData(int index, int role = Qt::UserRole) const; + + inline void addItem(const QString &text, const QVariant &userData = QVariant()); + inline void addItem(const QIcon &icon, const QString &text, + const QVariant &userData = QVariant()); + inline void addItems(const QStringList &texts) + { insertItems(count(), texts); } + + inline void insertItem(int index, const QString &text, const QVariant &userData = QVariant()); + void insertItem(int index, const QIcon &icon, const QString &text, + const QVariant &userData = QVariant()); + void insertItems(int index, const QStringList &texts); + void insertSeparator(int index); + + void removeItem(int index); + + void setItemText(int index, const QString &text); + void setItemIcon(int index, const QIcon &icon); + void setItemData(int index, const QVariant &value, int role = Qt::UserRole); + + QAbstractItemView *view() const; + void setView(QAbstractItemView *itemView); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + virtual void showPopup(); + virtual void hidePopup(); + + bool event(QEvent *event); + +public : + void clear(); + void clearEditText(); + void setEditText(const QString &text); + void setCurrentIndex(int index); + +protected: + void editTextChanged(const QString &); + void activated(int index); + void activated(const QString &); + void highlighted(int index); + void highlighted(const QString &); + void currentIndexChanged(int index); + void currentIndexChanged(const QString &); + +protected: + void focusInEvent(QFocusEvent *e); + void focusOutEvent(QFocusEvent *e); + void changeEvent(QEvent *e); + void resizeEvent(QResizeEvent *e); + void paintEvent(QPaintEvent *e); + void showEvent(QShowEvent *e); + void hideEvent(QHideEvent *e); + void mousePressEvent(QMouseEvent *e); + void mouseReleaseEvent(QMouseEvent *e); + void keyPressEvent(QKeyEvent *e); + void keyReleaseEvent(QKeyEvent *e); + + void wheelEvent(QWheelEvent *e); + + void contextMenuEvent(QContextMenuEvent *e); + void inputMethodEvent(QInputMethodEvent *); + QVariant inputMethodQuery(Qt::InputMethodQuery) const; + void initStyleOption(QStyleOptionComboBox *option) const; +# 300 "/usr/include/qt4/QtGui/qcombobox.h" +protected: + QComboBox(QComboBoxPrivate &, QWidget *); + +private: + inline QComboBoxPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QComboBoxPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QComboBoxPrivate; + QComboBox(const QComboBox &); QComboBox &operator=(const QComboBox &); + + + + + + + + + + + + + + + +}; + +inline void QComboBox::addItem(const QString &atext, const QVariant &auserData) +{ insertItem(count(), atext, auserData); } +inline void QComboBox::addItem(const QIcon &aicon, const QString &atext, + const QVariant &auserData) +{ insertItem(count(), aicon, atext, auserData); } + +inline void QComboBox::insertItem(int aindex, const QString &atext, + const QVariant &auserData) +{ insertItem(aindex, QIcon(), atext, auserData); } + + + + + + +# 1 "/usr/include/qt4/QtGui/QComboBox" 2 +# 46 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QProgressBar" 1 +# 1 "/usr/include/qt4/QtGui/qprogressbar.h" 1 +# 47 "/usr/include/qt4/QtGui/qprogressbar.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QProgressBarPrivate; +class QStyleOptionProgressBar; + +class QProgressBar : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + +public: + enum Direction { TopToBottom, BottomToTop }; + + explicit QProgressBar(QWidget *parent = 0); + + int minimum() const; + int maximum() const; + + int value() const; + + virtual QString text() const; + void setTextVisible(bool visible); + bool isTextVisible() const; + + Qt::Alignment alignment() const; + void setAlignment(Qt::Alignment alignment); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + Qt::Orientation orientation() const; + + void setInvertedAppearance(bool invert); + bool invertedAppearance(); + bool invertedAppearance() const { return const_cast(this)->invertedAppearance(); } + void setTextDirection(QProgressBar::Direction textDirection); + QProgressBar::Direction textDirection(); + QProgressBar::Direction textDirection() const { return const_cast(this)->textDirection(); } + + void setFormat(const QString &format); + QString format() const; + +public : + void reset(); + void setRange(int minimum, int maximum); + void setMinimum(int minimum); + void setMaximum(int maximum); + void setValue(int value); + void setOrientation(Qt::Orientation); + +protected: + void valueChanged(int value); + +protected: + bool event(QEvent *e); + void paintEvent(QPaintEvent *); + void initStyleOption(QStyleOptionProgressBar *option) const; + +private: + inline QProgressBarPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QProgressBarPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QProgressBarPrivate; + QProgressBar(const QProgressBar &); QProgressBar &operator=(const QProgressBar &); +}; + + + + + + +# 1 "/usr/include/qt4/QtGui/QProgressBar" 2 +# 47 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QGraphicsPixmapItem" 1 +# 1 "/usr/include/qt4/QtGui/qgraphicsitem.h" 1 +# 53 "/usr/include/qt4/QtGui/qgraphicsitem.h" +class tst_QGraphicsItem; + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QBrush; +class QCursor; +class QFocusEvent; +class QGraphicsEffect; +class QGraphicsItemGroup; +class QGraphicsObject; +class QGraphicsSceneContextMenuEvent; +class QGraphicsSceneDragDropEvent; +class QGraphicsSceneEvent; +class QGraphicsSceneHoverEvent; +class QGraphicsSceneMouseEvent; +class QGraphicsSceneWheelEvent; +class QGraphicsScene; +class QGraphicsTransform; +class QGraphicsWidget; +class QInputMethodEvent; +class QKeyEvent; +class QMatrix; +class QMenu; +class QPainter; +class QPen; +class QPointF; +class QRectF; +class QStyleOptionGraphicsItem; + +class QGraphicsItemPrivate; +class QGraphicsItem +{ +public: + enum GraphicsItemFlag { + ItemIsMovable = 0x1, + ItemIsSelectable = 0x2, + ItemIsFocusable = 0x4, + ItemClipsToShape = 0x8, + ItemClipsChildrenToShape = 0x10, + ItemIgnoresTransformations = 0x20, + ItemIgnoresParentOpacity = 0x40, + ItemDoesntPropagateOpacityToChildren = 0x80, + ItemStacksBehindParent = 0x100, + ItemUsesExtendedStyleOption = 0x200, + ItemHasNoContents = 0x400, + ItemSendsGeometryChanges = 0x800, + ItemAcceptsInputMethod = 0x1000, + ItemNegativeZStacksBehindParent = 0x2000, + ItemIsPanel = 0x4000, + ItemIsFocusScope = 0x8000, + ItemSendsScenePositionChanges = 0x10000, + ItemStopsClickFocusPropagation = 0x20000, + ItemStopsFocusHandling = 0x40000 + + }; + typedef QFlags GraphicsItemFlags; + + enum GraphicsItemChange { + ItemPositionChange, + ItemMatrixChange, + ItemVisibleChange, + ItemEnabledChange, + ItemSelectedChange, + ItemParentChange, + ItemChildAddedChange, + ItemChildRemovedChange, + ItemTransformChange, + ItemPositionHasChanged, + ItemTransformHasChanged, + ItemSceneChange, + ItemVisibleHasChanged, + ItemEnabledHasChanged, + ItemSelectedHasChanged, + ItemParentHasChanged, + ItemSceneHasChanged, + ItemCursorChange, + ItemCursorHasChanged, + ItemToolTipChange, + ItemToolTipHasChanged, + ItemFlagsChange, + ItemFlagsHaveChanged, + ItemZValueChange, + ItemZValueHasChanged, + ItemOpacityChange, + ItemOpacityHasChanged, + ItemScenePositionHasChanged, + ItemRotationChange, + ItemRotationHasChanged, + ItemScaleChange, + ItemScaleHasChanged, + ItemTransformOriginPointChange, + ItemTransformOriginPointHasChanged + }; + + enum CacheMode { + NoCache, + ItemCoordinateCache, + DeviceCoordinateCache + }; + + enum PanelModality + { + NonModal, + PanelModal, + SceneModal + }; + + QGraphicsItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + virtual ~QGraphicsItem(); + + QGraphicsScene *scene() const; + + QGraphicsItem *parentItem() const; + QGraphicsItem *topLevelItem() const; + QGraphicsObject *parentObject() const; + QGraphicsWidget *parentWidget() const; + QGraphicsWidget *topLevelWidget() const; + QGraphicsWidget *window() const; + QGraphicsItem *panel() const; + void setParentItem(QGraphicsItem *parent); + QList children() const; + QList childItems() const; + bool isWidget() const; + bool isWindow() const; + bool isPanel() const; + + QGraphicsObject *toGraphicsObject(); + const QGraphicsObject *toGraphicsObject() const; + + QGraphicsItemGroup *group() const; + void setGroup(QGraphicsItemGroup *group); + + GraphicsItemFlags flags() const; + void setFlag(GraphicsItemFlag flag, bool enabled = true); + void setFlags(GraphicsItemFlags flags); + + CacheMode cacheMode() const; + void setCacheMode(CacheMode mode, const QSize &cacheSize = QSize()); + + PanelModality panelModality() const; + void setPanelModality(PanelModality panelModality); + bool isBlockedByModalPanel(QGraphicsItem **blockingPanel = 0) const; + + + QString toolTip() const; + void setToolTip(const QString &toolTip); + + + + QCursor cursor() const; + void setCursor(const QCursor &cursor); + bool hasCursor() const; + void unsetCursor(); + + + bool isVisible() const; + bool isVisibleTo(const QGraphicsItem *parent) const; + void setVisible(bool visible); + inline void hide() { setVisible(false); } + inline void show() { setVisible(true); } + + bool isEnabled() const; + void setEnabled(bool enabled); + + bool isSelected() const; + void setSelected(bool selected); + + bool acceptDrops() const; + void setAcceptDrops(bool on); + + qreal opacity() const; + qreal effectiveOpacity() const; + void setOpacity(qreal opacity); + + + + QGraphicsEffect *graphicsEffect() const; + void setGraphicsEffect(QGraphicsEffect *effect); + + + Qt::MouseButtons acceptedMouseButtons() const; + void setAcceptedMouseButtons(Qt::MouseButtons buttons); + + bool acceptsHoverEvents() const; + void setAcceptsHoverEvents(bool enabled); + bool acceptHoverEvents() const; + void setAcceptHoverEvents(bool enabled); + bool acceptTouchEvents() const; + void setAcceptTouchEvents(bool enabled); + + bool filtersChildEvents() const; + void setFiltersChildEvents(bool enabled); + + bool handlesChildEvents() const; + void setHandlesChildEvents(bool enabled); + + bool isActive() const; + void setActive(bool active); + + bool hasFocus() const; + void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason); + void clearFocus(); + + QGraphicsItem *focusProxy() const; + void setFocusProxy(QGraphicsItem *item); + + QGraphicsItem *focusItem() const; + QGraphicsItem *focusScopeItem() const; + + void grabMouse(); + void ungrabMouse(); + void grabKeyboard(); + void ungrabKeyboard(); + + + QPointF pos() const; + inline qreal x() const { return pos().x(); } + void setX(qreal x); + inline qreal y() const { return pos().y(); } + void setY(qreal y); + QPointF scenePos() const; + void setPos(const QPointF &pos); + inline void setPos(qreal x, qreal y); + inline void moveBy(qreal dx, qreal dy) { setPos(pos().x() + dx, pos().y() + dy); } + + void ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50); + inline void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50); + + + QMatrix matrix() const; + QMatrix sceneMatrix() const; + void setMatrix(const QMatrix &matrix, bool combine = false); + void resetMatrix(); + QTransform transform() const; + QTransform sceneTransform() const; + QTransform deviceTransform(const QTransform &viewportTransform) const; + QTransform itemTransform(const QGraphicsItem *other, bool *ok = 0) const; + void setTransform(const QTransform &matrix, bool combine = false); + void resetTransform(); + + void rotate(qreal angle); + void scale(qreal sx, qreal sy); + void shear(qreal sh, qreal sv); + void translate(qreal dx, qreal dy); + + void setRotation(qreal angle); + qreal rotation() const; + + void setScale(qreal scale); + qreal scale() const; + + QList transformations() const; + void setTransformations(const QList &transformations); + + QPointF transformOriginPoint() const; + void setTransformOriginPoint(const QPointF &origin); + inline void setTransformOriginPoint(qreal ax, qreal ay) + { setTransformOriginPoint(QPointF(ax,ay)); } + + virtual void advance(int phase); + + + qreal zValue() const; + void setZValue(qreal z); + void stackBefore(const QGraphicsItem *sibling); + + + virtual QRectF boundingRect() const = 0; + QRectF childrenBoundingRect() const; + QRectF sceneBoundingRect() const; + virtual QPainterPath shape() const; + bool isClipped() const; + QPainterPath clipPath() const; + virtual bool contains(const QPointF &point) const; + virtual bool collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + virtual bool collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + QList collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + bool isObscured() const; + bool isObscured(const QRectF &rect) const; + inline bool isObscured(qreal x, qreal y, qreal w, qreal h) const; + virtual bool isObscuredBy(const QGraphicsItem *item) const; + virtual QPainterPath opaqueArea() const; + + QRegion boundingRegion(const QTransform &itemToDeviceTransform) const; + qreal boundingRegionGranularity() const; + void setBoundingRegionGranularity(qreal granularity); + + + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) = 0; + void update(const QRectF &rect = QRectF()); + inline void update(qreal x, qreal y, qreal width, qreal height); + void scroll(qreal dx, qreal dy, const QRectF &rect = QRectF()); + + + QPointF mapToItem(const QGraphicsItem *item, const QPointF &point) const; + QPointF mapToParent(const QPointF &point) const; + QPointF mapToScene(const QPointF &point) const; + QPolygonF mapToItem(const QGraphicsItem *item, const QRectF &rect) const; + QPolygonF mapToParent(const QRectF &rect) const; + QPolygonF mapToScene(const QRectF &rect) const; + QRectF mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const; + QRectF mapRectToParent(const QRectF &rect) const; + QRectF mapRectToScene(const QRectF &rect) const; + QPolygonF mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const; + QPolygonF mapToParent(const QPolygonF &polygon) const; + QPolygonF mapToScene(const QPolygonF &polygon) const; + QPainterPath mapToItem(const QGraphicsItem *item, const QPainterPath &path) const; + QPainterPath mapToParent(const QPainterPath &path) const; + QPainterPath mapToScene(const QPainterPath &path) const; + QPointF mapFromItem(const QGraphicsItem *item, const QPointF &point) const; + QPointF mapFromParent(const QPointF &point) const; + QPointF mapFromScene(const QPointF &point) const; + QPolygonF mapFromItem(const QGraphicsItem *item, const QRectF &rect) const; + QPolygonF mapFromParent(const QRectF &rect) const; + QPolygonF mapFromScene(const QRectF &rect) const; + QRectF mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const; + QRectF mapRectFromParent(const QRectF &rect) const; + QRectF mapRectFromScene(const QRectF &rect) const; + QPolygonF mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const; + QPolygonF mapFromParent(const QPolygonF &polygon) const; + QPolygonF mapFromScene(const QPolygonF &polygon) const; + QPainterPath mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const; + QPainterPath mapFromParent(const QPainterPath &path) const; + QPainterPath mapFromScene(const QPainterPath &path) const; + + inline QPointF mapToItem(const QGraphicsItem *item, qreal x, qreal y) const; + inline QPointF mapToParent(qreal x, qreal y) const; + inline QPointF mapToScene(qreal x, qreal y) const; + inline QPolygonF mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const; + inline QPolygonF mapToParent(qreal x, qreal y, qreal w, qreal h) const; + inline QPolygonF mapToScene(qreal x, qreal y, qreal w, qreal h) const; + inline QRectF mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const; + inline QRectF mapRectToParent(qreal x, qreal y, qreal w, qreal h) const; + inline QRectF mapRectToScene(qreal x, qreal y, qreal w, qreal h) const; + inline QPointF mapFromItem(const QGraphicsItem *item, qreal x, qreal y) const; + inline QPointF mapFromParent(qreal x, qreal y) const; + inline QPointF mapFromScene(qreal x, qreal y) const; + inline QPolygonF mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const; + inline QPolygonF mapFromParent(qreal x, qreal y, qreal w, qreal h) const; + inline QPolygonF mapFromScene(qreal x, qreal y, qreal w, qreal h) const; + inline QRectF mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const; + inline QRectF mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const; + inline QRectF mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const; + + bool isAncestorOf(const QGraphicsItem *child) const; + QGraphicsItem *commonAncestorItem(const QGraphicsItem *other) const; + bool isUnderMouse() const; + + + QVariant data(int key) const; + void setData(int key, const QVariant &value); + + Qt::InputMethodHints inputMethodHints() const; + void setInputMethodHints(Qt::InputMethodHints hints); + + enum { + Type = 1, + UserType = 65536 + }; + virtual int type() const; + + void installSceneEventFilter(QGraphicsItem *filterItem); + void removeSceneEventFilter(QGraphicsItem *filterItem); + +protected: + void updateMicroFocus(); + virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event); + virtual bool sceneEvent(QEvent *event); + virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); + virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); + virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); + virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); + virtual void dropEvent(QGraphicsSceneDragDropEvent *event); + virtual void focusInEvent(QFocusEvent *event); + virtual void focusOutEvent(QFocusEvent *event); + virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); + virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + virtual void keyPressEvent(QKeyEvent *event); + virtual void keyReleaseEvent(QKeyEvent *event); + virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + virtual void wheelEvent(QGraphicsSceneWheelEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *event); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + + virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); + + enum Extension { + UserExtension = 0x80000000 + }; + virtual bool supportsExtension(Extension extension) const; + virtual void setExtension(Extension extension, const QVariant &variant); + virtual QVariant extension(const QVariant &variant) const; + +protected: + QGraphicsItem(QGraphicsItemPrivate &dd, + QGraphicsItem *parent, QGraphicsScene *scene); + QScopedPointer d_ptr; + + void addToIndex(); + void removeFromIndex(); + void prepareGeometryChange(); + +private: + QGraphicsItem(const QGraphicsItem &); QGraphicsItem &operator=(const QGraphicsItem &); + inline QGraphicsItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsItemPrivate; + friend class QGraphicsItemGroup; + friend class QGraphicsScene; + friend class QGraphicsScenePrivate; + friend class QGraphicsSceneFindItemBspTreeVisitor; + friend class QGraphicsSceneBspTree; + friend class QGraphicsView; + friend class QGraphicsViewPrivate; + friend class QGraphicsObject; + friend class QGraphicsWidget; + friend class QGraphicsWidgetPrivate; + friend class QGraphicsProxyWidgetPrivate; + friend class QGraphicsSceneIndex; + friend class QGraphicsSceneIndexPrivate; + friend class QGraphicsSceneBspTreeIndex; + friend class QGraphicsSceneBspTreeIndexPrivate; + friend class QGraphicsItemEffectSourcePrivate; + friend class QGraphicsTransformPrivate; + + friend class QGestureManager; + + friend class ::tst_QGraphicsItem; + friend bool qt_closestLeaf(const QGraphicsItem *, const QGraphicsItem *); + friend bool qt_closestItemFirst(const QGraphicsItem *, const QGraphicsItem *); +}; + +constexpr inline QFlags operator|(QGraphicsItem::GraphicsItemFlags::enum_type f1, QGraphicsItem::GraphicsItemFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QGraphicsItem::GraphicsItemFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QGraphicsItem::GraphicsItemFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +template <> inline const char *qobject_interface_iid() { return "com.trolltech.Qt.QGraphicsItem"; } template <> inline QGraphicsItem *qobject_cast(QObject *object) { return reinterpret_cast((object ? object->qt_metacast("com.trolltech.Qt.QGraphicsItem") : 0)); } template <> inline QGraphicsItem *qobject_cast(const QObject *object) { return reinterpret_cast((object ? const_cast(object)->qt_metacast("com.trolltech.Qt.QGraphicsItem") : 0)); } + +inline void QGraphicsItem::setPos(qreal ax, qreal ay) +{ setPos(QPointF(ax, ay)); } +inline void QGraphicsItem::ensureVisible(qreal ax, qreal ay, qreal w, qreal h, int xmargin, int ymargin) +{ ensureVisible(QRectF(ax, ay, w, h), xmargin, ymargin); } +inline void QGraphicsItem::update(qreal ax, qreal ay, qreal width, qreal height) +{ update(QRectF(ax, ay, width, height)); } +inline bool QGraphicsItem::isObscured(qreal ax, qreal ay, qreal w, qreal h) const +{ return isObscured(QRectF(ax, ay, w, h)); } +inline QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal ax, qreal ay) const +{ return mapToItem(item, QPointF(ax, ay)); } +inline QPointF QGraphicsItem::mapToParent(qreal ax, qreal ay) const +{ return mapToParent(QPointF(ax, ay)); } +inline QPointF QGraphicsItem::mapToScene(qreal ax, qreal ay) const +{ return mapToScene(QPointF(ax, ay)); } +inline QPointF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay) const +{ return mapFromItem(item, QPointF(ax, ay)); } +inline QPointF QGraphicsItem::mapFromParent(qreal ax, qreal ay) const +{ return mapFromParent(QPointF(ax, ay)); } +inline QPointF QGraphicsItem::mapFromScene(qreal ax, qreal ay) const +{ return mapFromScene(QPointF(ax, ay)); } +inline QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const +{ return mapToItem(item, QRectF(ax, ay, w, h)); } +inline QPolygonF QGraphicsItem::mapToParent(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapToParent(QRectF(ax, ay, w, h)); } +inline QPolygonF QGraphicsItem::mapToScene(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapToScene(QRectF(ax, ay, w, h)); } +inline QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const +{ return mapRectToItem(item, QRectF(ax, ay, w, h)); } +inline QRectF QGraphicsItem::mapRectToParent(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapRectToParent(QRectF(ax, ay, w, h)); } +inline QRectF QGraphicsItem::mapRectToScene(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapRectToScene(QRectF(ax, ay, w, h)); } +inline QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const +{ return mapFromItem(item, QRectF(ax, ay, w, h)); } +inline QPolygonF QGraphicsItem::mapFromParent(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapFromParent(QRectF(ax, ay, w, h)); } +inline QPolygonF QGraphicsItem::mapFromScene(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapFromScene(QRectF(ax, ay, w, h)); } +inline QRectF QGraphicsItem::mapRectFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const +{ return mapRectFromItem(item, QRectF(ax, ay, w, h)); } +inline QRectF QGraphicsItem::mapRectFromParent(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapRectFromParent(QRectF(ax, ay, w, h)); } +inline QRectF QGraphicsItem::mapRectFromScene(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapRectFromScene(QRectF(ax, ay, w, h)); } + + +class QGraphicsObject : public QObject, public QGraphicsItem +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + + + + + +public: + QGraphicsObject(QGraphicsItem *parent = 0); + + + + + + using QObject::children; + + + + void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags()); + void ungrabGesture(Qt::GestureType type); + + +protected : + void updateMicroFocus(); + +protected: + void parentChanged(); + void opacityChanged(); + void visibleChanged(); + void enabledChanged(); + void xChanged(); + void yChanged(); + void zChanged(); + void rotationChanged(); + void scaleChanged(); + void childrenChanged(); + void widthChanged(); + void heightChanged(); + +protected: + QGraphicsObject(QGraphicsItemPrivate &dd, QGraphicsItem *parent, QGraphicsScene *scene); +private: + friend class QGraphicsItem; + friend class QGraphicsItemPrivate; +}; + + +class QAbstractGraphicsShapeItemPrivate; +class QAbstractGraphicsShapeItem : public QGraphicsItem +{ +public: + QAbstractGraphicsShapeItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QAbstractGraphicsShapeItem(); + + QPen pen() const; + void setPen(const QPen &pen); + + QBrush brush() const; + void setBrush(const QBrush &brush); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + +protected: + QAbstractGraphicsShapeItem(QAbstractGraphicsShapeItemPrivate &dd, + QGraphicsItem *parent, QGraphicsScene *scene); + +private: + QAbstractGraphicsShapeItem(const QAbstractGraphicsShapeItem &); QAbstractGraphicsShapeItem &operator=(const QAbstractGraphicsShapeItem &); + inline QAbstractGraphicsShapeItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractGraphicsShapeItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractGraphicsShapeItemPrivate; +}; + +class QGraphicsPathItemPrivate; +class QGraphicsPathItem : public QAbstractGraphicsShapeItem +{ +public: + QGraphicsPathItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsPathItem(const QPainterPath &path, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsPathItem(); + + QPainterPath path() const; + void setPath(const QPainterPath &path); + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 2 }; + int type() const; + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsPathItem(const QGraphicsPathItem &); QGraphicsPathItem &operator=(const QGraphicsPathItem &); + inline QGraphicsPathItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsPathItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsPathItemPrivate; +}; + +class QGraphicsRectItemPrivate; +class QGraphicsRectItem : public QAbstractGraphicsShapeItem +{ +public: + QGraphicsRectItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsRectItem(const QRectF &rect, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsRectItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsRectItem(); + + QRectF rect() const; + void setRect(const QRectF &rect); + inline void setRect(qreal x, qreal y, qreal w, qreal h); + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 3 }; + int type() const; + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsRectItem(const QGraphicsRectItem &); QGraphicsRectItem &operator=(const QGraphicsRectItem &); + inline QGraphicsRectItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsRectItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsRectItemPrivate; +}; + +inline void QGraphicsRectItem::setRect(qreal ax, qreal ay, qreal w, qreal h) +{ setRect(QRectF(ax, ay, w, h)); } + +class QGraphicsEllipseItemPrivate; +class QGraphicsEllipseItem : public QAbstractGraphicsShapeItem +{ +public: + QGraphicsEllipseItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsEllipseItem(const QRectF &rect, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsEllipseItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsEllipseItem(); + + QRectF rect() const; + void setRect(const QRectF &rect); + inline void setRect(qreal x, qreal y, qreal w, qreal h); + + int startAngle() const; + void setStartAngle(int angle); + + int spanAngle() const; + void setSpanAngle(int angle); + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 4 }; + int type() const; + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsEllipseItem(const QGraphicsEllipseItem &); QGraphicsEllipseItem &operator=(const QGraphicsEllipseItem &); + inline QGraphicsEllipseItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsEllipseItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsEllipseItemPrivate; +}; + +inline void QGraphicsEllipseItem::setRect(qreal ax, qreal ay, qreal w, qreal h) +{ setRect(QRectF(ax, ay, w, h)); } + +class QGraphicsPolygonItemPrivate; +class QGraphicsPolygonItem : public QAbstractGraphicsShapeItem +{ +public: + QGraphicsPolygonItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsPolygonItem(const QPolygonF &polygon, + QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsPolygonItem(); + + QPolygonF polygon() const; + void setPolygon(const QPolygonF &polygon); + + Qt::FillRule fillRule() const; + void setFillRule(Qt::FillRule rule); + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 5 }; + int type() const; + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsPolygonItem(const QGraphicsPolygonItem &); QGraphicsPolygonItem &operator=(const QGraphicsPolygonItem &); + inline QGraphicsPolygonItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsPolygonItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsPolygonItemPrivate; +}; + +class QGraphicsLineItemPrivate; +class QGraphicsLineItem : public QGraphicsItem +{ +public: + QGraphicsLineItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsLineItem(const QLineF &line, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsLineItem(qreal x1, qreal y1, qreal x2, qreal y2, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsLineItem(); + + QPen pen() const; + void setPen(const QPen &pen); + + QLineF line() const; + void setLine(const QLineF &line); + inline void setLine(qreal x1, qreal y1, qreal x2, qreal y2) + { setLine(QLineF(x1, y1, x2, y2)); } + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 6 }; + int type() const; + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsLineItem(const QGraphicsLineItem &); QGraphicsLineItem &operator=(const QGraphicsLineItem &); + inline QGraphicsLineItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsLineItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsLineItemPrivate; +}; + +class QGraphicsPixmapItemPrivate; +class QGraphicsPixmapItem : public QGraphicsItem +{ +public: + enum ShapeMode { + MaskShape, + BoundingRectShape, + HeuristicMaskShape + }; + + QGraphicsPixmapItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsPixmapItem(); + + QPixmap pixmap() const; + void setPixmap(const QPixmap &pixmap); + + Qt::TransformationMode transformationMode() const; + void setTransformationMode(Qt::TransformationMode mode); + + QPointF offset() const; + void setOffset(const QPointF &offset); + inline void setOffset(qreal x, qreal y); + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 7 }; + int type() const; + + ShapeMode shapeMode() const; + void setShapeMode(ShapeMode mode); + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsPixmapItem(const QGraphicsPixmapItem &); QGraphicsPixmapItem &operator=(const QGraphicsPixmapItem &); + inline QGraphicsPixmapItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsPixmapItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsPixmapItemPrivate; +}; + +inline void QGraphicsPixmapItem::setOffset(qreal ax, qreal ay) +{ setOffset(QPointF(ax, ay)); } + +class QGraphicsTextItemPrivate; +class QTextDocument; +class QTextCursor; +class QGraphicsTextItem : public QGraphicsObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + QGraphicsTextItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsTextItem(const QString &text, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsTextItem(); + + QString toHtml() const; + void setHtml(const QString &html); + + QString toPlainText() const; + void setPlainText(const QString &text); + + QFont font() const; + void setFont(const QFont &font); + + void setDefaultTextColor(const QColor &c); + QColor defaultTextColor() const; + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 8 }; + int type() const; + + void setTextWidth(qreal width); + qreal textWidth() const; + + void adjustSize(); + + void setDocument(QTextDocument *document); + QTextDocument *document() const; + + void setTextInteractionFlags(Qt::TextInteractionFlags flags); + Qt::TextInteractionFlags textInteractionFlags() const; + + void setTabChangesFocus(bool b); + bool tabChangesFocus() const; + + void setOpenExternalLinks(bool open); + bool openExternalLinks() const; + + void setTextCursor(const QTextCursor &cursor); + QTextCursor textCursor() const; + +protected: + void linkActivated(const QString &); + void linkHovered(const QString &); + +protected: + bool sceneEvent(QEvent *event); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + void focusInEvent(QFocusEvent *event); + void focusOutEvent(QFocusEvent *event); + void dragEnterEvent(QGraphicsSceneDragDropEvent *event); + void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); + void dragMoveEvent(QGraphicsSceneDragDropEvent *event); + void dropEvent(QGraphicsSceneDragDropEvent *event); + void inputMethodEvent(QInputMethodEvent *event); + void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + void hoverMoveEvent(QGraphicsSceneHoverEvent *event); + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + + QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsTextItem(const QGraphicsTextItem &); QGraphicsTextItem &operator=(const QGraphicsTextItem &); + + + + QGraphicsTextItemPrivate *dd; + friend class QGraphicsTextItemPrivate; +}; + +class QGraphicsSimpleTextItemPrivate; +class QGraphicsSimpleTextItem : public QAbstractGraphicsShapeItem +{ +public: + QGraphicsSimpleTextItem(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + QGraphicsSimpleTextItem(const QString &text, QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsSimpleTextItem(); + + void setText(const QString &text); + QString text() const; + + void setFont(const QFont &font); + QFont font() const; + + QRectF boundingRect() const; + QPainterPath shape() const; + bool contains(const QPointF &point) const; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 9 }; + int type() const; + +protected: + bool supportsExtension(Extension extension) const; + void setExtension(Extension extension, const QVariant &variant); + QVariant extension(const QVariant &variant) const; + +private: + QGraphicsSimpleTextItem(const QGraphicsSimpleTextItem &); QGraphicsSimpleTextItem &operator=(const QGraphicsSimpleTextItem &); + inline QGraphicsSimpleTextItemPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsSimpleTextItemPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsSimpleTextItemPrivate; +}; + +class QGraphicsItemGroupPrivate; +class QGraphicsItemGroup : public QGraphicsItem +{ +public: + QGraphicsItemGroup(QGraphicsItem *parent = 0 + + + , QGraphicsScene *scene = 0 + + ); + ~QGraphicsItemGroup(); + + void addToGroup(QGraphicsItem *item); + void removeFromGroup(QGraphicsItem *item); + + QRectF boundingRect() const; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + bool isObscuredBy(const QGraphicsItem *item) const; + QPainterPath opaqueArea() const; + + enum { Type = 10 }; + int type() const; + +private: + QGraphicsItemGroup(const QGraphicsItemGroup &); QGraphicsItemGroup &operator=(const QGraphicsItemGroup &); + inline QGraphicsItemGroupPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsItemGroupPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsItemGroupPrivate; +}; + +template inline T qgraphicsitem_cast(QGraphicsItem *item) +{ + return int(static_cast(0)->Type) == int(QGraphicsItem::Type) + || (item && int(static_cast(0)->Type) == item->type()) ? static_cast(item) : 0; +} + +template inline T qgraphicsitem_cast(const QGraphicsItem *item) +{ + return int(static_cast(0)->Type) == int(QGraphicsItem::Type) + || (item && int(static_cast(0)->Type) == item->type()) ? static_cast(item) : 0; +} + + + QDebug operator<<(QDebug debug, QGraphicsItem *item); + QDebug operator<<(QDebug debug, QGraphicsObject *item); + QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemChange change); + QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemFlag flag); + QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemFlags flags); + + + + + template <> struct QMetaTypeId< QGraphicsItem * > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { (0) }; if (!metatype_id) metatype_id = qRegisterMetaType< QGraphicsItem * >("QGraphicsItem *", reinterpret_cast< QGraphicsItem * *>(quintptr(-1))); return metatype_id; } }; + template <> struct QMetaTypeId< QGraphicsScene * > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { (0) }; if (!metatype_id) metatype_id = qRegisterMetaType< QGraphicsScene * >("QGraphicsScene *", reinterpret_cast< QGraphicsScene * *>(quintptr(-1))); return metatype_id; } }; + + + + + + + + +# 1 "/usr/include/qt4/QtGui/QGraphicsPixmapItem" 2 +# 48 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QParallelAnimationGroup" 1 +# 1 "/usr/include/qt4/QtCore/qparallelanimationgroup.h" 1 +# 45 "/usr/include/qt4/QtCore/qparallelanimationgroup.h" +# 1 "/usr/include/qt4/QtCore/qanimationgroup.h" 1 +# 45 "/usr/include/qt4/QtCore/qanimationgroup.h" +# 1 "/usr/include/qt4/QtCore/qabstractanimation.h" 1 +# 47 "/usr/include/qt4/QtCore/qabstractanimation.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + +class QAnimationGroup; +class QSequentialAnimationGroup; +class QAnimationDriver; + +class QAbstractAnimationPrivate; +class QAbstractAnimation : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + +public: + enum Direction { + Forward, + Backward + }; + + enum State { + Stopped, + Paused, + Running + }; + + enum DeletionPolicy { + KeepWhenStopped = 0, + DeleteWhenStopped + }; + + QAbstractAnimation(QObject *parent = 0); + virtual ~QAbstractAnimation(); + + State state() const; + + QAnimationGroup *group() const; + + Direction direction() const; + void setDirection(Direction direction); + + int currentTime() const; + int currentLoopTime() const; + + int loopCount() const; + void setLoopCount(int loopCount); + int currentLoop() const; + + virtual int duration() const = 0; + int totalDuration() const; + +protected: + void finished(); + void stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); + void currentLoopChanged(int currentLoop); + void directionChanged(QAbstractAnimation::Direction); + +public : + void start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped); + void pause(); + void resume(); + void setPaused(bool); + void stop(); + void setCurrentTime(int msecs); + +protected: + QAbstractAnimation(QAbstractAnimationPrivate &dd, QObject *parent = 0); + bool event(QEvent *event); + + virtual void updateCurrentTime(int currentTime) = 0; + virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); + virtual void updateDirection(QAbstractAnimation::Direction direction); + +private: + QAbstractAnimation(const QAbstractAnimation &); QAbstractAnimation &operator=(const QAbstractAnimation &); + inline QAbstractAnimationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractAnimationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractAnimationPrivate; +}; + +class QAnimationDriverPrivate; +class QAnimationDriver : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QAnimationDriverPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAnimationDriverPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAnimationDriverPrivate; + +public: + QAnimationDriver(QObject *parent = 0); + + void advance(); + void install(); + + bool isRunning() const; + +protected: + virtual void started() {}; + virtual void stopped() {}; + + QAnimationDriver(QAnimationDriverPrivate &dd, QObject *parent = 0); + +private: + friend class QUnifiedTimer; + + void start(); + void stop(); +}; + + + + + + + + + +# 46 "/usr/include/qt4/QtCore/qanimationgroup.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + +class QAnimationGroupPrivate; +class QAnimationGroup : public QAbstractAnimation +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + QAnimationGroup(QObject *parent = 0); + ~QAnimationGroup(); + + QAbstractAnimation *animationAt(int index) const; + int animationCount() const; + int indexOfAnimation(QAbstractAnimation *animation) const; + void addAnimation(QAbstractAnimation *animation); + void insertAnimation(int index, QAbstractAnimation *animation); + void removeAnimation(QAbstractAnimation *animation); + QAbstractAnimation *takeAnimation(int index); + void clear(); + +protected: + QAnimationGroup(QAnimationGroupPrivate &dd, QObject *parent); + bool event(QEvent *event); + +private: + QAnimationGroup(const QAnimationGroup &); QAnimationGroup &operator=(const QAnimationGroup &); + inline QAnimationGroupPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAnimationGroupPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAnimationGroupPrivate; +}; + + + + + + +# 46 "/usr/include/qt4/QtCore/qparallelanimationgroup.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + +class QParallelAnimationGroupPrivate; +class QParallelAnimationGroup : public QAnimationGroup +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + +public: + QParallelAnimationGroup(QObject *parent = 0); + ~QParallelAnimationGroup(); + + int duration() const; + +protected: + QParallelAnimationGroup(QParallelAnimationGroupPrivate &dd, QObject *parent); + bool event(QEvent *event); + + void updateCurrentTime(int currentTime); + void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); + void updateDirection(QAbstractAnimation::Direction direction); + +private: + QParallelAnimationGroup(const QParallelAnimationGroup &); QParallelAnimationGroup &operator=(const QParallelAnimationGroup &); + inline QParallelAnimationGroupPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QParallelAnimationGroupPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QParallelAnimationGroupPrivate; + +}; + + + + + + +# 1 "/usr/include/qt4/QtCore/QParallelAnimationGroup" 2 +# 49 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QPropertyAnimation" 1 +# 1 "/usr/include/qt4/QtCore/qpropertyanimation.h" 1 +# 45 "/usr/include/qt4/QtCore/qpropertyanimation.h" +# 1 "/usr/include/qt4/QtCore/qvariantanimation.h" 1 +# 45 "/usr/include/qt4/QtCore/qvariantanimation.h" +# 1 "/usr/include/qt4/QtCore/qeasingcurve.h" 1 +# 48 "/usr/include/qt4/QtCore/qeasingcurve.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QEasingCurvePrivate; +class QEasingCurve +{ + public: static const QMetaObject staticMetaObject; private: + +public: + enum Type { + Linear, + InQuad, OutQuad, InOutQuad, OutInQuad, + InCubic, OutCubic, InOutCubic, OutInCubic, + InQuart, OutQuart, InOutQuart, OutInQuart, + InQuint, OutQuint, InOutQuint, OutInQuint, + InSine, OutSine, InOutSine, OutInSine, + InExpo, OutExpo, InOutExpo, OutInExpo, + InCirc, OutCirc, InOutCirc, OutInCirc, + InElastic, OutElastic, InOutElastic, OutInElastic, + InBack, OutBack, InOutBack, OutInBack, + InBounce, OutBounce, InOutBounce, OutInBounce, + InCurve, OutCurve, SineCurve, CosineCurve, + Custom, NCurveTypes + }; + + QEasingCurve(Type type = Linear); + QEasingCurve(const QEasingCurve &other); + ~QEasingCurve(); + + QEasingCurve &operator=(const QEasingCurve &other); + bool operator==(const QEasingCurve &other) const; + inline bool operator!=(const QEasingCurve &other) const + { return !(this->operator==(other)); } + + qreal amplitude() const; + void setAmplitude(qreal amplitude); + + qreal period() const; + void setPeriod(qreal period); + + qreal overshoot() const; + void setOvershoot(qreal overshoot); + + Type type() const; + void setType(Type type); + typedef qreal (*EasingFunction)(qreal progress); + void setCustomType(EasingFunction func); + EasingFunction customType() const; + + qreal valueForProgress(qreal progress) const; +private: + QEasingCurvePrivate *d_ptr; + + friend QDebug operator<<(QDebug debug, const QEasingCurve &item); + + + friend QDataStream &operator<<(QDataStream &, const QEasingCurve&); + friend QDataStream &operator>>(QDataStream &, QEasingCurve &); + +}; + + + QDebug operator<<(QDebug debug, const QEasingCurve &item); + + + + QDataStream &operator<<(QDataStream &, const QEasingCurve&); + QDataStream &operator>>(QDataStream &, QEasingCurve &); + + + + + +# 46 "/usr/include/qt4/QtCore/qvariantanimation.h" 2 + + + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + +class QVariantAnimationPrivate; +class QVariantAnimation : public QAbstractAnimation +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + +public: + typedef QPair KeyValue; + typedef QVector KeyValues; + + QVariantAnimation(QObject *parent = 0); + ~QVariantAnimation(); + + QVariant startValue() const; + void setStartValue(const QVariant &value); + + QVariant endValue() const; + void setEndValue(const QVariant &value); + + QVariant keyValueAt(qreal step) const; + void setKeyValueAt(qreal step, const QVariant &value); + + KeyValues keyValues() const; + void setKeyValues(const KeyValues &values); + + QVariant currentValue() const; + + int duration() const; + void setDuration(int msecs); + + QEasingCurve easingCurve() const; + void setEasingCurve(const QEasingCurve &easing); + + typedef QVariant (*Interpolator)(const void *from, const void *to, qreal progress); + +protected: + void valueChanged(const QVariant &value); + +protected: + QVariantAnimation(QVariantAnimationPrivate &dd, QObject *parent = 0); + bool event(QEvent *event); + + void updateCurrentTime(int); + void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); + + virtual void updateCurrentValue(const QVariant &value) = 0; + virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; + +private: + template friend void qRegisterAnimationInterpolator(QVariant (*func)(const T &, const T &, qreal)); + static void registerInterpolator(Interpolator func, int interpolationType); + + QVariantAnimation(const QVariantAnimation &); QVariantAnimation &operator=(const QVariantAnimation &); + inline QVariantAnimationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QVariantAnimationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QVariantAnimationPrivate; +}; + +template +void qRegisterAnimationInterpolator(QVariant (*func)(const T &from, const T &to, qreal progress)) { + QVariantAnimation::registerInterpolator(reinterpret_cast(func), qMetaTypeId()); +} + + + + + + +# 46 "/usr/include/qt4/QtCore/qpropertyanimation.h" 2 + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + + + +class QPropertyAnimationPrivate; +class QPropertyAnimation : public QVariantAnimation +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + QPropertyAnimation(QObject *parent = 0); + QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = 0); + ~QPropertyAnimation(); + + QObject *targetObject() const; + void setTargetObject(QObject *target); + + QByteArray propertyName() const; + void setPropertyName(const QByteArray &propertyName); + +protected: + bool event(QEvent *event); + void updateCurrentValue(const QVariant &value); + void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); + +private: + QPropertyAnimation(const QPropertyAnimation &); QPropertyAnimation &operator=(const QPropertyAnimation &); + inline QPropertyAnimationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QPropertyAnimationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QPropertyAnimationPrivate; +}; + + + + + + +# 1 "/usr/include/qt4/QtCore/QPropertyAnimation" 2 +# 50 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QPushButton" 1 +# 1 "/usr/include/qt4/QtGui/qpushbutton.h" 1 +# 47 "/usr/include/qt4/QtGui/qpushbutton.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QPushButtonPrivate; +class QMenu; +class QStyleOptionButton; + +class QPushButton : public QAbstractButton +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + +public: + explicit QPushButton(QWidget *parent=0); + explicit QPushButton(const QString &text, QWidget *parent=0); + QPushButton(const QIcon& icon, const QString &text, QWidget *parent=0); + ~QPushButton(); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + bool autoDefault() const; + void setAutoDefault(bool); + bool isDefault() const; + void setDefault(bool); + + + void setMenu(QMenu* menu); + QMenu* menu() const; + + + void setFlat(bool); + bool isFlat() const; + +public : + + void showMenu(); + + +protected: + bool event(QEvent *e); + + + + void paintEvent(QPaintEvent *); + void keyPressEvent(QKeyEvent *); + void focusInEvent(QFocusEvent *); + void focusOutEvent(QFocusEvent *); + void initStyleOption(QStyleOptionButton *option) const; + QPushButton(QPushButtonPrivate &dd, QWidget* parent = 0); + +public: +# 115 "/usr/include/qt4/QtGui/qpushbutton.h" +private: + QPushButton(const QPushButton &); QPushButton &operator=(const QPushButton &); + inline QPushButtonPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QPushButtonPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QPushButtonPrivate; + + + +}; + + + + +# 1 "/usr/include/qt4/QtGui/QPushButton" 2 +# 51 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QGraphicsScene" 1 +# 1 "/usr/include/qt4/QtGui/qgraphicsscene.h" 1 +# 52 "/usr/include/qt4/QtGui/qgraphicsscene.h" +# 1 "/usr/include/qt4/QtGui/qpen.h" 1 +# 48 "/usr/include/qt4/QtGui/qpen.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QVariant; +class QPenPrivate; +class QBrush; +class QPen; + + + QDataStream &operator<<(QDataStream &, const QPen &); + QDataStream &operator>>(QDataStream &, QPen &); + + +class QPen +{ +public: + QPen(); + QPen(Qt::PenStyle); + QPen(const QColor &color); + QPen(const QBrush &brush, qreal width, Qt::PenStyle s = Qt::SolidLine, + Qt::PenCapStyle c = Qt::SquareCap, Qt::PenJoinStyle j = Qt::BevelJoin); + QPen(const QPen &pen); + + ~QPen(); + + QPen &operator=(const QPen &pen); + + inline QPen &operator=(QPen &&other) + { qSwap(d, other.d); return *this; } + + inline void swap(QPen &other) { qSwap(d, other.d); } + + Qt::PenStyle style() const; + void setStyle(Qt::PenStyle); + + QVector dashPattern() const; + void setDashPattern(const QVector &pattern); + + qreal dashOffset() const; + void setDashOffset(qreal doffset); + + qreal miterLimit() const; + void setMiterLimit(qreal limit); + + qreal widthF() const; + void setWidthF(qreal width); + + int width() const; + void setWidth(int width); + + QColor color() const; + void setColor(const QColor &color); + + QBrush brush() const; + void setBrush(const QBrush &brush); + + bool isSolid() const; + + Qt::PenCapStyle capStyle() const; + void setCapStyle(Qt::PenCapStyle pcs); + + Qt::PenJoinStyle joinStyle() const; + void setJoinStyle(Qt::PenJoinStyle pcs); + + bool isCosmetic() const; + void setCosmetic(bool cosmetic); + + bool operator==(const QPen &p) const; + inline bool operator!=(const QPen &p) const { return !(operator==(p)); } + operator QVariant() const; + + bool isDetached(); +private: + friend QDataStream &operator>>(QDataStream &, QPen &); + friend QDataStream &operator<<(QDataStream &, const QPen &); + + void detach(); + class QPenPrivate *d; + +public: + typedef QPenPrivate * DataPtr; + inline DataPtr &data_ptr() { return d; } +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QPen)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QPen"; } }; +template <> inline bool qIsDetached(QPen &t) { return t.isDetached(); } template <> inline void qSwap(QPen &value1, QPen &value2) { qSwap(value1.data_ptr(), value2.data_ptr()); } namespace std { template<> inline void swap< ::QPen>(::QPen &value1, ::QPen &value2) { swap(value1.data_ptr(), value2.data_ptr()); } } + + + QDebug operator<<(QDebug, const QPen &); + + + + + +# 53 "/usr/include/qt4/QtGui/qgraphicsscene.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +template class QList; +class QFocusEvent; +class QFont; +class QFontMetrics; +class QGraphicsEllipseItem; +class QGraphicsItem; +class QGraphicsItemGroup; +class QGraphicsLineItem; +class QGraphicsPathItem; +class QGraphicsPixmapItem; +class QGraphicsPolygonItem; +class QGraphicsProxyWidget; +class QGraphicsRectItem; +class QGraphicsSceneContextMenuEvent; +class QGraphicsSceneDragDropEvent; +class QGraphicsSceneEvent; +class QGraphicsSceneHelpEvent; +class QGraphicsSceneHoverEvent; +class QGraphicsSceneMouseEvent; +class QGraphicsSceneWheelEvent; +class QGraphicsSimpleTextItem; +class QGraphicsTextItem; +class QGraphicsView; +class QGraphicsWidget; +class QGraphicsSceneIndex; +class QHelpEvent; +class QInputMethodEvent; +class QKeyEvent; +class QLineF; +class QPainterPath; +class QPixmap; +class QPointF; +class QPolygonF; +class QRectF; +class QSizeF; +class QStyle; +class QStyleOptionGraphicsItem; + +class QGraphicsScenePrivate; +class QGraphicsScene : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + +public: + enum ItemIndexMethod { + BspTreeIndex, + NoIndex = -1 + }; + + enum SceneLayer { + ItemLayer = 0x1, + BackgroundLayer = 0x2, + ForegroundLayer = 0x4, + AllLayers = 0xffff + }; + typedef QFlags SceneLayers; + + QGraphicsScene(QObject *parent = 0); + QGraphicsScene(const QRectF &sceneRect, QObject *parent = 0); + QGraphicsScene(qreal x, qreal y, qreal width, qreal height, QObject *parent = 0); + virtual ~QGraphicsScene(); + + QRectF sceneRect() const; + inline qreal width() const { return sceneRect().width(); } + inline qreal height() const { return sceneRect().height(); } + void setSceneRect(const QRectF &rect); + inline void setSceneRect(qreal x, qreal y, qreal w, qreal h) + { setSceneRect(QRectF(x, y, w, h)); } + + void render(QPainter *painter, + const QRectF &target = QRectF(), const QRectF &source = QRectF(), + Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio); + + ItemIndexMethod itemIndexMethod() const; + void setItemIndexMethod(ItemIndexMethod method); + + bool isSortCacheEnabled() const; + void setSortCacheEnabled(bool enabled); + + int bspTreeDepth() const; + void setBspTreeDepth(int depth); + + QRectF itemsBoundingRect() const; + + QList items() const; + QList items(Qt::SortOrder order) const; + + QList items(const QPointF &pos, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; + QList items(const QRectF &rect, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; + QList items(const QPolygonF &polygon, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; + QList items(const QPainterPath &path, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; + + QList items(const QPointF &pos) const; + QList items(const QRectF &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + QList items(const QPolygonF &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + QList items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + + QList collidingItems(const QGraphicsItem *item, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + + QGraphicsItem *itemAt(const QPointF &pos) const; + QGraphicsItem *itemAt(const QPointF &pos, const QTransform &deviceTransform) const; + + inline QList items(qreal x, qreal y, qreal w, qreal h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const + { return items(QRectF(x, y, w, h), mode); } + inline QList items(qreal x, qreal y, qreal w, qreal h, Qt::ItemSelectionMode mode, Qt::SortOrder order, + const QTransform &deviceTransform = QTransform()) const + { return items(QRectF(x, y, w, h), mode, order, deviceTransform); } + inline QGraphicsItem *itemAt(qreal x, qreal y) const + { return itemAt(QPointF(x, y)); } + inline QGraphicsItem *itemAt(qreal x, qreal y, const QTransform &deviceTransform) const + { return itemAt(QPointF(x, y), deviceTransform); } + + QList selectedItems() const; + QPainterPath selectionArea() const; + void setSelectionArea(const QPainterPath &path); + void setSelectionArea(const QPainterPath &path, const QTransform &deviceTransform); + void setSelectionArea(const QPainterPath &path, Qt::ItemSelectionMode mode); + void setSelectionArea(const QPainterPath &path, Qt::ItemSelectionMode mode, const QTransform &deviceTransform); + + QGraphicsItemGroup *createItemGroup(const QList &items); + void destroyItemGroup(QGraphicsItemGroup *group); + + void addItem(QGraphicsItem *item); + QGraphicsEllipseItem *addEllipse(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush()); + QGraphicsLineItem *addLine(const QLineF &line, const QPen &pen = QPen()); + QGraphicsPathItem *addPath(const QPainterPath &path, const QPen &pen = QPen(), const QBrush &brush = QBrush()); + QGraphicsPixmapItem *addPixmap(const QPixmap &pixmap); + QGraphicsPolygonItem *addPolygon(const QPolygonF &polygon, const QPen &pen = QPen(), const QBrush &brush = QBrush()); + QGraphicsRectItem *addRect(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush()); + QGraphicsTextItem *addText(const QString &text, const QFont &font = QFont()); + QGraphicsSimpleTextItem *addSimpleText(const QString &text, const QFont &font = QFont()); + QGraphicsProxyWidget *addWidget(QWidget *widget, Qt::WindowFlags wFlags = 0); + inline QGraphicsEllipseItem *addEllipse(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush()) + { return addEllipse(QRectF(x, y, w, h), pen, brush); } + inline QGraphicsLineItem *addLine(qreal x1, qreal y1, qreal x2, qreal y2, const QPen &pen = QPen()) + { return addLine(QLineF(x1, y1, x2, y2), pen); } + inline QGraphicsRectItem *addRect(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush()) + { return addRect(QRectF(x, y, w, h), pen, brush); } + void removeItem(QGraphicsItem *item); + + QGraphicsItem *focusItem() const; + void setFocusItem(QGraphicsItem *item, Qt::FocusReason focusReason = Qt::OtherFocusReason); + bool hasFocus() const; + void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason); + void clearFocus(); + + void setStickyFocus(bool enabled); + bool stickyFocus() const; + + QGraphicsItem *mouseGrabberItem() const; + + QBrush backgroundBrush() const; + void setBackgroundBrush(const QBrush &brush); + + QBrush foregroundBrush() const; + void setForegroundBrush(const QBrush &brush); + + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + + QList views() const; + + inline void update(qreal x, qreal y, qreal w, qreal h) + { update(QRectF(x, y, w, h)); } + inline void invalidate(qreal x, qreal y, qreal w, qreal h, SceneLayers layers = AllLayers) + { invalidate(QRectF(x, y, w, h), layers); } + + QStyle *style() const; + void setStyle(QStyle *style); + + QFont font() const; + void setFont(const QFont &font); + + QPalette palette() const; + void setPalette(const QPalette &palette); + + bool isActive() const; + QGraphicsItem *activePanel() const; + void setActivePanel(QGraphicsItem *item); + QGraphicsWidget *activeWindow() const; + void setActiveWindow(QGraphicsWidget *widget); + + bool sendEvent(QGraphicsItem *item, QEvent *event); + +public : + void update(const QRectF &rect = QRectF()); + void invalidate(const QRectF &rect = QRectF(), SceneLayers layers = AllLayers); + void advance(); + void clearSelection(); + void clear(); + +protected: + bool event(QEvent *event); + bool eventFilter(QObject *watched, QEvent *event); + virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); + virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); + virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); + virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); + virtual void dropEvent(QGraphicsSceneDragDropEvent *event); + virtual void focusInEvent(QFocusEvent *event); + virtual void focusOutEvent(QFocusEvent *event); + virtual void helpEvent(QGraphicsSceneHelpEvent *event); + virtual void keyPressEvent(QKeyEvent *event); + virtual void keyReleaseEvent(QKeyEvent *event); + virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + virtual void wheelEvent(QGraphicsSceneWheelEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *event); + + virtual void drawBackground(QPainter *painter, const QRectF &rect); + virtual void drawForeground(QPainter *painter, const QRectF &rect); + virtual void drawItems(QPainter *painter, int numItems, + QGraphicsItem *items[], + const QStyleOptionGraphicsItem options[], + QWidget *widget = 0); + +protected : + bool focusNextPrevChild(bool next); + +protected: + void changed(const QList ®ion); + void sceneRectChanged(const QRectF &rect); + void selectionChanged(); + +private: + inline QGraphicsScenePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsScenePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsScenePrivate; + QGraphicsScene(const QGraphicsScene &); QGraphicsScene &operator=(const QGraphicsScene &); + + + + + friend class QGraphicsItem; + friend class QGraphicsItemPrivate; + friend class QGraphicsObject; + friend class QGraphicsView; + friend class QGraphicsViewPrivate; + friend class QGraphicsWidget; + friend class QGraphicsWidgetPrivate; + friend class QGraphicsEffect; + friend class QGraphicsSceneIndex; + friend class QGraphicsSceneIndexPrivate; + friend class QGraphicsSceneBspTreeIndex; + friend class QGraphicsSceneBspTreeIndexPrivate; + friend class QGraphicsItemEffectSourcePrivate; + + friend class QGesture; + +}; + +constexpr inline QFlags operator|(QGraphicsScene::SceneLayers::enum_type f1, QGraphicsScene::SceneLayers::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QGraphicsScene::SceneLayers::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QGraphicsScene::SceneLayers::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + + + +# 1 "/usr/include/qt4/QtGui/QGraphicsScene" 2 +# 52 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QGraphicsView" 1 +# 1 "/usr/include/qt4/QtGui/qgraphicsview.h" 1 +# 46 "/usr/include/qt4/QtGui/qgraphicsview.h" +# 1 "/usr/include/qt4/QtGui/qpainter.h" 1 +# 51 "/usr/include/qt4/QtGui/qpainter.h" +# 1 "/usr/include/qt4/QtGui/qtextoption.h" 1 +# 50 "/usr/include/qt4/QtGui/qtextoption.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +template class QList; +struct QTextOptionPrivate; + +class QTextOption +{ +public: + enum TabType { + LeftTab, + RightTab, + CenterTab, + DelimiterTab + }; + + struct Tab { + inline Tab() : position(80), type(QTextOption::LeftTab) { } + inline Tab(qreal pos, TabType tabType, QChar delim = QChar()) + : position(pos), type(tabType), delimiter(delim) {} + + inline bool operator==(const Tab &other) const { + return type == other.type + && qFuzzyCompare(position, other.position) + && delimiter == other.delimiter; + } + + inline bool operator!=(const Tab &other) const { + return !operator==(other); + } + + qreal position; + TabType type; + QChar delimiter; + }; + + QTextOption(); + QTextOption(Qt::Alignment alignment); + ~QTextOption(); + + QTextOption(const QTextOption &o); + QTextOption &operator=(const QTextOption &o); + + inline void setAlignment(Qt::Alignment alignment); + inline Qt::Alignment alignment() const { return Qt::Alignment(align); } + + inline void setTextDirection(Qt::LayoutDirection aDirection) { this->direction = aDirection; } + inline Qt::LayoutDirection textDirection() const { return Qt::LayoutDirection(direction); } + + enum WrapMode { + NoWrap, + WordWrap, + ManualWrap, + WrapAnywhere, + WrapAtWordBoundaryOrAnywhere + }; + inline void setWrapMode(WrapMode wrap) { wordWrap = wrap; } + inline WrapMode wrapMode() const { return static_cast(wordWrap); } + + enum Flag { + ShowTabsAndSpaces = 0x1, + ShowLineAndParagraphSeparators = 0x2, + AddSpaceForLineAndParagraphSeparators = 0x4, + SuppressColors = 0x8, + IncludeTrailingSpaces = 0x80000000 + }; + typedef QFlags Flags; + inline void setFlags(Flags flags); + inline Flags flags() const { return Flags(f); } + + inline void setTabStop(qreal tabStop); + inline qreal tabStop() const { return tab; } + + void setTabArray(QList tabStops); + QList tabArray() const; + + void setTabs(QList tabStops); + QList tabs() const; + + void setUseDesignMetrics(bool b) { design = b; } + bool useDesignMetrics() const { return design; } + +private: + uint align : 8; + uint wordWrap : 4; + uint design : 1; + uint direction : 2; + uint unused : 18; + uint f; + qreal tab; + QTextOptionPrivate *d; +}; + +constexpr inline QFlags operator|(QTextOption::Flags::enum_type f1, QTextOption::Flags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QTextOption::Flags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QTextOption::Flags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +inline void QTextOption::setAlignment(Qt::Alignment aalignment) +{ align = aalignment; } + +inline void QTextOption::setFlags(Flags aflags) +{ f = aflags; } + +inline void QTextOption::setTabStop(qreal atabStop) +{ tab = atabStop; } + + + + template <> struct QMetaTypeId< QTextOption::Tab > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { (0) }; if (!metatype_id) metatype_id = qRegisterMetaType< QTextOption::Tab >("QTextOption::Tab", reinterpret_cast< QTextOption::Tab *>(quintptr(-1))); return metatype_id; } }; + + +# 52 "/usr/include/qt4/QtGui/qpainter.h" 2 +# 1 "/usr/include/qt4/QtGui/qdrawutil.h" 1 +# 49 "/usr/include/qt4/QtGui/qdrawutil.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QPainter; + +class QColorGroup; + +class QPalette; +class QPoint; +class QColor; +class QBrush; +class QRect; + + + + + + void qDrawShadeLine(QPainter *p, int x1, int y1, int x2, int y2, + const QPalette &pal, bool sunken = true, + int lineWidth = 1, int midLineWidth = 0); + + void qDrawShadeLine(QPainter *p, const QPoint &p1, const QPoint &p2, + const QPalette &pal, bool sunken = true, + int lineWidth = 1, int midLineWidth = 0); + + void qDrawShadeRect(QPainter *p, int x, int y, int w, int h, + const QPalette &pal, bool sunken = false, + int lineWidth = 1, int midLineWidth = 0, + const QBrush *fill = 0); + + void qDrawShadeRect(QPainter *p, const QRect &r, + const QPalette &pal, bool sunken = false, + int lineWidth = 1, int midLineWidth = 0, + const QBrush *fill = 0); + + void qDrawShadePanel(QPainter *p, int x, int y, int w, int h, + const QPalette &pal, bool sunken = false, + int lineWidth = 1, const QBrush *fill = 0); + + void qDrawShadePanel(QPainter *p, const QRect &r, + const QPalette &pal, bool sunken = false, + int lineWidth = 1, const QBrush *fill = 0); + + void qDrawWinButton(QPainter *p, int x, int y, int w, int h, + const QPalette &pal, bool sunken = false, + const QBrush *fill = 0); + + void qDrawWinButton(QPainter *p, const QRect &r, + const QPalette &pal, bool sunken = false, + const QBrush *fill = 0); + + void qDrawWinPanel(QPainter *p, int x, int y, int w, int h, + const QPalette &pal, bool sunken = false, + const QBrush *fill = 0); + + void qDrawWinPanel(QPainter *p, const QRect &r, + const QPalette &pal, bool sunken = false, + const QBrush *fill = 0); + + void qDrawPlainRect(QPainter *p, int x, int y, int w, int h, const QColor &, + int lineWidth = 1, const QBrush *fill = 0); + + void qDrawPlainRect(QPainter *p, const QRect &r, const QColor &, + int lineWidth = 1, const QBrush *fill = 0); +# 136 "/usr/include/qt4/QtGui/qdrawutil.h" +struct QTileRules +{ + inline QTileRules(Qt::TileRule horizontalRule, Qt::TileRule verticalRule) + : horizontal(horizontalRule), vertical(verticalRule) {} + inline QTileRules(Qt::TileRule rule = Qt::StretchTile) + : horizontal(rule), vertical(rule) {} + Qt::TileRule horizontal; + Qt::TileRule vertical; +}; + + + +namespace QDrawBorderPixmap +{ + enum DrawingHint + { + OpaqueTopLeft = 0x0001, + OpaqueTop = 0x0002, + OpaqueTopRight = 0x0004, + OpaqueLeft = 0x0008, + OpaqueCenter = 0x0010, + OpaqueRight = 0x0020, + OpaqueBottomLeft = 0x0040, + OpaqueBottom = 0x0080, + OpaqueBottomRight = 0x0100, + OpaqueCorners = OpaqueTopLeft | OpaqueTopRight | OpaqueBottomLeft | OpaqueBottomRight, + OpaqueEdges = OpaqueTop | OpaqueLeft | OpaqueRight | OpaqueBottom, + OpaqueFrame = OpaqueCorners | OpaqueEdges, + OpaqueAll = OpaqueCenter | OpaqueFrame + }; + + typedef QFlags DrawingHints; +} + + + void qDrawBorderPixmap(QPainter *painter, + const QRect &targetRect, + const QMargins &targetMargins, + const QPixmap &pixmap, + const QRect &sourceRect, + const QMargins &sourceMargins, + const QTileRules &rules = QTileRules() + + , QDrawBorderPixmap::DrawingHints hints = 0 + + ); + +inline void qDrawBorderPixmap(QPainter *painter, + const QRect &target, + const QMargins &margins, + const QPixmap &pixmap) +{ + qDrawBorderPixmap(painter, target, margins, pixmap, pixmap.rect(), margins); +} + + + + +# 53 "/usr/include/qt4/QtGui/qpainter.h" 2 +# 64 "/usr/include/qt4/QtGui/qpainter.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QBrush; +class QFontInfo; +class QFontMetrics; +class QPaintDevice; +class QPainterPath; +class QPainterPrivate; +class QPen; +class QPolygon; +class QTextItem; +class QMatrix; +class QTransform; +class QStaticText; +class QGlyphRun; + +class QPainterPrivateDeleter; + +class QPainter +{ + inline QPainterPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QPainterPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QPainterPrivate; + public: static const QMetaObject staticMetaObject; private: + + +public: + enum RenderHint { + Antialiasing = 0x01, + TextAntialiasing = 0x02, + SmoothPixmapTransform = 0x04, + HighQualityAntialiasing = 0x08, + NonCosmeticDefaultPen = 0x10 + }; + + typedef QFlags RenderHints; + + class PixmapFragment { + public: + qreal x; + qreal y; + qreal sourceLeft; + qreal sourceTop; + qreal width; + qreal height; + qreal scaleX; + qreal scaleY; + qreal rotation; + qreal opacity; + static PixmapFragment create(const QPointF &pos, const QRectF &sourceRect, + qreal scaleX = 1, qreal scaleY = 1, + qreal rotation = 0, qreal opacity = 1); + }; + + enum PixmapFragmentHint { + OpaqueHint = 0x01 + }; + + typedef QFlags PixmapFragmentHints; + + QPainter(); + explicit QPainter(QPaintDevice *); + ~QPainter(); + + QPaintDevice *device() const; + + bool begin(QPaintDevice *); + bool end(); + bool isActive() const; + + void initFrom(const QWidget *widget); + + enum CompositionMode { + CompositionMode_SourceOver, + CompositionMode_DestinationOver, + CompositionMode_Clear, + CompositionMode_Source, + CompositionMode_Destination, + CompositionMode_SourceIn, + CompositionMode_DestinationIn, + CompositionMode_SourceOut, + CompositionMode_DestinationOut, + CompositionMode_SourceAtop, + CompositionMode_DestinationAtop, + CompositionMode_Xor, + + + CompositionMode_Plus, + CompositionMode_Multiply, + CompositionMode_Screen, + CompositionMode_Overlay, + CompositionMode_Darken, + CompositionMode_Lighten, + CompositionMode_ColorDodge, + CompositionMode_ColorBurn, + CompositionMode_HardLight, + CompositionMode_SoftLight, + CompositionMode_Difference, + CompositionMode_Exclusion, + + + RasterOp_SourceOrDestination, + RasterOp_SourceAndDestination, + RasterOp_SourceXorDestination, + RasterOp_NotSourceAndNotDestination, + RasterOp_NotSourceOrNotDestination, + RasterOp_NotSourceXorDestination, + RasterOp_NotSource, + RasterOp_NotSourceAndDestination, + RasterOp_SourceAndNotDestination + }; + void setCompositionMode(CompositionMode mode); + CompositionMode compositionMode() const; + + const QFont &font() const; + void setFont(const QFont &f); + + QFontMetrics fontMetrics() const; + QFontInfo fontInfo() const; + + void setPen(const QColor &color); + void setPen(const QPen &pen); + void setPen(Qt::PenStyle style); + const QPen &pen() const; + + void setBrush(const QBrush &brush); + void setBrush(Qt::BrushStyle style); + const QBrush &brush() const; + + + void setBackgroundMode(Qt::BGMode mode); + Qt::BGMode backgroundMode() const; + + QPoint brushOrigin() const; + inline void setBrushOrigin(int x, int y); + inline void setBrushOrigin(const QPoint &); + void setBrushOrigin(const QPointF &); + + void setBackground(const QBrush &bg); + const QBrush &background() const; + + qreal opacity() const; + void setOpacity(qreal opacity); + + + QRegion clipRegion() const; + QPainterPath clipPath() const; + + void setClipRect(const QRectF &, Qt::ClipOperation op = Qt::ReplaceClip); + void setClipRect(const QRect &, Qt::ClipOperation op = Qt::ReplaceClip); + inline void setClipRect(int x, int y, int w, int h, Qt::ClipOperation op = Qt::ReplaceClip); + + void setClipRegion(const QRegion &, Qt::ClipOperation op = Qt::ReplaceClip); + + void setClipPath(const QPainterPath &path, Qt::ClipOperation op = Qt::ReplaceClip); + + void setClipping(bool enable); + bool hasClipping() const; + + QRectF clipBoundingRect() const; + + void save(); + void restore(); + + + void setMatrix(const QMatrix &matrix, bool combine = false); + const QMatrix &matrix() const; + const QMatrix &deviceMatrix() const; + void resetMatrix(); + + void setTransform(const QTransform &transform, bool combine = false); + const QTransform &transform() const; + const QTransform &deviceTransform() const; + void resetTransform(); + + void setWorldMatrix(const QMatrix &matrix, bool combine = false); + const QMatrix &worldMatrix() const; + + void setWorldTransform(const QTransform &matrix, bool combine = false); + const QTransform &worldTransform() const; + + QMatrix combinedMatrix() const; + QTransform combinedTransform() const; + + void setMatrixEnabled(bool enabled); + bool matrixEnabled() const; + + void setWorldMatrixEnabled(bool enabled); + bool worldMatrixEnabled() const; + + void scale(qreal sx, qreal sy); + void shear(qreal sh, qreal sv); + void rotate(qreal a); + + void translate(const QPointF &offset); + inline void translate(const QPoint &offset); + inline void translate(qreal dx, qreal dy); + + QRect window() const; + void setWindow(const QRect &window); + inline void setWindow(int x, int y, int w, int h); + + QRect viewport() const; + void setViewport(const QRect &viewport); + inline void setViewport(int x, int y, int w, int h); + + void setViewTransformEnabled(bool enable); + bool viewTransformEnabled() const; + + + void strokePath(const QPainterPath &path, const QPen &pen); + void fillPath(const QPainterPath &path, const QBrush &brush); + void drawPath(const QPainterPath &path); + + inline void drawPoint(const QPointF &pt); + inline void drawPoint(const QPoint &p); + inline void drawPoint(int x, int y); + + void drawPoints(const QPointF *points, int pointCount); + inline void drawPoints(const QPolygonF &points); + void drawPoints(const QPoint *points, int pointCount); + inline void drawPoints(const QPolygon &points); + + inline void drawLine(const QLineF &line); + inline void drawLine(const QLine &line); + inline void drawLine(int x1, int y1, int x2, int y2); + inline void drawLine(const QPoint &p1, const QPoint &p2); + inline void drawLine(const QPointF &p1, const QPointF &p2); + + void drawLines(const QLineF *lines, int lineCount); + inline void drawLines(const QVector &lines); + void drawLines(const QPointF *pointPairs, int lineCount); + inline void drawLines(const QVector &pointPairs); + void drawLines(const QLine *lines, int lineCount); + inline void drawLines(const QVector &lines); + void drawLines(const QPoint *pointPairs, int lineCount); + inline void drawLines(const QVector &pointPairs); + + inline void drawRect(const QRectF &rect); + inline void drawRect(int x1, int y1, int w, int h); + inline void drawRect(const QRect &rect); + + void drawRects(const QRectF *rects, int rectCount); + inline void drawRects(const QVector &rectangles); + void drawRects(const QRect *rects, int rectCount); + inline void drawRects(const QVector &rectangles); + + void drawEllipse(const QRectF &r); + void drawEllipse(const QRect &r); + inline void drawEllipse(int x, int y, int w, int h); + + inline void drawEllipse(const QPointF ¢er, qreal rx, qreal ry); + inline void drawEllipse(const QPoint ¢er, int rx, int ry); + + void drawPolyline(const QPointF *points, int pointCount); + inline void drawPolyline(const QPolygonF &polyline); + void drawPolyline(const QPoint *points, int pointCount); + inline void drawPolyline(const QPolygon &polygon); + + void drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill); + inline void drawPolygon(const QPolygonF &polygon, Qt::FillRule fillRule = Qt::OddEvenFill); + void drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill); + inline void drawPolygon(const QPolygon &polygon, Qt::FillRule fillRule = Qt::OddEvenFill); + + void drawConvexPolygon(const QPointF *points, int pointCount); + inline void drawConvexPolygon(const QPolygonF &polygon); + void drawConvexPolygon(const QPoint *points, int pointCount); + inline void drawConvexPolygon(const QPolygon &polygon); + + void drawArc(const QRectF &rect, int a, int alen); + inline void drawArc(const QRect &, int a, int alen); + inline void drawArc(int x, int y, int w, int h, int a, int alen); + + void drawPie(const QRectF &rect, int a, int alen); + inline void drawPie(int x, int y, int w, int h, int a, int alen); + inline void drawPie(const QRect &, int a, int alen); + + void drawChord(const QRectF &rect, int a, int alen); + inline void drawChord(int x, int y, int w, int h, int a, int alen); + inline void drawChord(const QRect &, int a, int alen); + + void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, + Qt::SizeMode mode = Qt::AbsoluteSize); + inline void drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, + Qt::SizeMode mode = Qt::AbsoluteSize); + inline void drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, + Qt::SizeMode mode = Qt::AbsoluteSize); + + void drawRoundRect(const QRectF &r, int xround = 25, int yround = 25); + inline void drawRoundRect(int x, int y, int w, int h, int = 25, int = 25); + inline void drawRoundRect(const QRect &r, int xround = 25, int yround = 25); + + void drawTiledPixmap(const QRectF &rect, const QPixmap &pm, const QPointF &offset = QPointF()); + inline void drawTiledPixmap(int x, int y, int w, int h, const QPixmap &, int sx=0, int sy=0); + inline void drawTiledPixmap(const QRect &, const QPixmap &, const QPoint & = QPoint()); + + void drawPicture(const QPointF &p, const QPicture &picture); + inline void drawPicture(int x, int y, const QPicture &picture); + inline void drawPicture(const QPoint &p, const QPicture &picture); + + + void drawPixmap(const QRectF &targetRect, const QPixmap &pixmap, const QRectF &sourceRect); + inline void drawPixmap(const QRect &targetRect, const QPixmap &pixmap, const QRect &sourceRect); + inline void drawPixmap(int x, int y, int w, int h, const QPixmap &pm, + int sx, int sy, int sw, int sh); + inline void drawPixmap(int x, int y, const QPixmap &pm, + int sx, int sy, int sw, int sh); + inline void drawPixmap(const QPointF &p, const QPixmap &pm, const QRectF &sr); + inline void drawPixmap(const QPoint &p, const QPixmap &pm, const QRect &sr); + void drawPixmap(const QPointF &p, const QPixmap &pm); + inline void drawPixmap(const QPoint &p, const QPixmap &pm); + inline void drawPixmap(int x, int y, const QPixmap &pm); + inline void drawPixmap(const QRect &r, const QPixmap &pm); + inline void drawPixmap(int x, int y, int w, int h, const QPixmap &pm); + + void drawPixmapFragments(const PixmapFragment *fragments, int fragmentCount, + const QPixmap &pixmap, PixmapFragmentHints hints = 0); + void drawPixmapFragments(const QRectF *targetRects, const QRectF *sourceRects, int fragmentCount, + const QPixmap &pixmap, PixmapFragmentHints hints = 0); + + void drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect, + Qt::ImageConversionFlags flags = Qt::AutoColor); + inline void drawImage(const QRect &targetRect, const QImage &image, const QRect &sourceRect, + Qt::ImageConversionFlags flags = Qt::AutoColor); + inline void drawImage(const QPointF &p, const QImage &image, const QRectF &sr, + Qt::ImageConversionFlags flags = Qt::AutoColor); + inline void drawImage(const QPoint &p, const QImage &image, const QRect &sr, + Qt::ImageConversionFlags flags = Qt::AutoColor); + inline void drawImage(const QRectF &r, const QImage &image); + inline void drawImage(const QRect &r, const QImage &image); + void drawImage(const QPointF &p, const QImage &image); + inline void drawImage(const QPoint &p, const QImage &image); + inline void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, + int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor); + + void setLayoutDirection(Qt::LayoutDirection direction); + Qt::LayoutDirection layoutDirection() const; + + + void drawGlyphRun(const QPointF &position, const QGlyphRun &glyphRun); + + + void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText); + inline void drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText); + inline void drawStaticText(int left, int top, const QStaticText &staticText); + + void drawText(const QPointF &p, const QString &s); + inline void drawText(const QPoint &p, const QString &s); + inline void drawText(int x, int y, const QString &s); + + void drawText(const QPointF &p, const QString &str, int tf, int justificationPadding); + + void drawText(const QRectF &r, int flags, const QString &text, QRectF *br=0); + void drawText(const QRect &r, int flags, const QString &text, QRect *br=0); + inline void drawText(int x, int y, int w, int h, int flags, const QString &text, QRect *br=0); + + void drawText(const QRectF &r, const QString &text, const QTextOption &o = QTextOption()); + + QRectF boundingRect(const QRectF &rect, int flags, const QString &text); + QRect boundingRect(const QRect &rect, int flags, const QString &text); + inline QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text); + + QRectF boundingRect(const QRectF &rect, const QString &text, const QTextOption &o = QTextOption()); + + void drawTextItem(const QPointF &p, const QTextItem &ti); + inline void drawTextItem(int x, int y, const QTextItem &ti); + inline void drawTextItem(const QPoint &p, const QTextItem &ti); + + void fillRect(const QRectF &, const QBrush &); + inline void fillRect(int x, int y, int w, int h, const QBrush &); + void fillRect(const QRect &, const QBrush &); + + void fillRect(const QRectF &, const QColor &color); + inline void fillRect(int x, int y, int w, int h, const QColor &color); + void fillRect(const QRect &, const QColor &color); + + inline void fillRect(int x, int y, int w, int h, Qt::GlobalColor c); + inline void fillRect(const QRect &r, Qt::GlobalColor c); + inline void fillRect(const QRectF &r, Qt::GlobalColor c); + + inline void fillRect(int x, int y, int w, int h, Qt::BrushStyle style); + inline void fillRect(const QRect &r, Qt::BrushStyle style); + inline void fillRect(const QRectF &r, Qt::BrushStyle style); + + void eraseRect(const QRectF &); + inline void eraseRect(int x, int y, int w, int h); + inline void eraseRect(const QRect &); + + void setRenderHint(RenderHint hint, bool on = true); + void setRenderHints(RenderHints hints, bool on = true); + RenderHints renderHints() const; + inline bool testRenderHint(RenderHint hint) const { return renderHints() & hint; } + + QPaintEngine *paintEngine() const; + + static void setRedirected(const QPaintDevice *device, QPaintDevice *replacement, + const QPoint& offset = QPoint()); + static QPaintDevice *redirected(const QPaintDevice *device, QPoint *offset = 0); + static void restoreRedirected(const QPaintDevice *device); + + void beginNativePainting(); + void endNativePainting(); +# 542 "/usr/include/qt4/QtGui/qpainter.h" +private: + QPainter(const QPainter &); QPainter &operator=(const QPainter &); + friend class Q3Painter; + + QScopedPointer d_ptr; + + friend class QFontEngine; + friend class QFontEngineBox; + friend class QFontEngineFT; + friend class QFontEngineMac; + friend class QFontEngineWin; + friend class QFontEngineXLFD; + friend class QWSManager; + friend class QPaintEngine; + friend class QPaintEngineExPrivate; + friend class QOpenGLPaintEngine; + friend class QVGPaintEngine; + friend class QX11PaintEngine; + friend class QX11PaintEnginePrivate; + friend class QWin32PaintEngine; + friend class QWin32PaintEnginePrivate; + friend class QRasterPaintEngine; + friend class QAlphaPaintEngine; + friend class QPreviewPaintEngine; +}; + +constexpr inline QFlags operator|(QPainter::RenderHints::enum_type f1, QPainter::RenderHints::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QPainter::RenderHints::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QPainter::RenderHints::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + +inline void QPainter::drawLine(const QLineF &l) +{ + drawLines(&l, 1); +} + +inline void QPainter::drawLine(const QLine &line) +{ + drawLines(&line, 1); +} + +inline void QPainter::drawLine(int x1, int y1, int x2, int y2) +{ + QLine l(x1, y1, x2, y2); + drawLines(&l, 1); +} + +inline void QPainter::drawLine(const QPoint &p1, const QPoint &p2) +{ + QLine l(p1, p2); + drawLines(&l, 1); +} + +inline void QPainter::drawLine(const QPointF &p1, const QPointF &p2) +{ + drawLine(QLineF(p1, p2)); +} + +inline void QPainter::drawLines(const QVector &lines) +{ + drawLines(lines.constData(), lines.size()); +} + +inline void QPainter::drawLines(const QVector &lines) +{ + drawLines(lines.constData(), lines.size()); +} + +inline void QPainter::drawLines(const QVector &pointPairs) +{ + drawLines(pointPairs.constData(), pointPairs.size() / 2); +} + +inline void QPainter::drawLines(const QVector &pointPairs) +{ + drawLines(pointPairs.constData(), pointPairs.size() / 2); +} + +inline void QPainter::drawPolyline(const QPolygonF &polyline) +{ + drawPolyline(polyline.constData(), polyline.size()); +} + +inline void QPainter::drawPolyline(const QPolygon &polyline) +{ + drawPolyline(polyline.constData(), polyline.size()); +} + +inline void QPainter::drawPolygon(const QPolygonF &polygon, Qt::FillRule fillRule) +{ + drawPolygon(polygon.constData(), polygon.size(), fillRule); +} + +inline void QPainter::drawPolygon(const QPolygon &polygon, Qt::FillRule fillRule) +{ + drawPolygon(polygon.constData(), polygon.size(), fillRule); +} + +inline void QPainter::drawConvexPolygon(const QPolygonF &poly) +{ + drawConvexPolygon(poly.constData(), poly.size()); +} + +inline void QPainter::drawConvexPolygon(const QPolygon &poly) +{ + drawConvexPolygon(poly.constData(), poly.size()); +} + +inline void QPainter::drawRect(const QRectF &rect) +{ + drawRects(&rect, 1); +} + +inline void QPainter::drawRect(int x, int y, int w, int h) +{ + QRect r(x, y, w, h); + drawRects(&r, 1); +} + +inline void QPainter::drawRect(const QRect &r) +{ + drawRects(&r, 1); +} + +inline void QPainter::drawRects(const QVector &rects) +{ + drawRects(rects.constData(), rects.size()); +} + +inline void QPainter::drawRects(const QVector &rects) +{ + drawRects(rects.constData(), rects.size()); +} + +inline void QPainter::drawPoint(const QPointF &p) +{ + drawPoints(&p, 1); +} + +inline void QPainter::drawPoint(int x, int y) +{ + QPoint p(x, y); + drawPoints(&p, 1); +} + +inline void QPainter::drawPoint(const QPoint &p) +{ + drawPoints(&p, 1); +} + +inline void QPainter::drawPoints(const QPolygonF &points) +{ + drawPoints(points.constData(), points.size()); +} + +inline void QPainter::drawPoints(const QPolygon &points) +{ + drawPoints(points.constData(), points.size()); +} + +inline void QPainter::drawRoundRect(int x, int y, int w, int h, int xRnd, int yRnd) +{ + drawRoundRect(QRectF(x, y, w, h), xRnd, yRnd); +} + +inline void QPainter::drawRoundRect(const QRect &rect, int xRnd, int yRnd) +{ + drawRoundRect(QRectF(rect), xRnd, yRnd); +} + +inline void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, + Qt::SizeMode mode) +{ + drawRoundedRect(QRectF(x, y, w, h), xRadius, yRadius, mode); +} + +inline void QPainter::drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, + Qt::SizeMode mode) +{ + drawRoundedRect(QRectF(rect), xRadius, yRadius, mode); +} + +inline void QPainter::drawEllipse(int x, int y, int w, int h) +{ + drawEllipse(QRect(x, y, w, h)); +} + +inline void QPainter::drawEllipse(const QPointF ¢er, qreal rx, qreal ry) +{ + drawEllipse(QRectF(center.x() - rx, center.y() - ry, 2 * rx, 2 * ry)); +} + +inline void QPainter::drawEllipse(const QPoint ¢er, int rx, int ry) +{ + drawEllipse(QRect(center.x() - rx, center.y() - ry, 2 * rx, 2 * ry)); +} + +inline void QPainter::drawArc(const QRect &r, int a, int alen) +{ + drawArc(QRectF(r), a, alen); +} + +inline void QPainter::drawArc(int x, int y, int w, int h, int a, int alen) +{ + drawArc(QRectF(x, y, w, h), a, alen); +} + +inline void QPainter::drawPie(const QRect &rect, int a, int alen) +{ + drawPie(QRectF(rect), a, alen); +} + +inline void QPainter::drawPie(int x, int y, int w, int h, int a, int alen) +{ + drawPie(QRectF(x, y, w, h), a, alen); +} + +inline void QPainter::drawChord(const QRect &rect, int a, int alen) +{ + drawChord(QRectF(rect), a, alen); +} + +inline void QPainter::drawChord(int x, int y, int w, int h, int a, int alen) +{ + drawChord(QRectF(x, y, w, h), a, alen); +} + +inline void QPainter::setClipRect(int x, int y, int w, int h, Qt::ClipOperation op) +{ + setClipRect(QRect(x, y, w, h), op); +} + +inline void QPainter::eraseRect(const QRect &rect) +{ + eraseRect(QRectF(rect)); +} + +inline void QPainter::eraseRect(int x, int y, int w, int h) +{ + eraseRect(QRectF(x, y, w, h)); +} + +inline void QPainter::fillRect(int x, int y, int w, int h, const QBrush &b) +{ + fillRect(QRect(x, y, w, h), b); +} + +inline void QPainter::fillRect(int x, int y, int w, int h, const QColor &b) +{ + fillRect(QRect(x, y, w, h), b); +} + +inline void QPainter::fillRect(int x, int y, int w, int h, Qt::GlobalColor c) +{ + fillRect(QRect(x, y, w, h), QColor(c)); +} + +inline void QPainter::fillRect(const QRect &r, Qt::GlobalColor c) +{ + fillRect(r, QColor(c)); +} + +inline void QPainter::fillRect(const QRectF &r, Qt::GlobalColor c) +{ + fillRect(r, QColor(c)); +} + +inline void QPainter::fillRect(int x, int y, int w, int h, Qt::BrushStyle style) +{ + fillRect(QRectF(x, y, w, h), QBrush(style)); +} + +inline void QPainter::fillRect(const QRect &r, Qt::BrushStyle style) +{ + fillRect(QRectF(r), QBrush(style)); +} + +inline void QPainter::fillRect(const QRectF &r, Qt::BrushStyle style) +{ + fillRect(r, QBrush(style)); +} + + +inline void QPainter::setBrushOrigin(int x, int y) +{ + setBrushOrigin(QPoint(x, y)); +} + +inline void QPainter::setBrushOrigin(const QPoint &p) +{ + setBrushOrigin(QPointF(p)); +} + +inline void QPainter::drawTiledPixmap(const QRect &rect, const QPixmap &pm, const QPoint &offset) +{ + drawTiledPixmap(QRectF(rect), pm, QPointF(offset)); +} + +inline void QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPixmap &pm, int sx, int sy) +{ + drawTiledPixmap(QRectF(x, y, w, h), pm, QPointF(sx, sy)); +} + +inline void QPainter::drawPixmap(const QRect &targetRect, const QPixmap &pixmap, const QRect &sourceRect) +{ + drawPixmap(QRectF(targetRect), pixmap, QRectF(sourceRect)); +} + +inline void QPainter::drawPixmap(const QPoint &p, const QPixmap &pm) +{ + drawPixmap(QPointF(p), pm); +} + +inline void QPainter::drawPixmap(const QRect &r, const QPixmap &pm) +{ + drawPixmap(QRectF(r), pm, QRectF()); +} + +inline void QPainter::drawPixmap(int x, int y, const QPixmap &pm) +{ + drawPixmap(QPointF(x, y), pm); +} + +inline void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pm) +{ + drawPixmap(QRectF(x, y, w, h), pm, QRectF()); +} + +inline void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pm, + int sx, int sy, int sw, int sh) +{ + drawPixmap(QRectF(x, y, w, h), pm, QRectF(sx, sy, sw, sh)); +} + +inline void QPainter::drawPixmap(int x, int y, const QPixmap &pm, + int sx, int sy, int sw, int sh) +{ + drawPixmap(QRectF(x, y, -1, -1), pm, QRectF(sx, sy, sw, sh)); +} + +inline void QPainter::drawPixmap(const QPointF &p, const QPixmap &pm, const QRectF &sr) +{ + drawPixmap(QRectF(p.x(), p.y(), -1, -1), pm, sr); +} + +inline void QPainter::drawPixmap(const QPoint &p, const QPixmap &pm, const QRect &sr) +{ + drawPixmap(QRectF(p.x(), p.y(), -1, -1), pm, sr); +} + +inline void QPainter::drawTextItem(int x, int y, const QTextItem &ti) +{ + drawTextItem(QPointF(x, y), ti); +} + +inline void QPainter::drawImage(const QRect &targetRect, const QImage &image, const QRect &sourceRect, + Qt::ImageConversionFlags flags) +{ + drawImage(QRectF(targetRect), image, QRectF(sourceRect), flags); +} + +inline void QPainter::drawImage(const QPointF &p, const QImage &image, const QRectF &sr, + Qt::ImageConversionFlags flags) +{ + drawImage(QRectF(p.x(), p.y(), -1, -1), image, sr, flags); +} + +inline void QPainter::drawImage(const QPoint &p, const QImage &image, const QRect &sr, + Qt::ImageConversionFlags flags) +{ + drawImage(QRect(p.x(), p.y(), -1, -1), image, sr, flags); +} + + +inline void QPainter::drawImage(const QRectF &r, const QImage &image) +{ + drawImage(r, image, QRect(0, 0, image.width(), image.height())); +} + +inline void QPainter::drawImage(const QRect &r, const QImage &image) +{ + drawImage(r, image, QRectF(0, 0, image.width(), image.height())); +} + +inline void QPainter::drawImage(const QPoint &p, const QImage &image) +{ + drawImage(QPointF(p), image); +} + +inline void QPainter::drawImage(int x, int y, const QImage &image, int sx, int sy, int sw, int sh, + Qt::ImageConversionFlags flags) +{ + if (sx == 0 && sy == 0 && sw == -1 && sh == -1 && flags == Qt::AutoColor) + drawImage(QPointF(x, y), image); + else + drawImage(QRectF(x, y, -1, -1), image, QRectF(sx, sy, sw, sh), flags); +} + +inline void QPainter::drawStaticText(const QPoint &p, const QStaticText &staticText) +{ + drawStaticText(QPointF(p), staticText); +} + +inline void QPainter::drawStaticText(int x, int y, const QStaticText &staticText) +{ + drawStaticText(QPointF(x, y), staticText); +} + +inline void QPainter::drawTextItem(const QPoint &p, const QTextItem &ti) +{ + drawTextItem(QPointF(p), ti); +} + +inline void QPainter::drawText(const QPoint &p, const QString &s) +{ + drawText(QPointF(p), s); +} + +inline void QPainter::drawText(int x, int y, int w, int h, int flags, const QString &str, QRect *br) +{ + drawText(QRect(x, y, w, h), flags, str, br); +} + +inline void QPainter::drawText(int x, int y, const QString &s) +{ + drawText(QPointF(x, y), s); +} + +inline QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text) +{ + return boundingRect(QRect(x, y, w, h), flags, text); +} + +inline void QPainter::translate(qreal dx, qreal dy) +{ + translate(QPointF(dx, dy)); +} + +inline void QPainter::translate(const QPoint &offset) +{ + translate(offset.x(), offset.y()); +} + +inline void QPainter::setViewport(int x, int y, int w, int h) +{ + setViewport(QRect(x, y, w, h)); +} + +inline void QPainter::setWindow(int x, int y, int w, int h) +{ + setWindow(QRect(x, y, w, h)); +} + + +inline void QPainter::drawPicture(int x, int y, const QPicture &p) +{ + drawPicture(QPoint(x, y), p); +} + +inline void QPainter::drawPicture(const QPoint &pt, const QPicture &p) +{ + drawPicture(QPointF(pt), p); +} + + + + + +# 47 "/usr/include/qt4/QtGui/qgraphicsview.h" 2 +# 1 "/usr/include/qt4/QtGui/qscrollarea.h" 1 +# 45 "/usr/include/qt4/QtGui/qscrollarea.h" +# 1 "/usr/include/qt4/QtGui/qabstractscrollarea.h" 1 +# 47 "/usr/include/qt4/QtGui/qabstractscrollarea.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QMargins; +class QScrollBar; +class QAbstractScrollAreaPrivate; + +class QAbstractScrollArea : public QFrame +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + explicit QAbstractScrollArea(QWidget* parent=0); + ~QAbstractScrollArea(); + + Qt::ScrollBarPolicy verticalScrollBarPolicy() const; + void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy); + QScrollBar *verticalScrollBar() const; + void setVerticalScrollBar(QScrollBar *scrollbar); + + Qt::ScrollBarPolicy horizontalScrollBarPolicy() const; + void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy); + QScrollBar *horizontalScrollBar() const; + void setHorizontalScrollBar(QScrollBar *scrollbar); + + QWidget *cornerWidget() const; + void setCornerWidget(QWidget *widget); + + void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment); + QWidgetList scrollBarWidgets(Qt::Alignment alignment); + + QWidget *viewport() const; + void setViewport(QWidget *widget); + QSize maximumViewportSize() const; + + QSize minimumSizeHint() const; + + QSize sizeHint() const; + +protected : + void setupViewport(QWidget *viewport); + +protected: + QAbstractScrollArea(QAbstractScrollAreaPrivate &dd, QWidget *parent = 0); + void setViewportMargins(int left, int top, int right, int bottom); + void setViewportMargins(const QMargins &margins); + + bool event(QEvent *); + virtual bool viewportEvent(QEvent *); + + void resizeEvent(QResizeEvent *); + void paintEvent(QPaintEvent *); + void mousePressEvent(QMouseEvent *); + void mouseReleaseEvent(QMouseEvent *); + void mouseDoubleClickEvent(QMouseEvent *); + void mouseMoveEvent(QMouseEvent *); + + void wheelEvent(QWheelEvent *); + + + void contextMenuEvent(QContextMenuEvent *); + + + void dragEnterEvent(QDragEnterEvent *); + void dragMoveEvent(QDragMoveEvent *); + void dragLeaveEvent(QDragLeaveEvent *); + void dropEvent(QDropEvent *); + + + void keyPressEvent(QKeyEvent *); + + virtual void scrollContentsBy(int dx, int dy); + +private: + inline QAbstractScrollAreaPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractScrollAreaPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractScrollAreaPrivate; + QAbstractScrollArea(const QAbstractScrollArea &); QAbstractScrollArea &operator=(const QAbstractScrollArea &); + + + + + friend class QStyleSheetStyle; + friend class QWidgetPrivate; +}; + + + + + + +# 46 "/usr/include/qt4/QtGui/qscrollarea.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QScrollAreaPrivate; + +class QScrollArea : public QAbstractScrollArea +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + explicit QScrollArea(QWidget* parent=0); + ~QScrollArea(); + + QWidget *widget() const; + void setWidget(QWidget *widget); + QWidget *takeWidget(); + + bool widgetResizable() const; + void setWidgetResizable(bool resizable); + + QSize sizeHint() const; + bool focusNextPrevChild(bool next); + + Qt::Alignment alignment() const; + void setAlignment(Qt::Alignment); + + void ensureVisible(int x, int y, int xmargin = 50, int ymargin = 50); + void ensureWidgetVisible(QWidget *childWidget, int xmargin = 50, int ymargin = 50); + +protected: + QScrollArea(QScrollAreaPrivate &dd, QWidget *parent = 0); + bool event(QEvent *); + bool eventFilter(QObject *, QEvent *); + void resizeEvent(QResizeEvent *); + void scrollContentsBy(int dx, int dy); + +private: + inline QScrollAreaPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QScrollAreaPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QScrollAreaPrivate; + QScrollArea(const QScrollArea &); QScrollArea &operator=(const QScrollArea &); +}; + + + + + + +# 48 "/usr/include/qt4/QtGui/qgraphicsview.h" 2 +# 1 "/usr/include/qt4/QtGui/qgraphicsscene.h" 1 +# 49 "/usr/include/qt4/QtGui/qgraphicsview.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QGraphicsItem; +class QPainterPath; +class QPolygonF; +class QStyleOptionGraphicsItem; + +class QGraphicsViewPrivate; +class QGraphicsView : public QAbstractScrollArea +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + + + + +public: + enum ViewportAnchor { + NoAnchor, + AnchorViewCenter, + AnchorUnderMouse + }; + + enum CacheModeFlag { + CacheNone = 0x0, + CacheBackground = 0x1 + }; + typedef QFlags CacheMode; + + enum DragMode { + NoDrag, + ScrollHandDrag, + RubberBandDrag + }; + + enum ViewportUpdateMode { + FullViewportUpdate, + MinimalViewportUpdate, + SmartViewportUpdate, + NoViewportUpdate, + BoundingRectViewportUpdate + }; + + enum OptimizationFlag { + DontClipPainter = 0x1, + DontSavePainterState = 0x2, + DontAdjustForAntialiasing = 0x4, + IndirectPainting = 0x8 + }; + typedef QFlags OptimizationFlags; + + QGraphicsView(QWidget *parent = 0); + QGraphicsView(QGraphicsScene *scene, QWidget *parent = 0); + ~QGraphicsView(); + + QSize sizeHint() const; + + QPainter::RenderHints renderHints() const; + void setRenderHint(QPainter::RenderHint hint, bool enabled = true); + void setRenderHints(QPainter::RenderHints hints); + + Qt::Alignment alignment() const; + void setAlignment(Qt::Alignment alignment); + + ViewportAnchor transformationAnchor() const; + void setTransformationAnchor(ViewportAnchor anchor); + + ViewportAnchor resizeAnchor() const; + void setResizeAnchor(ViewportAnchor anchor); + + ViewportUpdateMode viewportUpdateMode() const; + void setViewportUpdateMode(ViewportUpdateMode mode); + + OptimizationFlags optimizationFlags() const; + void setOptimizationFlag(OptimizationFlag flag, bool enabled = true); + void setOptimizationFlags(OptimizationFlags flags); + + DragMode dragMode() const; + void setDragMode(DragMode mode); + + + Qt::ItemSelectionMode rubberBandSelectionMode() const; + void setRubberBandSelectionMode(Qt::ItemSelectionMode mode); + + + CacheMode cacheMode() const; + void setCacheMode(CacheMode mode); + void resetCachedContent(); + + bool isInteractive() const; + void setInteractive(bool allowed); + + QGraphicsScene *scene() const; + void setScene(QGraphicsScene *scene); + + QRectF sceneRect() const; + void setSceneRect(const QRectF &rect); + inline void setSceneRect(qreal x, qreal y, qreal w, qreal h); + + QMatrix matrix() const; + void setMatrix(const QMatrix &matrix, bool combine = false); + void resetMatrix(); + QTransform transform() const; + QTransform viewportTransform() const; + bool isTransformed() const; + void setTransform(const QTransform &matrix, bool combine = false); + void resetTransform(); + void rotate(qreal angle); + void scale(qreal sx, qreal sy); + void shear(qreal sh, qreal sv); + void translate(qreal dx, qreal dy); + + void centerOn(const QPointF &pos); + inline void centerOn(qreal x, qreal y); + void centerOn(const QGraphicsItem *item); + void ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50); + inline void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50); + void ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50); + void fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRadioMode = Qt::IgnoreAspectRatio); + inline void fitInView(qreal x, qreal y, qreal w, qreal h, + Qt::AspectRatioMode aspectRadioMode = Qt::IgnoreAspectRatio); + void fitInView(const QGraphicsItem *item, + Qt::AspectRatioMode aspectRadioMode = Qt::IgnoreAspectRatio); + + void render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), + Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio); + + QList items() const; + QList items(const QPoint &pos) const; + inline QList items(int x, int y) const; + QList items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + inline QList items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + QList items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + QList items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; + QGraphicsItem *itemAt(const QPoint &pos) const; + inline QGraphicsItem *itemAt(int x, int y) const; + + QPointF mapToScene(const QPoint &point) const; + QPolygonF mapToScene(const QRect &rect) const; + QPolygonF mapToScene(const QPolygon &polygon) const; + QPainterPath mapToScene(const QPainterPath &path) const; + QPoint mapFromScene(const QPointF &point) const; + QPolygon mapFromScene(const QRectF &rect) const; + QPolygon mapFromScene(const QPolygonF &polygon) const; + QPainterPath mapFromScene(const QPainterPath &path) const; + inline QPointF mapToScene(int x, int y) const; + inline QPolygonF mapToScene(int x, int y, int w, int h) const; + inline QPoint mapFromScene(qreal x, qreal y) const; + inline QPolygon mapFromScene(qreal x, qreal y, qreal w, qreal h) const; + + QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + + QBrush backgroundBrush() const; + void setBackgroundBrush(const QBrush &brush); + + QBrush foregroundBrush() const; + void setForegroundBrush(const QBrush &brush); + +public : + void updateScene(const QList &rects); + void invalidateScene(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers); + void updateSceneRect(const QRectF &rect); + +protected : + void setupViewport(QWidget *widget); + +protected: + QGraphicsView(QGraphicsViewPrivate &, QWidget *parent = 0); + bool event(QEvent *event); + bool viewportEvent(QEvent *event); + + + void contextMenuEvent(QContextMenuEvent *event); + + void dragEnterEvent(QDragEnterEvent *event); + void dragLeaveEvent(QDragLeaveEvent *event); + void dragMoveEvent(QDragMoveEvent *event); + void dropEvent(QDropEvent *event); + void focusInEvent(QFocusEvent *event); + bool focusNextPrevChild(bool next); + void focusOutEvent(QFocusEvent *event); + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + void mouseDoubleClickEvent(QMouseEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + + void wheelEvent(QWheelEvent *event); + + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent *event); + void scrollContentsBy(int dx, int dy); + void showEvent(QShowEvent *event); + void inputMethodEvent(QInputMethodEvent *event); + + virtual void drawBackground(QPainter *painter, const QRectF &rect); + virtual void drawForeground(QPainter *painter, const QRectF &rect); + virtual void drawItems(QPainter *painter, int numItems, + QGraphicsItem *items[], + const QStyleOptionGraphicsItem options[]); + +private: + inline QGraphicsViewPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QGraphicsViewPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QGraphicsViewPrivate; + QGraphicsView(const QGraphicsView &); QGraphicsView &operator=(const QGraphicsView &); + + + + + friend class QGraphicsSceneWidget; + friend class QGraphicsScene; + friend class QGraphicsScenePrivate; + friend class QGraphicsItemPrivate; +}; + +constexpr inline QFlags operator|(QGraphicsView::CacheMode::enum_type f1, QGraphicsView::CacheMode::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QGraphicsView::CacheMode::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QGraphicsView::CacheMode::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(QGraphicsView::OptimizationFlags::enum_type f1, QGraphicsView::OptimizationFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QGraphicsView::OptimizationFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QGraphicsView::OptimizationFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + +inline void QGraphicsView::setSceneRect(qreal ax, qreal ay, qreal aw, qreal ah) +{ setSceneRect(QRectF(ax, ay, aw, ah)); } +inline void QGraphicsView::centerOn(qreal ax, qreal ay) +{ centerOn(QPointF(ax, ay)); } +inline void QGraphicsView::ensureVisible(qreal ax, qreal ay, qreal aw, qreal ah, int xmargin, int ymargin) +{ ensureVisible(QRectF(ax, ay, aw, ah), xmargin, ymargin); } +inline void QGraphicsView::fitInView(qreal ax, qreal ay, qreal w, qreal h, Qt::AspectRatioMode mode) +{ fitInView(QRectF(ax, ay, w, h), mode); } +inline QList QGraphicsView::items(int ax, int ay) const +{ return items(QPoint(ax, ay)); } +inline QList QGraphicsView::items(int ax, int ay, int w, int h, Qt::ItemSelectionMode mode) const +{ return items(QRect(ax, ay, w, h), mode); } +inline QGraphicsItem *QGraphicsView::itemAt(int ax, int ay) const +{ return itemAt(QPoint(ax, ay)); } +inline QPointF QGraphicsView::mapToScene(int ax, int ay) const +{ return mapToScene(QPoint(ax, ay)); } +inline QPolygonF QGraphicsView::mapToScene(int ax, int ay, int w, int h) const +{ return mapToScene(QRect(ax, ay, w, h)); } +inline QPoint QGraphicsView::mapFromScene(qreal ax, qreal ay) const +{ return mapFromScene(QPointF(ax, ay)); } +inline QPolygon QGraphicsView::mapFromScene(qreal ax, qreal ay, qreal w, qreal h) const +{ return mapFromScene(QRectF(ax, ay, w, h)); } + + + + + + +# 1 "/usr/include/qt4/QtGui/QGraphicsView" 2 +# 53 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QXmlStreamReader" 1 +# 1 "/usr/include/qt4/QtCore/qxmlstream.h" 1 +# 53 "/usr/include/qt4/QtCore/qxmlstream.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; +# 116 "/usr/include/qt4/QtCore/qxmlstream.h" +class QXmlStreamStringRef { + QString m_string; + int m_position, m_size; +public: + inline QXmlStreamStringRef():m_position(0), m_size(0){} + inline QXmlStreamStringRef(const QStringRef &aString) + :m_string(aString.string()?*aString.string():QString()), m_position(aString.position()), m_size(aString.size()){} + inline QXmlStreamStringRef(const QString &aString):m_string(aString), m_position(0), m_size(aString.size()){} + inline ~QXmlStreamStringRef(){} + inline void clear() { m_string.clear(); m_position = m_size = 0; } + inline operator QStringRef() const { return QStringRef(&m_string, m_position, m_size); } + inline const QString *string() const { return &m_string; } + inline int position() const { return m_position; } + inline int size() const { return m_size; } +}; + + +class QXmlStreamReaderPrivate; +class QXmlStreamAttributes; +class QXmlStreamAttribute { + QXmlStreamStringRef m_name, m_namespaceUri, m_qualifiedName, m_value; + void *reserved; + uint m_isDefault : 1; + friend class QXmlStreamReaderPrivate; + friend class QXmlStreamAttributes; +public: + QXmlStreamAttribute(); + QXmlStreamAttribute(const QString &qualifiedName, const QString &value); + QXmlStreamAttribute(const QString &namespaceUri, const QString &name, const QString &value); + QXmlStreamAttribute(const QXmlStreamAttribute &); + QXmlStreamAttribute& operator=(const QXmlStreamAttribute &); + ~QXmlStreamAttribute(); + inline QStringRef namespaceUri() const { return m_namespaceUri; } + inline QStringRef name() const { return m_name; } + inline QStringRef qualifiedName() const { return m_qualifiedName; } + inline QStringRef prefix() const { + return QStringRef(m_qualifiedName.string(), + m_qualifiedName.position(), + qMax(0, m_qualifiedName.size() - m_name.size() - 1)); + } + inline QStringRef value() const { return m_value; } + inline bool isDefault() const { return m_isDefault; } + inline bool operator==(const QXmlStreamAttribute &other) const { + return (value() == other.value() + && (namespaceUri().isNull() ? (qualifiedName() == other.qualifiedName()) + : (namespaceUri() == other.namespaceUri() && name() == other.name()))); + } + inline bool operator!=(const QXmlStreamAttribute &other) const + { return !operator==(other); } +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QXmlStreamAttribute)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QXmlStreamAttribute"; } }; + +class QXmlStreamAttributes : public QVector +{ +public: + inline QXmlStreamAttributes() {} + QStringRef value(const QString &namespaceUri, const QString &name) const; + QStringRef value(const QString &namespaceUri, const QLatin1String &name) const; + QStringRef value(const QLatin1String &namespaceUri, const QLatin1String &name) const; + QStringRef value(const QString &qualifiedName) const; + QStringRef value(const QLatin1String &qualifiedName) const; + void append(const QString &namespaceUri, const QString &name, const QString &value); + void append(const QString &qualifiedName, const QString &value); + + inline bool hasAttribute(const QString &qualifiedName) const + { + return !value(qualifiedName).isNull(); + } + + inline bool hasAttribute(const QLatin1String &qualifiedName) const + { + return !value(qualifiedName).isNull(); + } + + inline bool hasAttribute(const QString &namespaceUri, const QString &name) const + { + return !value(namespaceUri, name).isNull(); + } + + + using QVector::append; + + + + +}; + +class QXmlStreamNamespaceDeclaration { + QXmlStreamStringRef m_prefix, m_namespaceUri; + void *reserved; + + friend class QXmlStreamReaderPrivate; +public: + QXmlStreamNamespaceDeclaration(); + QXmlStreamNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &); + QXmlStreamNamespaceDeclaration(const QString &prefix, const QString &namespaceUri); + ~QXmlStreamNamespaceDeclaration(); + QXmlStreamNamespaceDeclaration& operator=(const QXmlStreamNamespaceDeclaration &); + inline QStringRef prefix() const { return m_prefix; } + inline QStringRef namespaceUri() const { return m_namespaceUri; } + inline bool operator==(const QXmlStreamNamespaceDeclaration &other) const { + return (prefix() == other.prefix() && namespaceUri() == other.namespaceUri()); + } + inline bool operator!=(const QXmlStreamNamespaceDeclaration &other) const + { return !operator==(other); } +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QXmlStreamNamespaceDeclaration)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QXmlStreamNamespaceDeclaration"; } }; +typedef QVector QXmlStreamNamespaceDeclarations; + +class QXmlStreamNotationDeclaration { + QXmlStreamStringRef m_name, m_systemId, m_publicId; + void *reserved; + + friend class QXmlStreamReaderPrivate; +public: + QXmlStreamNotationDeclaration(); + ~QXmlStreamNotationDeclaration(); + QXmlStreamNotationDeclaration(const QXmlStreamNotationDeclaration &); + QXmlStreamNotationDeclaration& operator=(const QXmlStreamNotationDeclaration &); + inline QStringRef name() const { return m_name; } + inline QStringRef systemId() const { return m_systemId; } + inline QStringRef publicId() const { return m_publicId; } + inline bool operator==(const QXmlStreamNotationDeclaration &other) const { + return (name() == other.name() && systemId() == other.systemId() + && publicId() == other.publicId()); + } + inline bool operator!=(const QXmlStreamNotationDeclaration &other) const + { return !operator==(other); } +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QXmlStreamNotationDeclaration)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QXmlStreamNotationDeclaration"; } }; +typedef QVector QXmlStreamNotationDeclarations; + +class QXmlStreamEntityDeclaration { + QXmlStreamStringRef m_name, m_notationName, m_systemId, m_publicId, m_value; + void *reserved; + + friend class QXmlStreamReaderPrivate; +public: + QXmlStreamEntityDeclaration(); + ~QXmlStreamEntityDeclaration(); + QXmlStreamEntityDeclaration(const QXmlStreamEntityDeclaration &); + QXmlStreamEntityDeclaration& operator=(const QXmlStreamEntityDeclaration &); + inline QStringRef name() const { return m_name; } + inline QStringRef notationName() const { return m_notationName; } + inline QStringRef systemId() const { return m_systemId; } + inline QStringRef publicId() const { return m_publicId; } + inline QStringRef value() const { return m_value; } + inline bool operator==(const QXmlStreamEntityDeclaration &other) const { + return (name() == other.name() + && notationName() == other.notationName() + && systemId() == other.systemId() + && publicId() == other.publicId() + && value() == other.value()); + } + inline bool operator!=(const QXmlStreamEntityDeclaration &other) const + { return !operator==(other); } +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QXmlStreamEntityDeclaration)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QXmlStreamEntityDeclaration"; } }; +typedef QVector QXmlStreamEntityDeclarations; + + +class QXmlStreamEntityResolver +{ +public: + virtual ~QXmlStreamEntityResolver(); + virtual QString resolveEntity(const QString& publicId, const QString& systemId); + virtual QString resolveUndeclaredEntity(const QString &name); +}; + + +class QXmlStreamReader { + +public: + enum TokenType { + NoToken = 0, + Invalid, + StartDocument, + EndDocument, + StartElement, + EndElement, + Characters, + Comment, + DTD, + EntityReference, + ProcessingInstruction + }; + + + QXmlStreamReader(); + QXmlStreamReader(QIODevice *device); + QXmlStreamReader(const QByteArray &data); + QXmlStreamReader(const QString &data); + QXmlStreamReader(const char * data); + ~QXmlStreamReader(); + + void setDevice(QIODevice *device); + QIODevice *device() const; + void addData(const QByteArray &data); + void addData(const QString &data); + void addData(const char *data); + void clear(); + + + bool atEnd() const; + TokenType readNext(); + + bool readNextStartElement(); + void skipCurrentElement(); + + TokenType tokenType() const; + QString tokenString() const; + + void setNamespaceProcessing(bool); + bool namespaceProcessing() const; + + inline bool isStartDocument() const { return tokenType() == StartDocument; } + inline bool isEndDocument() const { return tokenType() == EndDocument; } + inline bool isStartElement() const { return tokenType() == StartElement; } + inline bool isEndElement() const { return tokenType() == EndElement; } + inline bool isCharacters() const { return tokenType() == Characters; } + bool isWhitespace() const; + bool isCDATA() const; + inline bool isComment() const { return tokenType() == Comment; } + inline bool isDTD() const { return tokenType() == DTD; } + inline bool isEntityReference() const { return tokenType() == EntityReference; } + inline bool isProcessingInstruction() const { return tokenType() == ProcessingInstruction; } + + bool isStandaloneDocument() const; + QStringRef documentVersion() const; + QStringRef documentEncoding() const; + + qint64 lineNumber() const; + qint64 columnNumber() const; + qint64 characterOffset() const; + + QXmlStreamAttributes attributes() const; + + enum ReadElementTextBehaviour { + ErrorOnUnexpectedElement, + IncludeChildElements, + SkipChildElements + }; + QString readElementText(ReadElementTextBehaviour behaviour); + QString readElementText(); + + QStringRef name() const; + QStringRef namespaceUri() const; + QStringRef qualifiedName() const; + QStringRef prefix() const; + + QStringRef processingInstructionTarget() const; + QStringRef processingInstructionData() const; + + QStringRef text() const; + + QXmlStreamNamespaceDeclarations namespaceDeclarations() const; + void addExtraNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &extraNamespaceDeclaraction); + void addExtraNamespaceDeclarations(const QXmlStreamNamespaceDeclarations &extraNamespaceDeclaractions); + QXmlStreamNotationDeclarations notationDeclarations() const; + QXmlStreamEntityDeclarations entityDeclarations() const; + QStringRef dtdName() const; + QStringRef dtdPublicId() const; + QStringRef dtdSystemId() const; + + + enum Error { + NoError, + UnexpectedElementError, + CustomError, + NotWellFormedError, + PrematureEndOfDocumentError + }; + void raiseError(const QString& message = QString()); + QString errorString() const; + Error error() const; + + inline bool hasError() const + { + return error() != NoError; + } + + void setEntityResolver(QXmlStreamEntityResolver *resolver); + QXmlStreamEntityResolver *entityResolver() const; + +private: + QXmlStreamReader(const QXmlStreamReader &); QXmlStreamReader &operator=(const QXmlStreamReader &); + inline QXmlStreamReaderPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QXmlStreamReaderPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QXmlStreamReaderPrivate; + QScopedPointer d_ptr; + +}; + + + + +class QXmlStreamWriterPrivate; + +class QXmlStreamWriter +{ + + +public: + QXmlStreamWriter(); + QXmlStreamWriter(QIODevice *device); + QXmlStreamWriter(QByteArray *array); + QXmlStreamWriter(QString *string); + ~QXmlStreamWriter(); + + void setDevice(QIODevice *device); + QIODevice *device() const; + + + void setCodec(QTextCodec *codec); + void setCodec(const char *codecName); + QTextCodec *codec() const; + + + void setAutoFormatting(bool); + bool autoFormatting() const; + + void setAutoFormattingIndent(int spacesOrTabs); + int autoFormattingIndent() const; + + void writeAttribute(const QString &qualifiedName, const QString &value); + void writeAttribute(const QString &namespaceUri, const QString &name, const QString &value); + void writeAttribute(const QXmlStreamAttribute& attribute); + void writeAttributes(const QXmlStreamAttributes& attributes); + + void writeCDATA(const QString &text); + void writeCharacters(const QString &text); + void writeComment(const QString &text); + + void writeDTD(const QString &dtd); + + void writeEmptyElement(const QString &qualifiedName); + void writeEmptyElement(const QString &namespaceUri, const QString &name); + + void writeTextElement(const QString &qualifiedName, const QString &text); + void writeTextElement(const QString &namespaceUri, const QString &name, const QString &text); + + void writeEndDocument(); + void writeEndElement(); + + void writeEntityReference(const QString &name); + void writeNamespace(const QString &namespaceUri, const QString &prefix = QString()); + void writeDefaultNamespace(const QString &namespaceUri); + void writeProcessingInstruction(const QString &target, const QString &data = QString()); + + void writeStartDocument(); + void writeStartDocument(const QString &version); + void writeStartDocument(const QString &version, bool standalone); + void writeStartElement(const QString &qualifiedName); + void writeStartElement(const QString &namespaceUri, const QString &name); + + + void writeCurrentToken(const QXmlStreamReader &reader); + + + bool hasError() const; + +private: + QXmlStreamWriter(const QXmlStreamWriter &); QXmlStreamWriter &operator=(const QXmlStreamWriter &); + inline QXmlStreamWriterPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QXmlStreamWriterPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QXmlStreamWriterPrivate; + QScopedPointer d_ptr; +}; + + + + + +# 1 "/usr/include/qt4/QtCore/QXmlStreamReader" 2 +# 54 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QFile" 1 +# 1 "/usr/include/qt4/QtCore/qfile.h" 1 +# 56 "/usr/include/qt4/QtCore/qfile.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QAbstractFileEngine; +class QFilePrivate; + +class QFile : public QIODevice +{ + + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + inline QFilePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFilePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFilePrivate; + +public: + + enum FileError { + NoError = 0, + ReadError = 1, + WriteError = 2, + FatalError = 3, + ResourceError = 4, + OpenError = 5, + AbortError = 6, + TimeOutError = 7, + UnspecifiedError = 8, + RemoveError = 9, + RenameError = 10, + PositionError = 11, + ResizeError = 12, + PermissionsError = 13, + CopyError = 14 + + + + }; + + enum Permission { + ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000, + ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100, + ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010, + ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001 + }; + typedef QFlags Permissions; + + enum FileHandleFlag { + AutoCloseHandle = 0x0001, + DontCloseHandle = 0 + }; + typedef QFlags FileHandleFlags; + + QFile(); + QFile(const QString &name); + + explicit QFile(QObject *parent); + QFile(const QString &name, QObject *parent); + + ~QFile(); + + FileError error() const; + void unsetError(); + + QString fileName() const; + void setFileName(const QString &name); + + typedef QByteArray (*EncoderFn)(const QString &fileName); + typedef QString (*DecoderFn)(const QByteArray &localfileName); + static QByteArray encodeName(const QString &fileName); + static QString decodeName(const QByteArray &localFileName); + inline static QString decodeName(const char *localFileName) + { return decodeName(QByteArray(localFileName)); } + static void setEncodingFunction(EncoderFn); + static void setDecodingFunction(DecoderFn); + + bool exists() const; + static bool exists(const QString &fileName); + + QString readLink() const; + static QString readLink(const QString &fileName); + inline QString symLinkTarget() const { return readLink(); } + inline static QString symLinkTarget(const QString &fileName) { return readLink(fileName); } + + bool remove(); + static bool remove(const QString &fileName); + + bool rename(const QString &newName); + static bool rename(const QString &oldName, const QString &newName); + + bool link(const QString &newName); + static bool link(const QString &oldname, const QString &newName); + + bool copy(const QString &newName); + static bool copy(const QString &fileName, const QString &newName); + + bool isSequential() const; + + bool open(OpenMode flags); + bool open(FILE *f, OpenMode flags); + bool open(int fd, OpenMode flags); + + + + bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags); + bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags); + virtual void close(); + + qint64 size() const; + qint64 pos() const; + bool seek(qint64 offset); + bool atEnd() const; + bool flush(); + + bool resize(qint64 sz); + static bool resize(const QString &filename, qint64 sz); + + Permissions permissions() const; + static Permissions permissions(const QString &filename); + bool setPermissions(Permissions permissionSpec); + static bool setPermissions(const QString &filename, Permissions permissionSpec); + + int handle() const; + + enum MemoryMapFlags { + NoOptions = 0 + }; + + uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions); + bool unmap(uchar *address); + + virtual QAbstractFileEngine *fileEngine() const; +# 197 "/usr/include/qt4/QtCore/qfile.h" +protected: + + + + QFile(QFilePrivate &dd, QObject *parent = 0); + + + qint64 readData(char *data, qint64 maxlen); + qint64 writeData(const char *data, qint64 len); + qint64 readLineData(char *data, qint64 maxlen); + +private: + QFile(const QFile &); QFile &operator=(const QFile &); +}; + +constexpr inline QFlags operator|(QFile::Permissions::enum_type f1, QFile::Permissions::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QFile::Permissions::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QFile::Permissions::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + +# 1 "/usr/include/qt4/QtCore/QFile" 2 +# 55 "common.h" 2 +# 1 "/usr/include/qt4/QtCore/QTimer" 1 +# 1 "/usr/include/qt4/QtCore/qtimer.h" 1 +# 47 "/usr/include/qt4/QtCore/qtimer.h" +# 1 "/usr/include/qt4/QtCore/qbasictimer.h" 1 +# 47 "/usr/include/qt4/QtCore/qbasictimer.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QObject; + +class QBasicTimer +{ + int id; +public: + inline QBasicTimer() : id(0) {} + inline ~QBasicTimer() { if (id) stop(); } + + inline bool isActive() const { return id != 0; } + inline int timerId() const { return id; } + + void start(int msec, QObject *obj); + void stop(); +}; +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QBasicTimer)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QBasicTimer"; } }; + + + + +# 48 "/usr/include/qt4/QtCore/qtimer.h" 2 + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QTimer : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + +public: + explicit QTimer(QObject *parent = 0); + + + + ~QTimer(); + + inline bool isActive() const { return id >= 0; } + int timerId() const { return id; } + + void setInterval(int msec); + int interval() const { return inter; } + + inline void setSingleShot(bool singleShot); + inline bool isSingleShot() const { return single; } + + static void singleShot(int msec, QObject *receiver, const char *member); + +public : + void start(int msec); + + void start(); + void stop(); + + + + + + +protected: + void timeout(); + +protected: + void timerEvent(QTimerEvent *); + +private: + QTimer(const QTimer &); QTimer &operator=(const QTimer &); + + inline int startTimer(int){ return -1;} + inline void killTimer(int){} + + int id, inter, del; + uint single : 1; + uint nulltimer : 1; +}; + +inline void QTimer::setSingleShot(bool asingleShot) { single = asingleShot; } + + + + +# 1 "/usr/include/qt4/QtCore/QTimer" 2 +# 56 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QDialog" 1 +# 1 "/usr/include/qt4/QtGui/qdialog.h" 1 +# 47 "/usr/include/qt4/QtGui/qdialog.h" + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QPushButton; +class QDialogPrivate; + +class QDialog : public QWidget +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + friend class QPushButton; + + + + +public: + explicit QDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); + + + + + ~QDialog(); + + enum DialogCode { Rejected, Accepted }; + + int result() const; + + void setVisible(bool visible); + + void setOrientation(Qt::Orientation orientation); + Qt::Orientation orientation() const; + + void setExtension(QWidget* extension); + QWidget* extension() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + + void setSizeGripEnabled(bool); + bool isSizeGripEnabled() const; + + void setModal(bool modal); + void setResult(int r); + +protected: + void finished(int result); + void accepted(); + void rejected(); + +public : + void open(); + int exec(); + virtual void done(int); + virtual void accept(); + virtual void reject(); + + void showExtension(bool); + +protected: + QDialog(QDialogPrivate &, QWidget *parent, Qt::WindowFlags f = 0); + + + + + void keyPressEvent(QKeyEvent *); + void closeEvent(QCloseEvent *); + void showEvent(QShowEvent *); + void resizeEvent(QResizeEvent *); + + void contextMenuEvent(QContextMenuEvent *); + + bool eventFilter(QObject *, QEvent *); + void adjustPosition(QWidget*); +private: + inline QDialogPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QDialogPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QDialogPrivate; + QDialog(const QDialog &); QDialog &operator=(const QDialog &); +# 134 "/usr/include/qt4/QtGui/qdialog.h" +}; + + + + +# 1 "/usr/include/qt4/QtGui/QDialog" 2 +# 57 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QApplication" 1 +# 1 "/usr/include/qt4/QtGui/qapplication.h" 1 +# 45 "/usr/include/qt4/QtGui/qapplication.h" +# 1 "/usr/include/qt4/QtCore/qcoreapplication.h" 1 +# 46 "/usr/include/qt4/QtCore/qcoreapplication.h" +# 1 "/usr/include/qt4/QtCore/qcoreevent.h" 1 +# 49 "/usr/include/qt4/QtCore/qcoreevent.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QEventPrivate; +class QEvent +{ + public: static const QMetaObject staticMetaObject; private: + + +public: + enum Type { + + + + + + + None = 0, + Timer = 1, + MouseButtonPress = 2, + MouseButtonRelease = 3, + MouseButtonDblClick = 4, + MouseMove = 5, + KeyPress = 6, + KeyRelease = 7, + FocusIn = 8, + FocusOut = 9, + Enter = 10, + Leave = 11, + Paint = 12, + Move = 13, + Resize = 14, + Create = 15, + Destroy = 16, + Show = 17, + Hide = 18, + Close = 19, + Quit = 20, + ParentChange = 21, + ParentAboutToChange = 131, + + + + ThreadChange = 22, + WindowActivate = 24, + WindowDeactivate = 25, + ShowToParent = 26, + HideToParent = 27, + Wheel = 31, + WindowTitleChange = 33, + WindowIconChange = 34, + ApplicationWindowIconChange = 35, + ApplicationFontChange = 36, + ApplicationLayoutDirectionChange = 37, + ApplicationPaletteChange = 38, + PaletteChange = 39, + Clipboard = 40, + Speech = 42, + MetaCall = 43, + SockAct = 50, + WinEventAct = 132, + DeferredDelete = 52, + DragEnter = 60, + DragMove = 61, + DragLeave = 62, + Drop = 63, + DragResponse = 64, + ChildAdded = 68, + ChildPolished = 69, + + + + + + ChildRemoved = 71, + ShowWindowRequest = 73, + PolishRequest = 74, + Polish = 75, + LayoutRequest = 76, + UpdateRequest = 77, + UpdateLater = 78, + + EmbeddingControl = 79, + ActivateControl = 80, + DeactivateControl = 81, + ContextMenu = 82, + InputMethod = 83, + AccessibilityPrepare = 86, + TabletMove = 87, + LocaleChange = 88, + LanguageChange = 89, + LayoutDirectionChange = 90, + Style = 91, + TabletPress = 92, + TabletRelease = 93, + OkRequest = 94, + HelpRequest = 95, + + IconDrag = 96, + + FontChange = 97, + EnabledChange = 98, + ActivationChange = 99, + StyleChange = 100, + IconTextChange = 101, + ModifiedChange = 102, + MouseTrackingChange = 109, + + WindowBlocked = 103, + WindowUnblocked = 104, + WindowStateChange = 105, + + ToolTip = 110, + WhatsThis = 111, + StatusTip = 112, + + ActionChanged = 113, + ActionAdded = 114, + ActionRemoved = 115, + + FileOpen = 116, + + Shortcut = 117, + ShortcutOverride = 51, + + + + + + + + WhatsThisClicked = 118, + + + + + + ToolBarChange = 120, + + ApplicationActivate = 121, + ApplicationActivated = ApplicationActivate, + ApplicationDeactivate = 122, + ApplicationDeactivated = ApplicationDeactivate, + + QueryWhatsThis = 123, + EnterWhatsThisMode = 124, + LeaveWhatsThisMode = 125, + + ZOrderChange = 126, + + HoverEnter = 127, + HoverLeave = 128, + HoverMove = 129, + + AccessibilityHelp = 119, + AccessibilityDescription = 130, + + + + + + + + AcceptDropsChange = 152, + + MenubarUpdated = 153, + + + ZeroTimerEvent = 154, + + GraphicsSceneMouseMove = 155, + GraphicsSceneMousePress = 156, + GraphicsSceneMouseRelease = 157, + GraphicsSceneMouseDoubleClick = 158, + GraphicsSceneContextMenu = 159, + GraphicsSceneHoverEnter = 160, + GraphicsSceneHoverMove = 161, + GraphicsSceneHoverLeave = 162, + GraphicsSceneHelp = 163, + GraphicsSceneDragEnter = 164, + GraphicsSceneDragMove = 165, + GraphicsSceneDragLeave = 166, + GraphicsSceneDrop = 167, + GraphicsSceneWheel = 168, + + KeyboardLayoutChange = 169, + + DynamicPropertyChange = 170, + + TabletEnterProximity = 171, + TabletLeaveProximity = 172, + + NonClientAreaMouseMove = 173, + NonClientAreaMouseButtonPress = 174, + NonClientAreaMouseButtonRelease = 175, + NonClientAreaMouseButtonDblClick = 176, + + MacSizeChange = 177, + + ContentsRectChange = 178, + + MacGLWindowChange = 179, + + FutureCallOut = 180, + + GraphicsSceneResize = 181, + GraphicsSceneMove = 182, + + CursorChange = 183, + ToolTipChange = 184, + + NetworkReplyUpdated = 185, + + GrabMouse = 186, + UngrabMouse = 187, + GrabKeyboard = 188, + UngrabKeyboard = 189, + MacGLClearDrawable = 191, + + StateMachineSignal = 192, + StateMachineWrapped = 193, + + TouchBegin = 194, + TouchUpdate = 195, + TouchEnd = 196, + + + NativeGesture = 197, + + RequestSoftwareInputPanel = 199, + CloseSoftwareInputPanel = 200, + + UpdateSoftKeys = 201, + + WinIdChange = 203, + + Gesture = 198, + GestureOverride = 202, + + + PlatformPanel = 212, + + + + + User = 1000, + MaxUser = 65535 + }; + + QEvent(Type type); + virtual ~QEvent(); + inline Type type() const { return static_cast(t); } + inline bool spontaneous() const { return spont; } + + inline void setAccepted(bool accepted) { m_accept = accepted; } + inline bool isAccepted() const { return m_accept; } + + inline void accept() { m_accept = true; } + inline void ignore() { m_accept = false; } + + static int registerEventType(int hint = -1); + +protected: + QEventPrivate *d; + ushort t; + +private: + ushort posted : 1; + ushort spont : 1; + ushort m_accept : 1; + ushort reserved : 13; + + friend class QCoreApplication; + friend class QCoreApplicationPrivate; + friend class QThreadData; + friend class QApplication; + friend class QApplicationPrivate; + friend class Q3AccelManager; + friend class QShortcutMap; + friend class QETWidget; + friend class QGraphicsView; + friend class QGraphicsViewPrivate; + friend class QGraphicsScene; + friend class QGraphicsScenePrivate; + + friend class QGestureManager; + +}; + +class QTimerEvent : public QEvent +{ +public: + QTimerEvent( int timerId ); + ~QTimerEvent(); + int timerId() const { return id; } +protected: + int id; +}; + +class QObject; + +class QChildEvent : public QEvent +{ +public: + QChildEvent( Type type, QObject *child ); + ~QChildEvent(); + QObject *child() const { return c; } + bool added() const { return type() == ChildAdded; } + + + + bool polished() const { return type() == ChildPolished; } + bool removed() const { return type() == ChildRemoved; } +protected: + QObject *c; +}; +# 380 "/usr/include/qt4/QtCore/qcoreevent.h" +class QDynamicPropertyChangeEvent : public QEvent +{ +public: + QDynamicPropertyChangeEvent(const QByteArray &name); + ~QDynamicPropertyChangeEvent(); + + inline QByteArray propertyName() const { return n; } + +private: + QByteArray n; +}; + + + + +# 47 "/usr/include/qt4/QtCore/qcoreapplication.h" 2 +# 1 "/usr/include/qt4/QtCore/qeventloop.h" 1 +# 47 "/usr/include/qt4/QtCore/qeventloop.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QEventLoopPrivate; + +class QEventLoop : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + inline QEventLoopPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QEventLoopPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QEventLoopPrivate; + +public: + explicit QEventLoop(QObject *parent = 0); + ~QEventLoop(); + + enum ProcessEventsFlag { + AllEvents = 0x00, + ExcludeUserInputEvents = 0x01, + ExcludeSocketNotifiers = 0x02, + WaitForMoreEvents = 0x04, + + + + + X11ExcludeTimers = 0x08 + + , DeferredDeletion = 0x10 + + , EventLoopExec = 0x20 + , DialogExec = 0x40 + }; + typedef QFlags ProcessEventsFlags; + + bool processEvents(ProcessEventsFlags flags = AllEvents); + void processEvents(ProcessEventsFlags flags, int maximumTime); + + int exec(ProcessEventsFlags flags = AllEvents); + void exit(int returnCode = 0); + bool isRunning() const; + + void wakeUp(); + +public : + void quit(); +}; + +constexpr inline QFlags operator|(QEventLoop::ProcessEventsFlags::enum_type f1, QEventLoop::ProcessEventsFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QEventLoop::ProcessEventsFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QEventLoop::ProcessEventsFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + + + +# 48 "/usr/include/qt4/QtCore/qcoreapplication.h" 2 +# 57 "/usr/include/qt4/QtCore/qcoreapplication.h" + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QCoreApplicationPrivate; +class QTextCodec; +class QTranslator; +class QPostEventList; +class QStringList; + + + +class QCoreApplication : public QObject +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + inline QCoreApplicationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QCoreApplicationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QCoreApplicationPrivate; +public: + enum { ApplicationFlags = 0x040807 + + | 0x01000000 + + }; + + + + + + QCoreApplication(int &argc, char **argv, int + + = ApplicationFlags + + ); + + + ~QCoreApplication(); + + + static int argc(); + static char **argv(); + + static QStringList arguments(); + + static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); + static bool testAttribute(Qt::ApplicationAttribute attribute); + + static void setOrganizationDomain(const QString &orgDomain); + static QString organizationDomain(); + static void setOrganizationName(const QString &orgName); + static QString organizationName(); + static void setApplicationName(const QString &application); + static QString applicationName(); + static void setApplicationVersion(const QString &version); + static QString applicationVersion(); + + static QCoreApplication *instance() { return self; } + + static int exec(); + static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents); + static void processEvents(QEventLoop::ProcessEventsFlags flags, int maxtime); + static void exit(int retcode=0); + + static bool sendEvent(QObject *receiver, QEvent *event); + static void postEvent(QObject *receiver, QEvent *event); + static void postEvent(QObject *receiver, QEvent *event, int priority); + static void sendPostedEvents(QObject *receiver, int event_type); + static void sendPostedEvents(); + static void removePostedEvents(QObject *receiver); + static void removePostedEvents(QObject *receiver, int eventType); + static bool hasPendingEvents(); + + virtual bool notify(QObject *, QEvent *); + + static bool startingUp(); + static bool closingDown(); + + static QString applicationDirPath(); + static QString applicationFilePath(); + static qint64 applicationPid(); + + + static void setLibraryPaths(const QStringList &); + static QStringList libraryPaths(); + static void addLibraryPath(const QString &); + static void removeLibraryPath(const QString &); + + + + static void installTranslator(QTranslator * messageFile); + static void removeTranslator(QTranslator * messageFile); + + enum Encoding { CodecForTr, UnicodeUTF8, DefaultCodec = CodecForTr }; + + static QString translate(const char * context, + const char * key, + const char * disambiguation = 0, + Encoding encoding = CodecForTr); + static QString translate(const char * context, + const char * key, + const char * disambiguation, + Encoding encoding, int n); + + static void flush(); +# 185 "/usr/include/qt4/QtCore/qcoreapplication.h" + static void watchUnixSignal(int signal, bool watch); + + + typedef bool (*EventFilter)(void *message, long *result); + EventFilter setEventFilter(EventFilter filter); + bool filterEvent(void *message, long *result); + +public : + static void quit(); + +protected: + void aboutToQuit(); + void unixSignal(int); + +protected: + bool event(QEvent *); + + virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); + +protected: + QCoreApplication(QCoreApplicationPrivate &p); + +private: + static bool sendSpontaneousEvent(QObject *receiver, QEvent *event); + bool notifyInternal(QObject *receiver, QEvent *event); + + void init(); + + static QCoreApplication *self; + + QCoreApplication(const QCoreApplication &); QCoreApplication &operator=(const QCoreApplication &); + + friend class QEventDispatcherUNIXPrivate; + friend class QApplication; + friend class QApplicationPrivate; + friend class QETWidget; + friend class Q3AccelManager; + friend class QShortcutMap; + friend class QWidget; + friend class QWidgetPrivate; + friend bool qt_sendSpontaneousEvent(QObject*, QEvent*); + friend QString qAppName(); + friend class QClassFactory; +}; + +inline bool QCoreApplication::sendEvent(QObject *receiver, QEvent *event) +{ if (event) event->spont = false; return self ? self->notifyInternal(receiver, event) : false; } + +inline bool QCoreApplication::sendSpontaneousEvent(QObject *receiver, QEvent *event) +{ if (event) event->spont = true; return self ? self->notifyInternal(receiver, event) : false; } + +inline void QCoreApplication::sendPostedEvents() { sendPostedEvents(0, 0); } +# 282 "/usr/include/qt4/QtCore/qcoreapplication.h" +typedef void (*QtCleanUpFunction)(); + + void qAddPostRoutine(QtCleanUpFunction); + void qRemovePostRoutine(QtCleanUpFunction); + QString qAppName(); + + + + + + + + + +# 46 "/usr/include/qt4/QtGui/qapplication.h" 2 +# 62 "/usr/include/qt4/QtGui/qapplication.h" + + + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + +class QSessionManager; +class QDesktopWidget; +class QStyle; +class QEventLoop; +class QIcon; + +class QInputContext; + +template class QList; +class QLocale; +# 91 "/usr/include/qt4/QtGui/qapplication.h" +class QApplication; +class QApplicationPrivate; + + + + + + +class QApplication : public QCoreApplication +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + + + + + + + + +public: + enum Type { Tty, GuiClient, GuiServer }; + + + + + + + QApplication(int &argc, char **argv, int = ApplicationFlags); + QApplication(int &argc, char **argv, bool GUIenabled, int = ApplicationFlags); + QApplication(int &argc, char **argv, Type, int = ApplicationFlags); + + QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0, int = ApplicationFlags); + QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0, int = ApplicationFlags); + + + + + + virtual ~QApplication(); + + static Type type(); + + static QStyle *style(); + static void setStyle(QStyle*); + static QStyle *setStyle(const QString&); + enum ColorSpec { NormalColor=0, CustomColor=1, ManyColor=2 }; + static int colorSpec(); + static void setColorSpec(int); + static void setGraphicsSystem(const QString &); + + + static QCursor *overrideCursor(); + static void setOverrideCursor(const QCursor &); + static void changeOverrideCursor(const QCursor &); + static void restoreOverrideCursor(); + + static QPalette palette(); + static QPalette palette(const QWidget *); + static QPalette palette(const char *className); + static void setPalette(const QPalette &, const char* className = 0); + static QFont font(); + static QFont font(const QWidget*); + static QFont font(const char *className); + static void setFont(const QFont &, const char* className = 0); + static QFontMetrics fontMetrics(); + + static void setWindowIcon(const QIcon &icon); + static QIcon windowIcon(); + + + + + + + + static QWidgetList allWidgets(); + static QWidgetList topLevelWidgets(); + + static QDesktopWidget *desktop(); + + static QWidget *activePopupWidget(); + static QWidget *activeModalWidget(); + + static QClipboard *clipboard(); + + static QWidget *focusWidget(); + + static QWidget *activeWindow(); + static void setActiveWindow(QWidget* act); + + static QWidget *widgetAt(const QPoint &p); + static inline QWidget *widgetAt(int x, int y) { return widgetAt(QPoint(x, y)); } + static QWidget *topLevelAt(const QPoint &p); + static inline QWidget *topLevelAt(int x, int y) { return topLevelAt(QPoint(x, y)); } + + static void syncX(); + static void beep(); + static void alert(QWidget *widget, int duration = 0); + + static Qt::KeyboardModifiers keyboardModifiers(); + static Qt::KeyboardModifiers queryKeyboardModifiers(); + static Qt::MouseButtons mouseButtons(); + + static void setDesktopSettingsAware(bool); + static bool desktopSettingsAware(); + + static void setCursorFlashTime(int); + static int cursorFlashTime(); + + static void setDoubleClickInterval(int); + static int doubleClickInterval(); + + static void setKeyboardInputInterval(int); + static int keyboardInputInterval(); + + + static void setWheelScrollLines(int); + static int wheelScrollLines(); + + static void setGlobalStrut(const QSize &); + static QSize globalStrut(); + + static void setStartDragTime(int ms); + static int startDragTime(); + static void setStartDragDistance(int l); + static int startDragDistance(); + + static void setLayoutDirection(Qt::LayoutDirection direction); + static Qt::LayoutDirection layoutDirection(); + + static inline bool isRightToLeft() { return layoutDirection() == Qt::RightToLeft; } + static inline bool isLeftToRight() { return layoutDirection() == Qt::LeftToRight; } + + static bool isEffectEnabled(Qt::UIEffect); + static void setEffectEnabled(Qt::UIEffect, bool enable = true); + + + + + + virtual bool x11EventFilter(XEvent *); + virtual int x11ClientMessage(QWidget*, XEvent*, bool passive_only); + int x11ProcessEvent(XEvent*); +# 273 "/usr/include/qt4/QtGui/qapplication.h" + bool isSessionRestored() const; + QString sessionId() const; + QString sessionKey() const; + virtual void commitData(QSessionManager& sm); + virtual void saveState(QSessionManager& sm); + + + + void setInputContext(QInputContext *); + QInputContext *inputContext() const; + + + static QLocale keyboardInputLocale(); + static Qt::LayoutDirection keyboardInputDirection(); + + static int exec(); + bool notify(QObject *, QEvent *); + + + static void setQuitOnLastWindowClosed(bool quit); + static bool quitOnLastWindowClosed(); +# 302 "/usr/include/qt4/QtGui/qapplication.h" +protected: + void lastWindowClosed(); + void focusChanged(QWidget *old, QWidget *now); + void fontDatabaseChanged(); + + void commitDataRequest(QSessionManager &sessionManager); + void saveStateRequest(QSessionManager &sessionManager); + + + + + + +public: + QString styleSheet() const; +public : + + void setStyleSheet(const QString& sheet); + + + + + + void setAutoSipEnabled(const bool enabled); + bool autoSipEnabled() const; + static void closeAllWindows(); + static void aboutQt(); + +protected: + + + + bool event(QEvent *); + bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); +# 390 "/usr/include/qt4/QtGui/qapplication.h" +private: + QApplication(const QApplication &); QApplication &operator=(const QApplication &); + inline QApplicationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QApplicationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QApplicationPrivate; + + friend class QGraphicsWidget; + friend class QGraphicsItem; + friend class QGraphicsScene; + friend class QGraphicsScenePrivate; + friend class QWidget; + friend class QWidgetPrivate; + friend class QETWidget; + friend class Q3AccelManager; + friend class QTranslator; + friend class QWidgetAnimator; + + friend class QShortcut; + friend class QLineEdit; + friend class QTextControl; + + friend class QAction; + friend class QFontDatabasePrivate; +# 419 "/usr/include/qt4/QtGui/qapplication.h" + friend class QGestureManager; + + + + + + + + + + + +}; + + + + +# 1 "/usr/include/qt4/QtGui/QApplication" 2 +# 58 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QMessageBox" 1 +# 1 "/usr/include/qt4/QtGui/qmessagebox.h" 1 +# 45 "/usr/include/qt4/QtGui/qmessagebox.h" +# 1 "/usr/include/qt4/QtGui/qdialog.h" 1 +# 46 "/usr/include/qt4/QtGui/qmessagebox.h" 2 + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QLabel; +class QMessageBoxPrivate; +class QAbstractButton; + +class QMessageBox : public QDialog +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + +public: + enum Icon { + NoIcon = 0, + Information = 1, + Warning = 2, + Critical = 3, + Question = 4 + }; + + enum ButtonRole { + + InvalidRole = -1, + AcceptRole, + RejectRole, + DestructiveRole, + ActionRole, + HelpRole, + YesRole, + NoRole, + ResetRole, + ApplyRole, + + NRoles + }; + + enum StandardButton { + + NoButton = 0x00000000, + Ok = 0x00000400, + Save = 0x00000800, + SaveAll = 0x00001000, + Open = 0x00002000, + Yes = 0x00004000, + YesToAll = 0x00008000, + No = 0x00010000, + NoToAll = 0x00020000, + Abort = 0x00040000, + Retry = 0x00080000, + Ignore = 0x00100000, + Close = 0x00200000, + Cancel = 0x00400000, + Discard = 0x00800000, + Help = 0x01000000, + Apply = 0x02000000, + Reset = 0x04000000, + RestoreDefaults = 0x08000000, + + FirstButton = Ok, + LastButton = RestoreDefaults, + + YesAll = YesToAll, + NoAll = NoToAll, + + Default = 0x00000100, + Escape = 0x00000200, + FlagMask = 0x00000300, + ButtonMask = ~FlagMask + }; + typedef StandardButton Button; + + typedef QFlags StandardButtons; + + explicit QMessageBox(QWidget *parent = 0); + QMessageBox(Icon icon, const QString &title, const QString &text, + StandardButtons buttons = NoButton, QWidget *parent = 0, + Qt::WindowFlags flags = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); + ~QMessageBox(); + + void addButton(QAbstractButton *button, ButtonRole role); + QPushButton *addButton(const QString &text, ButtonRole role); + QPushButton *addButton(StandardButton button); + void removeButton(QAbstractButton *button); +# 157 "/usr/include/qt4/QtGui/qmessagebox.h" + using QDialog::open; + + void open(QObject *receiver, const char *member); + + QList buttons() const; + ButtonRole buttonRole(QAbstractButton *button) const; + + void setStandardButtons(StandardButtons buttons); + StandardButtons standardButtons() const; + StandardButton standardButton(QAbstractButton *button) const; + QAbstractButton *button(StandardButton which) const; + + QPushButton *defaultButton() const; + void setDefaultButton(QPushButton *button); + void setDefaultButton(StandardButton button); + + QAbstractButton *escapeButton() const; + void setEscapeButton(QAbstractButton *button); + void setEscapeButton(StandardButton button); + + QAbstractButton *clickedButton() const; + + QString text() const; + void setText(const QString &text); + + Icon icon() const; + void setIcon(Icon); + + QPixmap iconPixmap() const; + void setIconPixmap(const QPixmap &pixmap); + + Qt::TextFormat textFormat() const; + void setTextFormat(Qt::TextFormat format); + + static StandardButton information(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + + + static StandardButton question(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + static StandardButton warning(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + static StandardButton critical(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + static void about(QWidget *parent, const QString &title, const QString &text); + static void aboutQt(QWidget *parent, const QString &title = QString()); + + QSize sizeHint() const; + + + + QMessageBox(const QString &title, const QString &text, Icon icon, + int button0, int button1, int button2, + QWidget *parent = 0, + Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); + + static int information(QWidget *parent, const QString &title, + const QString& text, + int button0, int button1 = 0, int button2 = 0); + static int information(QWidget *parent, const QString &title, + const QString& text, + const QString& button0Text, + const QString& button1Text = QString(), + const QString& button2Text = QString(), + int defaultButtonNumber = 0, + int escapeButtonNumber = -1); + inline static StandardButton information(QWidget *parent, const QString &title, + const QString& text, + StandardButton button0, StandardButton button1 = NoButton) + { return information(parent, title, text, StandardButtons(button0), button1); } + + static int question(QWidget *parent, const QString &title, + const QString& text, + int button0, int button1 = 0, int button2 = 0); + static int question(QWidget *parent, const QString &title, + const QString& text, + const QString& button0Text, + const QString& button1Text = QString(), + const QString& button2Text = QString(), + int defaultButtonNumber = 0, + int escapeButtonNumber = -1); + inline static int question(QWidget *parent, const QString &title, + const QString& text, + StandardButton button0, StandardButton button1) + { return question(parent, title, text, StandardButtons(button0), button1); } + + static int warning(QWidget *parent, const QString &title, + const QString& text, + int button0, int button1, int button2 = 0); + static int warning(QWidget *parent, const QString &title, + const QString& text, + const QString& button0Text, + const QString& button1Text = QString(), + const QString& button2Text = QString(), + int defaultButtonNumber = 0, + int escapeButtonNumber = -1); + inline static int warning(QWidget *parent, const QString &title, + const QString& text, + StandardButton button0, StandardButton button1) + { return warning(parent, title, text, StandardButtons(button0), button1); } + + static int critical(QWidget *parent, const QString &title, + const QString& text, + int button0, int button1, int button2 = 0); + static int critical(QWidget *parent, const QString &title, + const QString& text, + const QString& button0Text, + const QString& button1Text = QString(), + const QString& button2Text = QString(), + int defaultButtonNumber = 0, + int escapeButtonNumber = -1); + inline static int critical(QWidget *parent, const QString &title, + const QString& text, + StandardButton button0, StandardButton button1) + { return critical(parent, title, text, StandardButtons(button0), button1); } + + QString buttonText(int button) const; + void setButtonText(int button, const QString &text); + + QString informativeText() const; + void setInformativeText(const QString &text); + + + QString detailedText() const; + void setDetailedText(const QString &text); + + + void setWindowTitle(const QString &title); + void setWindowModality(Qt::WindowModality windowModality); +# 317 "/usr/include/qt4/QtGui/qmessagebox.h" + static QPixmap standardIcon(Icon icon); + +protected: + void buttonClicked(QAbstractButton *button); + + + + + + +protected: + bool event(QEvent *e); + void resizeEvent(QResizeEvent *event); + void showEvent(QShowEvent *event); + void closeEvent(QCloseEvent *event); + void keyPressEvent(QKeyEvent *event); + void changeEvent(QEvent *event); + +private: + + + QMessageBox(const QMessageBox &); QMessageBox &operator=(const QMessageBox &); + inline QMessageBoxPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QMessageBoxPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QMessageBoxPrivate; +}; + +constexpr inline QFlags operator|(QMessageBox::StandardButtons::enum_type f1, QMessageBox::StandardButtons::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QMessageBox::StandardButtons::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QMessageBox::StandardButtons::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +# 361 "/usr/include/qt4/QtGui/qmessagebox.h" + + + +# 1 "/usr/include/qt4/QtGui/QMessageBox" 2 +# 59 "common.h" 2 +# 1 "/usr/include/qt4/QtGui/QFileDialog" 1 +# 1 "/usr/include/qt4/QtGui/qfiledialog.h" 1 +# 45 "/usr/include/qt4/QtGui/qfiledialog.h" +# 1 "/usr/include/qt4/QtCore/qdir.h" 1 +# 46 "/usr/include/qt4/QtCore/qdir.h" +# 1 "/usr/include/qt4/QtCore/qfileinfo.h" 1 +# 45 "/usr/include/qt4/QtCore/qfileinfo.h" +# 1 "/usr/include/qt4/QtCore/qfile.h" 1 +# 46 "/usr/include/qt4/QtCore/qfileinfo.h" 2 + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QDir; +class QDirIteratorPrivate; +class QDateTime; +class QFileInfoPrivate; + +class QFileInfo +{ + friend class QDirIteratorPrivate; +public: + explicit QFileInfo(QFileInfoPrivate *d); + + QFileInfo(); + QFileInfo(const QString &file); + QFileInfo(const QFile &file); + QFileInfo(const QDir &dir, const QString &file); + QFileInfo(const QFileInfo &fileinfo); + ~QFileInfo(); + + QFileInfo &operator=(const QFileInfo &fileinfo); + + inline QFileInfo&operator=(QFileInfo &&other) + { qSwap(d_ptr, other.d_ptr); return *this; } + + bool operator==(const QFileInfo &fileinfo); + bool operator==(const QFileInfo &fileinfo) const; + inline bool operator!=(const QFileInfo &fileinfo) { return !(operator==(fileinfo)); } + inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); } + + void setFile(const QString &file); + void setFile(const QFile &file); + void setFile(const QDir &dir, const QString &file); + bool exists() const; + void refresh(); + + QString filePath() const; + QString absoluteFilePath() const; + QString canonicalFilePath() const; + QString fileName() const; + QString baseName() const; + QString completeBaseName() const; + QString suffix() const; + QString bundleName() const; + QString completeSuffix() const; + + QString path() const; + QString absolutePath() const; + QString canonicalPath() const; + QDir dir() const; + QDir absoluteDir() const; + + bool isReadable() const; + bool isWritable() const; + bool isExecutable() const; + bool isHidden() const; + + bool isRelative() const; + inline bool isAbsolute() const { return !isRelative(); } + bool makeAbsolute(); + + bool isFile() const; + bool isDir() const; + bool isSymLink() const; + bool isRoot() const; + bool isBundle() const; + + QString readLink() const; + inline QString symLinkTarget() const { return readLink(); } + + QString owner() const; + uint ownerId() const; + QString group() const; + uint groupId() const; + + bool permission(QFile::Permissions permissions) const; + QFile::Permissions permissions() const; + + qint64 size() const; + + QDateTime created() const; + QDateTime lastModified() const; + QDateTime lastRead() const; + + void detach(); + + bool caching() const; + void setCaching(bool on); +# 176 "/usr/include/qt4/QtCore/qfileinfo.h" +protected: + QSharedDataPointer d_ptr; +private: + inline QFileInfoPrivate* d_func() + { + detach(); + return const_cast(d_ptr.constData()); + } + + inline const QFileInfoPrivate* d_func() const + { + return d_ptr.constData(); + } +}; + +template<> class QTypeInfo { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QFileInfo)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; static inline const char *name() { return "QFileInfo"; } }; + + + + + +typedef QList QFileInfoList; + + + + + + + +# 47 "/usr/include/qt4/QtCore/qdir.h" 2 + + + + + + + +typedef QtValidLicenseForCoreModule QtCoreModule; + +class QDirPrivate; + +class QDir +{ +protected: + QSharedDataPointer d_ptr; + +public: + enum Filter { Dirs = 0x001, + Files = 0x002, + Drives = 0x004, + NoSymLinks = 0x008, + AllEntries = Dirs | Files | Drives, + TypeMask = 0x00f, + + + + + Readable = 0x010, + Writable = 0x020, + Executable = 0x040, + PermissionMask = 0x070, + + + + + Modified = 0x080, + Hidden = 0x100, + System = 0x200, + + AccessMask = 0x3F0, + + AllDirs = 0x400, + CaseSensitive = 0x800, + NoDotAndDotDot = 0x1000, + NoDot = 0x2000, + NoDotDot = 0x4000, + + NoFilter = -1 + + + + }; + typedef QFlags Filters; + + + + + enum SortFlag { Name = 0x00, + Time = 0x01, + Size = 0x02, + Unsorted = 0x03, + SortByMask = 0x03, + + DirsFirst = 0x04, + Reversed = 0x08, + IgnoreCase = 0x10, + DirsLast = 0x20, + LocaleAware = 0x40, + Type = 0x80, + NoSort = -1 + + + + }; + typedef QFlags SortFlags; + + QDir(const QDir &); + QDir(const QString &path = QString()); + QDir(const QString &path, const QString &nameFilter, + SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries); + ~QDir(); + + QDir &operator=(const QDir &); + QDir &operator=(const QString &path); + + inline QDir &operator=(QDir &&other) + { qSwap(d_ptr, other.d_ptr); return *this; } + + + void setPath(const QString &path); + QString path() const; + QString absolutePath() const; + QString canonicalPath() const; + + static void addResourceSearchPath(const QString &path); + + static void setSearchPaths(const QString &prefix, const QStringList &searchPaths); + static void addSearchPath(const QString &prefix, const QString &path); + static QStringList searchPaths(const QString &prefix); + + QString dirName() const; + QString filePath(const QString &fileName) const; + QString absoluteFilePath(const QString &fileName) const; + QString relativeFilePath(const QString &fileName) const; + + + static QString convertSeparators(const QString &pathName); + + static QString toNativeSeparators(const QString &pathName); + static QString fromNativeSeparators(const QString &pathName); + + bool cd(const QString &dirName); + bool cdUp(); + + QStringList nameFilters() const; + void setNameFilters(const QStringList &nameFilters); + + Filters filter() const; + void setFilter(Filters filter); + SortFlags sorting() const; + void setSorting(SortFlags sort); + + uint count() const; + QString operator[](int) const; + + static QStringList nameFiltersFromString(const QString &nameFilter); + + QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const; + QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter, + SortFlags sort = NoSort) const; + + QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort) const; + QFileInfoList entryInfoList(const QStringList &nameFilters, Filters filters = NoFilter, + SortFlags sort = NoSort) const; + + bool mkdir(const QString &dirName) const; + bool rmdir(const QString &dirName) const; + bool mkpath(const QString &dirPath) const; + bool rmpath(const QString &dirPath) const; + + bool isReadable() const; + bool exists() const; + bool isRoot() const; + + static bool isRelativePath(const QString &path); + inline static bool isAbsolutePath(const QString &path) { return !isRelativePath(path); } + bool isRelative() const; + inline bool isAbsolute() const { return !isRelative(); } + bool makeAbsolute(); + + bool operator==(const QDir &dir) const; + inline bool operator!=(const QDir &dir) const { return !operator==(dir); } + + bool remove(const QString &fileName); + bool rename(const QString &oldName, const QString &newName); + bool exists(const QString &name) const; + + static QFileInfoList drives(); + + static QChar separator(); + + static bool setCurrent(const QString &path); + static inline QDir current() { return QDir(currentPath()); } + static QString currentPath(); + + static inline QDir home() { return QDir(homePath()); } + static QString homePath(); + static inline QDir root() { return QDir(rootPath()); } + static QString rootPath(); + static inline QDir temp() { return QDir(tempPath()); } + static QString tempPath(); + + + static bool match(const QStringList &filters, const QString &fileName); + static bool match(const QString &filter, const QString &fileName); + + + static QString cleanPath(const QString &path); + void refresh() const; +# 256 "/usr/include/qt4/QtCore/qdir.h" +}; + +constexpr inline QFlags operator|(QDir::Filters::enum_type f1, QDir::Filters::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QDir::Filters::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QDir::Filters::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } +constexpr inline QFlags operator|(QDir::SortFlags::enum_type f1, QDir::SortFlags::enum_type f2) { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QDir::SortFlags::enum_type f1, QFlags f2) { return f2 | f1; } inline QIncompatibleFlag operator|(QDir::SortFlags::enum_type f1, int f2) { return QIncompatibleFlag(int(f1) | f2); } + + +class QDebug; + QDebug operator<<(QDebug debug, QDir::Filters filters); + QDebug operator<<(QDebug debug, const QDir &dir); + + + + + +# 46 "/usr/include/qt4/QtGui/qfiledialog.h" 2 + + + + + + + +typedef QtValidLicenseForGuiModule QtGuiModule; + + + +class QModelIndex; +class QItemSelection; +struct QFileDialogArgs; +class QFileIconProvider; +class QFileDialogPrivate; +class QAbstractItemDelegate; +class QAbstractProxyModel; +class QUrl; + +class QFileDialog : public QDialog +{ + public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); static inline QString tr(const char *s, const char *c = 0) { return staticMetaObject.tr(s, c); } static inline QString trUtf8(const char *s, const char *c = 0) { return staticMetaObject.trUtf8(s, c); } static inline QString tr(const char *s, const char *c, int n) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c, int n) { return staticMetaObject.trUtf8(s, c, n); } virtual int qt_metacall(QMetaObject::Call, int, void **); private: __attribute__((visibility("hidden"))) static const QMetaObjectExtraData staticMetaObjectExtraData; __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); + + + + + + + + + + + + + +public: + enum ViewMode { Detail, List }; + enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }; + enum AcceptMode { AcceptOpen, AcceptSave }; + enum DialogLabel { LookIn, FileName, FileType, Accept, Reject }; + + + enum Option + { + ShowDirsOnly = 0x00000001, + DontResolveSymlinks = 0x00000002, + DontConfirmOverwrite = 0x00000004, + DontUseSheet = 0x00000008, + DontUseNativeDialog = 0x00000010, + ReadOnly = 0x00000020, + HideNameFilterDetails = 0x00000040, + DontUseCustomDirectoryIcons = 0x00000080 + }; + typedef QFlags