[
  {
    "path": ".gitignore",
    "content": ".*.swp\n*.o\n*.bin\n*.vec\n*.bc\n.DS_Store\ndata\nfasttext\nresult\nwebsite/node_modules/\npackage-lock.json\nnode_modules/\n"
  },
  {
    "path": "CMakeLists.txt",
    "content": "#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\ncmake_minimum_required(VERSION 2.8.9)\nproject(fasttext)\n\nset(CMAKE_CXX_STANDARD 17)\n\n# The version number.\nset (fasttext_VERSION_MAJOR 0)\nset (fasttext_VERSION_MINOR 1)\n\ninclude_directories(fasttext)\n\nset(CMAKE_CXX_FLAGS \" -pthread -std=c++17 -funroll-loops -O3 -march=native\")\n\nset(HEADER_FILES\n    src/args.h\n    src/autotune.h\n    src/densematrix.h\n    src/dictionary.h\n    src/fasttext.h\n    src/loss.h\n    src/matrix.h\n    src/meter.h\n    src/model.h\n    src/productquantizer.h\n    src/quantmatrix.h\n    src/real.h\n    src/utils.h\n    src/vector.h)\n\nset(SOURCE_FILES\n    src/args.cc\n    src/autotune.cc\n    src/densematrix.cc\n    src/dictionary.cc\n    src/fasttext.cc\n    src/loss.cc\n    src/main.cc\n    src/matrix.cc\n    src/meter.cc\n    src/model.cc\n    src/productquantizer.cc\n    src/quantmatrix.cc\n    src/utils.cc\n    src/vector.cc)\n\n\nif (NOT MSVC)\n  include(GNUInstallDirs)\n  configure_file(\"fasttext.pc.in\" \"fasttext.pc\" @ONLY)\n  install(FILES \"${CMAKE_BINARY_DIR}/fasttext.pc\" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)\nendif()\n\nadd_library(fasttext-shared SHARED ${SOURCE_FILES} ${HEADER_FILES})\nadd_library(fasttext-static STATIC ${SOURCE_FILES} ${HEADER_FILES})\nadd_library(fasttext-static_pic STATIC ${SOURCE_FILES} ${HEADER_FILES})\nset_target_properties(fasttext-shared PROPERTIES OUTPUT_NAME fasttext\n  SOVERSION \"${fasttext_VERSION_MAJOR}\")\nset_target_properties(fasttext-static PROPERTIES OUTPUT_NAME fasttext)\nset_target_properties(fasttext-static_pic PROPERTIES OUTPUT_NAME fasttext_pic\n  POSITION_INDEPENDENT_CODE True)\nadd_executable(fasttext-bin src/main.cc)\ntarget_link_libraries(fasttext-bin pthread fasttext-static)\nset_target_properties(fasttext-bin PROPERTIES PUBLIC_HEADER \"${HEADER_FILES}\" OUTPUT_NAME fasttext)\ninstall (TARGETS fasttext-shared\n    LIBRARY DESTINATION lib)\ninstall (TARGETS fasttext-static\n    ARCHIVE DESTINATION lib)\ninstall (TARGETS fasttext-static_pic\n    ARCHIVE DESTINATION lib)\ninstall (TARGETS fasttext-bin\n    RUNTIME DESTINATION bin\n PUBLIC_HEADER DESTINATION include/fasttext)\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to make participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n  advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies within all project spaces, and it also applies when\nan individual is representing the project or its community in public spaces.\nExamples of representing a project or community include using an official\nproject e-mail address, posting via an official social media account, or acting\nas an appointed representative at an online or offline event. Representation of\na project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at <opensource-conduct@fb.com>. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing to fastText\nWe want to make contributing to this project as easy and transparent as possible.\n\n## Issues\nWe use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue.\n\n### Reproducing issues\nPlease make sure that the issue you mention is not a result of one of the existing third-party libraries. For example, please do not post an issue if you encountered an error within a third-party Python library. We can only help you with errors which can be directly reproduced either with our C++ code or the corresponding Python bindings. If you do find an error, please post detailed steps to reproduce it. If we can't reproduce your error, we can't help you fix it.\n\n## Pull Requests\nPlease post an Issue before submitting a pull request. This might save you some time as it is possible we can't support your contribution, albeit we try our best to accomodate your (planned) work and highly appreciate your time. Generally, it is best to have a pull request emerge from an issue rather than the other way around.\n\nTo create a pull request:\n\n1. Fork the repo and create your branch from `master`.\n2. If you've added code that should be tested, add tests.\n3. If you've changed APIs, update the documentation.\n4. Ensure the test suite passes.\n5. Make sure your code lints.\n6. If you haven't already, complete the Contributor License Agreement (\"CLA\").\n\n## Tests\nFirst, you will need to make sure you have the required data. For that, please have a look at the fetch_test_data.sh script under tests. Next run the tests using the runtests.py script passing a path to the directory containing the datasets.\n\n## Contributor License Agreement (\"CLA\")\nIn order to accept your pull request, we need you to submit a CLA. You only need\nto do this once to work on any of Facebook's open source projects.\n\nComplete your CLA here: <https://code.facebook.com/cla>\n\n## License\nBy contributing to fastText, you agree that your contributions will be licensed under its MIT license.\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2016-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "include LICENSE\ninclude PATENTS\n\nrecursive-include python *.md *.rst\nrecursive-include src *.h\n"
  },
  {
    "path": "Makefile",
    "content": "#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nCXX = c++\nCXXFLAGS = -pthread -std=c++17 -march=native\nOBJS = args.o autotune.o matrix.o dictionary.o loss.o productquantizer.o densematrix.o quantmatrix.o vector.o model.o utils.o meter.o fasttext.o\nINCLUDES = -I.\n\nopt: CXXFLAGS += -O3 -funroll-loops -DNDEBUG\nopt: fasttext\n\ncoverage: CXXFLAGS += -O0 -fno-inline -fprofile-arcs --coverage\ncoverage: fasttext\n\ndebug: CXXFLAGS += -g -O0 -fno-inline\ndebug: fasttext\n\nwasm: webassembly/fasttext_wasm.js\n\nwasmdebug: export EMCC_DEBUG=1\nwasmdebug: webassembly/fasttext_wasm.js\n\n\nargs.o: src/args.cc src/args.h\n\t$(CXX) $(CXXFLAGS) -c src/args.cc\n\nautotune.o: src/autotune.cc src/autotune.h\n\t$(CXX) $(CXXFLAGS) -c src/autotune.cc\n\nmatrix.o: src/matrix.cc src/matrix.h\n\t$(CXX) $(CXXFLAGS) -c src/matrix.cc\n\ndictionary.o: src/dictionary.cc src/dictionary.h src/args.h\n\t$(CXX) $(CXXFLAGS) -c src/dictionary.cc\n\nloss.o: src/loss.cc src/loss.h src/matrix.h src/real.h\n\t$(CXX) $(CXXFLAGS) -c src/loss.cc\n\nproductquantizer.o: src/productquantizer.cc src/productquantizer.h src/utils.h\n\t$(CXX) $(CXXFLAGS) -c src/productquantizer.cc\n\ndensematrix.o: src/densematrix.cc src/densematrix.h src/utils.h src/matrix.h\n\t$(CXX) $(CXXFLAGS) -c src/densematrix.cc\n\nquantmatrix.o: src/quantmatrix.cc src/quantmatrix.h src/utils.h src/matrix.h\n\t$(CXX) $(CXXFLAGS) -c src/quantmatrix.cc\n\nvector.o: src/vector.cc src/vector.h src/utils.h\n\t$(CXX) $(CXXFLAGS) -c src/vector.cc\n\nmodel.o: src/model.cc src/model.h src/args.h\n\t$(CXX) $(CXXFLAGS) -c src/model.cc\n\nutils.o: src/utils.cc src/utils.h\n\t$(CXX) $(CXXFLAGS) -c src/utils.cc\n\nmeter.o: src/meter.cc src/meter.h\n\t$(CXX) $(CXXFLAGS) -c src/meter.cc\n\nfasttext.o: src/fasttext.cc src/*.h\n\t$(CXX) $(CXXFLAGS) -c src/fasttext.cc\n\nfasttext: $(OBJS) src/fasttext.cc src/main.cc\n\t$(CXX) $(CXXFLAGS) $(OBJS) src/main.cc -o fasttext\n\nclean:\n\trm -rf *.o *.gcno *.gcda fasttext *.bc webassembly/fasttext_wasm.js webassembly/fasttext_wasm.wasm\n\n\nEMCXX = em++\nEMCXXFLAGS = --bind --std=c++11 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s \"EXTRA_EXPORTED_RUNTIME_METHODS=['addOnPostRun', 'FS']\" -s \"DISABLE_EXCEPTION_CATCHING=0\" -s \"EXCEPTION_DEBUG=1\" -s \"FORCE_FILESYSTEM=1\" -s \"MODULARIZE=1\" -s \"EXPORT_ES6=1\" -s 'EXPORT_NAME=\"FastTextModule\"' -Isrc/\nEMOBJS = args.bc autotune.bc matrix.bc dictionary.bc loss.bc productquantizer.bc densematrix.bc quantmatrix.bc vector.bc model.bc utils.bc meter.bc fasttext.bc main.bc\n\n\nmain.bc: webassembly/fasttext_wasm.cc\n\t$(EMCXX) $(EMCXXFLAGS)  webassembly/fasttext_wasm.cc -o main.bc\n\nargs.bc: src/args.cc src/args.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/args.cc -o args.bc\n\nautotune.bc: src/autotune.cc src/autotune.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/autotune.cc -o autotune.bc\n\nmatrix.bc: src/matrix.cc src/matrix.h\n\t$(EMCXX) $(EMCXXFLAGS) src/matrix.cc -o matrix.bc\n\ndictionary.bc: src/dictionary.cc src/dictionary.h src/args.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/dictionary.cc -o dictionary.bc\n\nloss.bc: src/loss.cc src/loss.h src/matrix.h src/real.h\n\t$(EMCXX) $(EMCXXFLAGS) src/loss.cc -o loss.bc\n\nproductquantizer.bc: src/productquantizer.cc src/productquantizer.h src/utils.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/productquantizer.cc -o productquantizer.bc\n\ndensematrix.bc: src/densematrix.cc src/densematrix.h src/utils.h src/matrix.h\n\t$(EMCXX) $(EMCXXFLAGS) src/densematrix.cc -o densematrix.bc\n\nquantmatrix.bc: src/quantmatrix.cc src/quantmatrix.h src/utils.h src/matrix.h\n\t$(EMCXX) $(EMCXXFLAGS) src/quantmatrix.cc -o quantmatrix.bc\n\nvector.bc: src/vector.cc src/vector.h src/utils.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/vector.cc -o vector.bc\n\nmodel.bc: src/model.cc src/model.h src/args.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/model.cc -o model.bc\n\nutils.bc: src/utils.cc src/utils.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/utils.cc -o utils.bc\n\nmeter.bc: src/meter.cc src/meter.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/meter.cc -o meter.bc\n\nfasttext.bc: src/fasttext.cc src/*.h\n\t$(EMCXX) $(EMCXXFLAGS)  src/fasttext.cc -o fasttext.bc\n\nwebassembly/fasttext_wasm.js: $(EMOBJS) webassembly/fasttext_wasm.cc Makefile\n\t$(EMCXX) $(EMCXXFLAGS) $(EMOBJS) -o webassembly/fasttext_wasm.js\n\n\n"
  },
  {
    "path": "PACKAGE",
    "content": "load(\"@fbcode_macros//build_defs:package_local_utils.bzl\", \"package_local_utils\")\n\npackage_local_utils.set_clang_version(15, True)\n"
  },
  {
    "path": "README.md",
    "content": "# fastText\n[fastText](https://fasttext.cc/) is a library for efficient learning of word representations and sentence classification.\n\n[![CircleCI](https://circleci.com/gh/facebookresearch/fastText/tree/master.svg?style=svg)](https://circleci.com/gh/facebookresearch/fastText/tree/master)\n\n## Table of contents\n\n* [Resources](#resources)\n   * [Models](#models)\n   * [Supplementary data](#supplementary-data)\n   * [FAQ](#faq)\n   * [Cheatsheet](#cheatsheet)\n* [Requirements](#requirements)\n* [Building fastText](#building-fasttext)\n   * [Getting the source code](#getting-the-source-code)\n   * [Building fastText using make (preferred)](#building-fasttext-using-make-preferred)\n   * [Building fastText using cmake](#building-fasttext-using-cmake)\n   * [Building fastText for Python](#building-fasttext-for-python)\n* [Example use cases](#example-use-cases)\n   * [Word representation learning](#word-representation-learning)\n   * [Obtaining word vectors for out-of-vocabulary words](#obtaining-word-vectors-for-out-of-vocabulary-words)\n   * [Text classification](#text-classification)\n* [Full documentation](#full-documentation)\n* [References](#references)\n   * [Enriching Word Vectors with Subword Information](#enriching-word-vectors-with-subword-information)\n   * [Bag of Tricks for Efficient Text Classification](#bag-of-tricks-for-efficient-text-classification)\n   * [FastText.zip: Compressing text classification models](#fasttextzip-compressing-text-classification-models)\n* [Join the fastText community](#join-the-fasttext-community)\n* [License](#license)\n\n## Resources\n\n### Models\n- Recent state-of-the-art [English word vectors](https://fasttext.cc/docs/en/english-vectors.html).\n- Word vectors for [157 languages trained on Wikipedia and Crawl](https://github.com/facebookresearch/fastText/blob/master/docs/crawl-vectors.md).\n- Models for [language identification](https://fasttext.cc/docs/en/language-identification.html#content) and [various supervised tasks](https://fasttext.cc/docs/en/supervised-models.html#content).\n\n### Supplementary data\n- The preprocessed [YFCC100M data](https://fasttext.cc/docs/en/dataset.html#content) used in [2].\n\n### FAQ\n\nYou can find [answers to frequently asked questions](https://fasttext.cc/docs/en/faqs.html#content) on our [website](https://fasttext.cc/).\n\n### Cheatsheet\n\nWe also provide a [cheatsheet](https://fasttext.cc/docs/en/cheatsheet.html#content) full of useful one-liners.\n\n## Requirements\n\nWe are continuously building and testing our library, CLI and Python bindings under various docker images using [circleci](https://circleci.com/).\n\nGenerally, **fastText** builds on modern Mac OS and Linux distributions.\nSince it uses some C++11 features, it requires a compiler with good C++11 support.\nThese include :\n\n* (g++-4.7.2 or newer) or (clang-3.3 or newer)\n\nCompilation is carried out using a Makefile, so you will need to have a working **make**.\nIf you want to use **cmake** you need at least version 2.8.9.\n\nOne of the oldest distributions we successfully built and tested the CLI under is [Debian jessie](https://www.debian.org/releases/jessie/).\n\nFor the word-similarity evaluation script you will need:\n\n* Python 2.6 or newer\n* NumPy & SciPy\n\nFor the python bindings (see the subdirectory python) you will need:\n\n* Python version 2.7 or >=3.4\n* NumPy & SciPy\n* [pybind11](https://github.com/pybind/pybind11)\n\nOne of the oldest distributions we successfully built and tested the Python bindings under is [Debian jessie](https://www.debian.org/releases/jessie/).\n\nIf these requirements make it impossible for you to use fastText, please open an issue and we will try to accommodate you.\n\n## Building fastText\n\nWe discuss building the latest stable version of fastText.\n\n### Getting the source code\n\nYou can find our [latest stable release](https://github.com/facebookresearch/fastText/releases/latest) in the usual place.\n\nThere is also the master branch that contains all of our most recent work, but comes along with all the usual caveats of an unstable branch. You might want to use this if you are a developer or power-user.\n\n### Building fastText using make (preferred)\n\n```\n$ wget https://github.com/facebookresearch/fastText/archive/v0.9.2.zip\n$ unzip v0.9.2.zip\n$ cd fastText-0.9.2\n$ make\n```\n\nThis will produce object files for all the classes as well as the main binary `fasttext`.\nIf you do not plan on using the default system-wide compiler, update the two macros defined at the beginning of the Makefile (CC and INCLUDES).\n\n### Building fastText using cmake\n\nFor now this is not part of a release, so you will need to clone the master branch.\n\n```\n$ git clone https://github.com/facebookresearch/fastText.git\n$ cd fastText\n$ mkdir build && cd build && cmake ..\n$ make && make install\n```\n\nThis will create the fasttext binary and also all relevant libraries (shared, static, PIC).\n\n### Building fastText for Python\n\nFor now this is not part of a release, so you will need to clone the master branch.\n\n```\n$ git clone https://github.com/facebookresearch/fastText.git\n$ cd fastText\n$ pip install .\n```\n\nFor further information and introduction see python/README.md\n\n## Example use cases\n\nThis library has two main use cases: word representation learning and text classification.\nThese were described in the two papers [1](#enriching-word-vectors-with-subword-information) and [2](#bag-of-tricks-for-efficient-text-classification).\n\n### Word representation learning\n\nIn order to learn word vectors, as described in [1](#enriching-word-vectors-with-subword-information), do:\n\n```\n$ ./fasttext skipgram -input data.txt -output model\n```\n\nwhere `data.txt` is a training file containing `UTF-8` encoded text.\nBy default the word vectors will take into account character n-grams from 3 to 6 characters.\nAt the end of optimization the program will save two files: `model.bin` and `model.vec`.\n`model.vec` is a text file containing the word vectors, one per line.\n`model.bin` is a binary file containing the parameters of the model along with the dictionary and all hyper parameters.\nThe binary file can be used later to compute word vectors or to restart the optimization.\n\n### Obtaining word vectors for out-of-vocabulary words\n\nThe previously trained model can be used to compute word vectors for out-of-vocabulary words.\nProvided you have a text file `queries.txt` containing words for which you want to compute vectors, use the following command:\n\n```\n$ ./fasttext print-word-vectors model.bin < queries.txt\n```\n\nThis will output word vectors to the standard output, one vector per line.\nThis can also be used with pipes:\n\n```\n$ cat queries.txt | ./fasttext print-word-vectors model.bin\n```\n\nSee the provided scripts for an example. For instance, running:\n\n```\n$ ./word-vector-example.sh\n```\n\nwill compile the code, download data, compute word vectors and evaluate them on the rare words similarity dataset RW [Thang et al. 2013].\n\n### Text classification\n\nThis library can also be used to train supervised text classifiers, for instance for sentiment analysis.\nIn order to train a text classifier using the method described in [2](#bag-of-tricks-for-efficient-text-classification), use:\n\n```\n$ ./fasttext supervised -input train.txt -output model\n```\n\nwhere `train.txt` is a text file containing a training sentence per line along with the labels.\nBy default, we assume that labels are words that are prefixed by the string `__label__`.\nThis will output two files: `model.bin` and `model.vec`.\nOnce the model was trained, you can evaluate it by computing the precision and recall at k (P@k and R@k) on a test set using:\n\n```\n$ ./fasttext test model.bin test.txt k\n```\n\nThe argument `k` is optional, and is equal to `1` by default.\n\nIn order to obtain the k most likely labels for a piece of text, use:\n\n```\n$ ./fasttext predict model.bin test.txt k\n```\n\nor use `predict-prob` to also get the probability for each label\n\n```\n$ ./fasttext predict-prob model.bin test.txt k\n```\n\nwhere `test.txt` contains a piece of text to classify per line.\nDoing so will print to the standard output the k most likely labels for each line.\nThe argument `k` is optional, and equal to `1` by default.\nSee `classification-example.sh` for an example use case.\nIn order to reproduce results from the paper [2](#bag-of-tricks-for-efficient-text-classification), run `classification-results.sh`, this will download all the datasets and reproduce the results from Table 1.\n\nIf you want to compute vector representations of sentences or paragraphs, please use:\n\n```\n$ ./fasttext print-sentence-vectors model.bin < text.txt\n```\n\nThis assumes that the `text.txt` file contains the paragraphs that you want to get vectors for.\nThe program will output one vector representation per line in the file.\n\nYou can also quantize a supervised model to reduce its memory usage with the following command:\n\n```\n$ ./fasttext quantize -output model\n```\nThis will create a `.ftz` file with a smaller memory footprint. All the standard functionality, like `test` or `predict` work the same way on the quantized models:\n```\n$ ./fasttext test model.ftz test.txt\n```\nThe quantization procedure follows the steps described in [3](#fasttextzip-compressing-text-classification-models). You can\nrun the script `quantization-example.sh` for an example.\n\n\n## Full documentation\n\nInvoke a command without arguments to list available arguments and their default values:\n\n```\n$ ./fasttext supervised\nEmpty input or output path.\n\nThe following arguments are mandatory:\n  -input              training file path\n  -output             output file path\n\nThe following arguments are optional:\n  -verbose            verbosity level [2]\n\nThe following arguments for the dictionary are optional:\n  -minCount           minimal number of word occurrences [1]\n  -minCountLabel      minimal number of label occurrences [0]\n  -wordNgrams         max length of word ngram [1]\n  -bucket             number of buckets [2000000]\n  -minn               min length of char ngram [0]\n  -maxn               max length of char ngram [0]\n  -t                  sampling threshold [0.0001]\n  -label              labels prefix [__label__]\n\nThe following arguments for training are optional:\n  -lr                 learning rate [0.1]\n  -lrUpdateRate       change the rate of updates for the learning rate [100]\n  -dim                size of word vectors [100]\n  -ws                 size of the context window [5]\n  -epoch              number of epochs [5]\n  -neg                number of negatives sampled [5]\n  -loss               loss function {ns, hs, softmax} [softmax]\n  -thread             number of threads [12]\n  -pretrainedVectors  pretrained word vectors for supervised learning []\n  -saveOutput         whether output params should be saved [0]\n\nThe following arguments for quantization are optional:\n  -cutoff             number of words and ngrams to retain [0]\n  -retrain            finetune embeddings if a cutoff is applied [0]\n  -qnorm              quantizing the norm separately [0]\n  -qout               quantizing the classifier [0]\n  -dsub               size of each sub-vector [2]\n```\n\nDefaults may vary by mode. (Word-representation modes `skipgram` and `cbow` use a default `-minCount` of 5.)\n\n## References\n\nPlease cite [1](#enriching-word-vectors-with-subword-information) if using this code for learning word representations or [2](#bag-of-tricks-for-efficient-text-classification) if using for text classification.\n\n### Enriching Word Vectors with Subword Information\n\n[1] P. Bojanowski\\*, E. Grave\\*, A. Joulin, T. Mikolov, [*Enriching Word Vectors with Subword Information*](https://arxiv.org/abs/1607.04606)\n\n```\n@article{bojanowski2017enriching,\n  title={Enriching Word Vectors with Subword Information},\n  author={Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas},\n  journal={Transactions of the Association for Computational Linguistics},\n  volume={5},\n  year={2017},\n  issn={2307-387X},\n  pages={135--146}\n}\n```\n\n### Bag of Tricks for Efficient Text Classification\n\n[2] A. Joulin, E. Grave, P. Bojanowski, T. Mikolov, [*Bag of Tricks for Efficient Text Classification*](https://arxiv.org/abs/1607.01759)\n\n```\n@InProceedings{joulin2017bag,\n  title={Bag of Tricks for Efficient Text Classification},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas},\n  booktitle={Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers},\n  month={April},\n  year={2017},\n  publisher={Association for Computational Linguistics},\n  pages={427--431},\n}\n```\n\n### FastText.zip: Compressing text classification models\n\n[3] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, [*FastText.zip: Compressing text classification models*](https://arxiv.org/abs/1612.03651)\n\n```\n@article{joulin2016fasttext,\n  title={FastText.zip: Compressing text classification models},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{\\'e}gou, H{\\'e}rve and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1612.03651},\n  year={2016}\n}\n```\n\n(\\* These authors contributed equally.)\n\n\n## Join the fastText community\n\n* Facebook page: https://www.facebook.com/groups/1174547215919768\n* Google group: https://groups.google.com/forum/#!forum/fasttext-library\n* Contact: [egrave@fb.com](mailto:egrave@fb.com), [bojanowski@fb.com](mailto:bojanowski@fb.com), [ajoulin@fb.com](mailto:ajoulin@fb.com), [tmikolov@fb.com](mailto:tmikolov@fb.com)\n\nSee the CONTRIBUTING file for information about how to help out.\n\n## License\n\nfastText is MIT-licensed.\n"
  },
  {
    "path": "alignment/README.md",
    "content": "## Alignment of Word Embeddings\n\nThis directory provides code for learning alignments between word embeddings in different languages.\n\nThe code is in Python 3 and requires [NumPy](http://www.numpy.org/).\n\nThe script `example.sh` shows how to use this code to learn and evaluate a bilingual alignment of word embeddings.\n\nThe word embeddings used in [1] can be found on the [fastText project page](https://fasttext.cc) and the supervised bilingual lexicons on the [MUSE project page](https://github.com/facebookresearch/MUSE).\n\n### Supervised alignment\n\nThe script `align.py` aligns word embeddings from two languages using a bilingual lexicon as supervision.\nThe details of this approach can be found in [1].\n\n### Unsupervised alignment\n\nThe script `unsup_align.py` aligns word embeddings from two languages without requiring any supervision.\nAdditionally, the script `unsup_multialign.py` aligns multiple languages to a common space with no supervision.\nThe details of these approaches can be found in [2] and [3] respectively.\n\nIn addition to NumPy, the unsupervised methods require the [Python Optimal Transport](https://pot.readthedocs.io/en/stable/) toolbox.\n\n### Download\n\nWikipedia fastText embeddings aligned with our method can be found [here](https://fasttext.cc/docs/en/aligned-vectors.html).\n\n### References\n\nIf you use the supervised alignment method, please cite:\n\n[1] A. Joulin, P. Bojanowski, T. Mikolov, H. Jegou, E. Grave, [*Loss in Translation: Learning Bilingual Word Mapping with a Retrieval Criterion*](https://arxiv.org/abs/1804.07745)\n\n```\n@InProceedings{joulin2018loss,\n    title={Loss in Translation: Learning Bilingual Word Mapping with a Retrieval Criterion},\n    author={Joulin, Armand and Bojanowski, Piotr and Mikolov, Tomas and J\\'egou, Herv\\'e and Grave, Edouard},\n    year={2018},\n    booktitle={Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing},\n}\n```\n\nIf you use the unsupervised bilingual alignment method, please cite:\n\n[2] E. Grave, A. Joulin, Q. Berthet, [*Unsupervised Alignment of Embeddings with Wasserstein Procrustes*](https://arxiv.org/abs/1805.11222)\n\n```\n@article{grave2018unsupervised,\n    title={Unsupervised Alignment of Embeddings with Wasserstein Procrustes},\n    author={Grave, Edouard and Joulin, Armand and Berthet, Quentin},\n    journal={arXiv preprint arXiv:1805.11222},\n    year={2018}\n}\n```\n\nIf you use the unsupervised alignment script `unsup_multialign.py`, please cite:\n\n[3] J. Alaux, E. Grave, M. Cuturi, A. Joulin, [*Unsupervised Hyperalignment for Multilingual Word Embeddings*](https://arxiv.org/abs/1811.01124)\n\n```\n@article{alaux2018unsupervised,\n  title={Unsupervised hyperalignment for multilingual word embeddings},\n  author={Alaux, Jean and Grave, Edouard and Cuturi, Marco and Joulin, Armand},\n  journal={arXiv preprint arXiv:1811.01124},\n  year={2018}\n}\n```\n"
  },
  {
    "path": "alignment/align.py",
    "content": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the license found in the\n# LICENSE file in the root directory of this source tree.\n\nimport numpy as np\nimport argparse\nfrom utils import *\nimport sys\n\nparser = argparse.ArgumentParser(description='RCSLS for supervised word alignment')\n\nparser.add_argument(\"--src_emb\", type=str, default='', help=\"Load source embeddings\")\nparser.add_argument(\"--tgt_emb\", type=str, default='', help=\"Load target embeddings\")\nparser.add_argument('--center', action='store_true', help='whether to center embeddings or not')\n\nparser.add_argument(\"--dico_train\", type=str, default='', help=\"train dictionary\")\nparser.add_argument(\"--dico_test\", type=str, default='', help=\"validation dictionary\")\n\nparser.add_argument(\"--output\", type=str, default='', help=\"where to save aligned embeddings\")\n\nparser.add_argument(\"--knn\", type=int, default=10, help=\"number of nearest neighbors in RCSL/CSLS\")\nparser.add_argument(\"--maxneg\", type=int, default=200000, help=\"Maximum number of negatives for the Extended RCSLS\")\nparser.add_argument(\"--maxsup\", type=int, default=-1, help=\"Maximum number of training examples\")\nparser.add_argument(\"--maxload\", type=int, default=200000, help=\"Maximum number of loaded vectors\")\n\nparser.add_argument(\"--model\", type=str, default=\"none\", help=\"Set of constraints: spectral or none\")\nparser.add_argument(\"--reg\", type=float, default=0.0 , help='regularization parameters')\n\nparser.add_argument(\"--lr\", type=float, default=1.0, help='learning rate')\nparser.add_argument(\"--niter\", type=int, default=10, help='number of iterations')\nparser.add_argument('--sgd', action='store_true', help='use sgd')\nparser.add_argument(\"--batchsize\", type=int, default=10000, help=\"batch size for sgd\")\n\nparams = parser.parse_args()\n\n###### SPECIFIC FUNCTIONS ######\n# functions specific to RCSLS\n# the rest of the functions are in utils.py\n\ndef getknn(sc, x, y, k=10):\n    sidx = np.argpartition(sc, -k, axis=1)[:, -k:]\n    ytopk = y[sidx.flatten(), :]\n    ytopk = ytopk.reshape(sidx.shape[0], sidx.shape[1], y.shape[1])\n    f = np.sum(sc[np.arange(sc.shape[0])[:, None], sidx])\n    df = np.dot(ytopk.sum(1).T, x)\n    return f / k, df / k\n\n\ndef rcsls(X_src, Y_tgt, Z_src, Z_tgt, R, knn=10):\n    X_trans = np.dot(X_src, R.T)\n    f = 2 * np.sum(X_trans * Y_tgt)\n    df = 2 * np.dot(Y_tgt.T, X_src)\n    fk0, dfk0 = getknn(np.dot(X_trans, Z_tgt.T), X_src, Z_tgt, knn)\n    fk1, dfk1 = getknn(np.dot(np.dot(Z_src, R.T), Y_tgt.T).T, Y_tgt, Z_src, knn)\n    f = f - fk0 -fk1\n    df = df - dfk0 - dfk1.T\n    return -f / X_src.shape[0], -df / X_src.shape[0]\n\n\ndef proj_spectral(R):\n    U, s, V = np.linalg.svd(R)\n    s[s > 1] = 1\n    s[s < 0] = 0\n    return np.dot(U, np.dot(np.diag(s), V))\n\n\n###### MAIN ######\n\n# load word embeddings\nwords_tgt, x_tgt = load_vectors(params.tgt_emb, maxload=params.maxload, center=params.center)\nwords_src, x_src = load_vectors(params.src_emb, maxload=params.maxload, center=params.center)\n\n# load validation bilingual lexicon\nsrc2tgt, lexicon_size = load_lexicon(params.dico_test, words_src, words_tgt)\n\n# word --> vector indices\nidx_src = idx(words_src)\nidx_tgt = idx(words_tgt)\n\n# load train bilingual lexicon\npairs = load_pairs(params.dico_train, idx_src, idx_tgt)\nif params.maxsup > 0 and params.maxsup < len(pairs):\n    pairs = pairs[:params.maxsup]\n\n# selecting training vector  pairs\nX_src, Y_tgt = select_vectors_from_pairs(x_src, x_tgt, pairs)\n\n# adding negatives for RCSLS\nZ_src = x_src[:params.maxneg, :]\nZ_tgt = x_tgt[:params.maxneg, :]\n\n# initialization:\nR = procrustes(X_src, Y_tgt)\nnnacc = compute_nn_accuracy(np.dot(x_src, R.T), x_tgt, src2tgt, lexicon_size=lexicon_size)\nprint(\"[init -- Procrustes] NN: %.4f\"%(nnacc))\nsys.stdout.flush()\n\n# optimization\nfold, Rold = 0, []\nniter, lr = params.niter, params.lr\n\nfor it in range(0, niter + 1):\n    if lr < 1e-4:\n        break\n\n    if params.sgd:\n        indices = np.random.choice(X_src.shape[0], size=params.batchsize, replace=False)\n        f, df = rcsls(X_src[indices, :], Y_tgt[indices, :], Z_src, Z_tgt, R, params.knn)\n    else:\n        f, df = rcsls(X_src, Y_tgt, Z_src, Z_tgt, R, params.knn)\n\n    if params.reg > 0:\n        R *= (1 - lr * params.reg)\n    R -= lr * df\n    if params.model == \"spectral\":\n        R = proj_spectral(R)\n\n    print(\"[it=%d] f = %.4f\" % (it, f))\n    sys.stdout.flush()\n\n    if f > fold and it > 0 and not params.sgd:\n        lr /= 2\n        f, R = fold, Rold\n\n    fold, Rold = f, R\n\n    if (it > 0 and it % 10 == 0) or it == niter:\n        nnacc = compute_nn_accuracy(np.dot(x_src, R.T), x_tgt, src2tgt, lexicon_size=lexicon_size)\n        print(\"[it=%d] NN = %.4f - Coverage = %.4f\" % (it, nnacc, len(src2tgt) / lexicon_size))\n\nnnacc = compute_nn_accuracy(np.dot(x_src, R.T), x_tgt, src2tgt, lexicon_size=lexicon_size)\nprint(\"[final] NN = %.4f - Coverage = %.4f\" % (nnacc, len(src2tgt) / lexicon_size))\n\nif params.output != \"\":\n    print(\"Saving all aligned vectors at %s\" % params.output)\n    words_full, x_full = load_vectors(params.src_emb, maxload=-1, center=params.center, verbose=False)\n    x = np.dot(x_full, R.T)\n    x /= np.linalg.norm(x, axis=1)[:, np.newaxis] + 1e-8\n    save_vectors(params.output, x, words_full)\n    save_matrix(params.output + \"-mat\",  R)\n"
  },
  {
    "path": "alignment/eval.py",
    "content": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the license found in the\n# LICENSE file in the root directory of this source tree.\n\nimport io\nimport numpy as np\nimport argparse\nfrom utils import *\n\nparser = argparse.ArgumentParser(description='Evaluation of word alignment')\nparser.add_argument(\"--src_emb\", type=str, default='', help=\"Load source embeddings\")\nparser.add_argument(\"--tgt_emb\", type=str, default='', help=\"Load target embeddings\")\nparser.add_argument('--center', action='store_true', help='whether to center embeddings or not')\nparser.add_argument(\"--src_mat\", type=str, default='', help=\"Load source alignment matrix. If none given, the aligment matrix is the identity.\")\nparser.add_argument(\"--tgt_mat\", type=str, default='', help=\"Load target alignment matrix. If none given, the aligment matrix is the identity.\")\nparser.add_argument(\"--dico_test\", type=str, default='', help=\"test dictionary\")\nparser.add_argument(\"--maxload\", type=int, default=200000)\nparser.add_argument(\"--nomatch\", action='store_true', help=\"no exact match in lexicon\")\nparams = parser.parse_args()\n\n\n###### SPECIFIC FUNCTIONS ######\n# function specific to evaluation\n# the rest of the functions are in utils.py\n\ndef load_transform(fname, d1=300, d2=300):\n    fin = io.open(fname, 'r', encoding='utf-8', newline='\\n', errors='ignore')\n    R = np.zeros([d1, d2])\n    for i, line in enumerate(fin):\n        tokens = line.split(' ')\n        R[i, :] = np.array(tokens[0:d2], dtype=float)\n    return R\n\n\n###### MAIN ######\n\nprint(\"Evaluation of alignment on %s\" % params.dico_test)\nif params.nomatch:\n    print(\"running without exact string matches\")\n\nwords_tgt, x_tgt = load_vectors(params.tgt_emb, maxload=params.maxload, center=params.center)\nwords_src, x_src = load_vectors(params.src_emb, maxload=params.maxload, center=params.center)\n\nif params.tgt_mat != \"\":\n    R_tgt = load_transform(params.tgt_mat)\n    x_tgt = np.dot(x_tgt, R_tgt)\nif params.src_mat != \"\":\n    R_src = load_transform(params.src_mat)\n    x_src = np.dot(x_src, R_src)\n\nsrc2tgt, lexicon_size = load_lexicon(params.dico_test, words_src, words_tgt)\n\nnnacc = compute_nn_accuracy(x_src, x_tgt, src2tgt, lexicon_size=lexicon_size)\ncslsproc = compute_csls_accuracy(x_src, x_tgt, src2tgt, lexicon_size=lexicon_size)\nprint(\"NN = %.4f - CSLS = %.4f - Coverage = %.4f\" % (nnacc, cslsproc, len(src2tgt) / lexicon_size))\n"
  },
  {
    "path": "alignment/example.sh",
    "content": "#!/bin/usr/env sh\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the license found in the\n# LICENSE file in the root directory of this source tree.\n\nset -e\ns=${1:-en}\nt=${2:-es}\necho \"Example based on the ${s}->${t} alignment\"\n\nif [ ! -d data/ ]; then\n  mkdir -p data;\nfi\n\nif [ ! -d res/ ]; then\n  mkdir -p res;\nfi\n\ndico_train=data/${s}-${t}.0-5000.txt\nif [ ! -f \"${dico_train}\" ]; then\n  DICO=$(basename -- \"${dico_train}\")\n  wget -c \"https://dl.fbaipublicfiles.com/arrival/dictionaries/${DICO}\" -P data/\nfi\n\ndico_test=data/${s}-${t}.5000-6500.txt\nif [ ! -f \"${dico_test}\" ]; then\n  DICO=$(basename -- \"${dico_test}\")\n  wget -c \"https://dl.fbaipublicfiles.com/arrival/dictionaries/${DICO}\" -P data/\nfi\n\nsrc_emb=data/wiki.${s}.vec\nif [ ! -f \"${src_emb}\" ]; then\n  EMB=$(basename -- \"${src_emb}\")\n  wget -c \"https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/${EMB}\" -P data/\nfi\n\ntgt_emb=data/wiki.${t}.vec\nif [ ! -f \"${tgt_emb}\" ]; then\n  EMB=$(basename -- \"${tgt_emb}\")\n  wget -c \"https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/${EMB}\" -P data/\nfi\n\noutput=res/wiki.${s}-${t}.vec\n\npython3 align.py --src_emb \"${src_emb}\" --tgt_emb \"${tgt_emb}\" \\\n  --dico_train \"${dico_train}\" --dico_test \"${dico_test}\" --output \"${output}\" \\\n  --lr 25 --niter 10\npython3 eval.py --src_emb \"${output}\" --tgt_emb \"${tgt_emb}\" \\\n  --dico_test \"${dico_test}\"\n"
  },
  {
    "path": "alignment/unsup_align.py",
    "content": "#!/usr/bin/env python3\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nimport codecs, sys, time, math, argparse, ot\nimport numpy as np\nfrom utils import *\n\nparser = argparse.ArgumentParser(description='Wasserstein Procrustes for Embedding Alignment')\nparser.add_argument('--model_src', type=str, help='Path to source word embeddings')\nparser.add_argument('--model_tgt', type=str, help='Path to target word embeddings')\nparser.add_argument('--lexicon', type=str, help='Path to the evaluation lexicon')\nparser.add_argument('--output_src', default='', type=str, help='Path to save the aligned source embeddings')\nparser.add_argument('--output_tgt', default='', type=str, help='Path to save the aligned target embeddings')\nparser.add_argument('--seed', default=1111, type=int, help='Random number generator seed')\nparser.add_argument('--nepoch', default=5, type=int, help='Number of epochs')\nparser.add_argument('--niter', default=5000, type=int, help='Initial number of iterations')\nparser.add_argument('--bsz', default=500, type=int, help='Initial batch size')\nparser.add_argument('--lr', default=500., type=float, help='Learning rate')\nparser.add_argument('--nmax', default=20000, type=int, help='Vocabulary size for learning the alignment')\nparser.add_argument('--reg', default=0.05, type=float, help='Regularization parameter for sinkhorn')\nargs = parser.parse_args()\n\n\ndef objective(X, Y, R, n=5000):\n    Xn, Yn = X[:n], Y[:n]\n    C = -np.dot(np.dot(Xn, R), Yn.T)\n    P = ot.sinkhorn(np.ones(n), np.ones(n), C, 0.025, stopThr=1e-3)\n    return 1000 * np.linalg.norm(np.dot(Xn, R) - np.dot(P, Yn)) / n\n\n\ndef sqrt_eig(x):\n    U, s, VT = np.linalg.svd(x, full_matrices=False)\n    return np.dot(U, np.dot(np.diag(np.sqrt(s)), VT))\n\n\ndef align(X, Y, R, lr=10., bsz=200, nepoch=5, niter=1000,\n          nmax=10000, reg=0.05, verbose=True):\n    for epoch in range(1, nepoch + 1):\n        for _it in range(1, niter + 1):\n            # sample mini-batch\n            xt = X[np.random.permutation(nmax)[:bsz], :]\n            yt = Y[np.random.permutation(nmax)[:bsz], :]\n            # compute OT on minibatch\n            C = -np.dot(np.dot(xt, R), yt.T)\n            P = ot.sinkhorn(np.ones(bsz), np.ones(bsz), C, reg, stopThr=1e-3)\n            # compute gradient\n            G = - np.dot(xt.T, np.dot(P, yt))\n            R -= lr / bsz * G\n            # project on orthogonal matrices\n            U, s, VT = np.linalg.svd(R)\n            R = np.dot(U, VT)\n        bsz *= 2\n        niter //= 4\n        if verbose:\n            print(\"epoch: %d  obj: %.3f\" % (epoch, objective(X, Y, R)))\n    return R\n\n\ndef convex_init(X, Y, niter=100, reg=0.05, apply_sqrt=False):\n    n, d = X.shape\n    if apply_sqrt:\n        X, Y = sqrt_eig(X), sqrt_eig(Y)\n    K_X, K_Y = np.dot(X, X.T), np.dot(Y, Y.T)\n    K_Y *= np.linalg.norm(K_X) / np.linalg.norm(K_Y)\n    K2_X, K2_Y = np.dot(K_X, K_X), np.dot(K_Y, K_Y)\n    P = np.ones([n, n]) / float(n)\n    for it in range(1, niter + 1):\n        G = np.dot(P, K2_X) + np.dot(K2_Y, P) - 2 * np.dot(K_Y, np.dot(P, K_X))\n        q = ot.sinkhorn(np.ones(n), np.ones(n), G, reg, stopThr=1e-3)\n        alpha = 2.0 / float(2.0 + it)\n        P = alpha * q + (1.0 - alpha) * P\n    obj = np.linalg.norm(np.dot(P, K_X) - np.dot(K_Y, P))\n    print(obj)\n    return procrustes(np.dot(P, X), Y).T\n\n\nprint(\"\\n*** Wasserstein Procrustes ***\\n\")\n\nnp.random.seed(args.seed)\n\nmaxload = 200000\nw_src, x_src = load_vectors(args.model_src, maxload, norm=True, center=True)\nw_tgt, x_tgt = load_vectors(args.model_tgt, maxload, norm=True, center=True)\nsrc2trg, _ = load_lexicon(args.lexicon, w_src, w_tgt)\n\nprint(\"\\nComputing initial mapping with convex relaxation...\")\nt0 = time.time()\nR0 = convex_init(x_src[:2500], x_tgt[:2500], reg=args.reg, apply_sqrt=True)\nprint(\"Done [%03d sec]\" % math.floor(time.time() - t0))\n\nprint(\"\\nComputing mapping with Wasserstein Procrustes...\")\nt0 = time.time()\nR = align(x_src, x_tgt, R0.copy(), bsz=args.bsz, lr=args.lr, niter=args.niter,\n          nepoch=args.nepoch, reg=args.reg, nmax=args.nmax)\nprint(\"Done [%03d sec]\" % math.floor(time.time() - t0))\n\nacc = compute_nn_accuracy(x_src, np.dot(x_tgt, R.T), src2trg)\nprint(\"\\nPrecision@1: %.3f\\n\" % acc)\n\nif args.output_src != '':\n    x_src = x_src / np.linalg.norm(x_src, 2, 1).reshape([-1, 1])\n    save_vectors(args.output_src, x_src, w_src)\nif args.output_tgt != '':\n    x_tgt = x_tgt / np.linalg.norm(x_tgt, 2, 1).reshape([-1, 1])\n    save_vectors(args.output_tgt, np.dot(x_tgt, R.T), w_tgt)\n"
  },
  {
    "path": "alignment/unsup_multialign.py",
    "content": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2019-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the license found in the\n# LICENSE file in the root directory of this source tree.\n\nimport io, os, ot, argparse, random\nimport numpy as np\nfrom utils import *\n\nparser = argparse.ArgumentParser(description=' ')\n\nparser.add_argument('--embdir', default='data/', type=str)\nparser.add_argument('--outdir', default='output/', type=str)\nparser.add_argument('--lglist', default='en-fr-es-it-pt-de-pl-ru-da-nl-cs',  type=str,\n        help='list of languages. The first element is the pivot. Example: en-fr-es to align English, French and Spanish with English as the pivot.')\n\nparser.add_argument('--maxload', default=20000, type=int, help='Max number of loaded vectors')\nparser.add_argument('--uniform', action='store_true', help='switch to uniform probability of picking language pairs')\n\n# optimization parameters for the square loss\nparser.add_argument('--epoch', default=2, type=int, help='nb of epochs for square loss')\nparser.add_argument('--niter', default=500, type=int, help='max number of iteration per epoch for square loss')\nparser.add_argument('--lr', default=0.1, type=float, help='learning rate for square loss')\nparser.add_argument('--bsz', default=500, type=int, help='batch size for square loss')\n\n# optimization parameters for the RCSLS loss\nparser.add_argument('--altepoch', default=100, type=int, help='nb of epochs for RCSLS loss')\nparser.add_argument('--altlr', default=25, type=float, help='learning rate for RCSLS loss')\nparser.add_argument(\"--altbsz\", type=int, default=1000, help=\"batch size for RCSLS\")\n\nargs = parser.parse_args()\n\n###### SPECIFIC FUNCTIONS ######\n\ndef getknn(sc, x, y, k=10):\n    sidx = np.argpartition(sc, -k, axis=1)[:, -k:]\n    ytopk = y[sidx.flatten(), :]\n    ytopk = ytopk.reshape(sidx.shape[0], sidx.shape[1], y.shape[1])\n    f = np.sum(sc[np.arange(sc.shape[0])[:, None], sidx])\n    df = np.dot(ytopk.sum(1).T, x)\n    return f / k, df / k\n\n\ndef rcsls(Xi, Xj, Zi, Zj, R, knn=10):\n    X_trans = np.dot(Xi, R.T)\n    f = 2 * np.sum(X_trans * Xj)\n    df = 2 * np.dot(Xj.T, Xi)\n    fk0, dfk0 = getknn(np.dot(X_trans, Zj.T), Xi, Zj, knn)\n    fk1, dfk1 = getknn(np.dot(np.dot(Zi, R.T), Xj.T).T, Xj, Zi, knn)\n    f = f - fk0 -fk1\n    df = df - dfk0 - dfk1.T\n    return -f / Xi.shape[0], -df.T / Xi.shape[0]\n\n\ndef GWmatrix(emb0):\n    N = np.shape(emb0)[0]\n    N2 = .5* np.linalg.norm(emb0, axis=1).reshape(1, N)\n    C2 = np.tile(N2.transpose(), (1, N)) + np.tile(N2, (N, 1))\n    C2 -= np.dot(emb0,emb0.T)\n    return C2\n\n\ndef gromov_wasserstein(x_src, x_tgt, C2):\n    N = x_src.shape[0]\n    C1 = GWmatrix(x_src)\n    M = ot.gromov_wasserstein(C1,C2,np.ones(N),np.ones(N),'square_loss',epsilon=0.55,max_iter=100,tol=1e-4)\n    return procrustes(np.dot(M,x_tgt), x_src)\n\n\ndef align(EMB, TRANS, lglist, args):\n    nmax, l = args.maxload, len(lglist)\n    # create a list of language pairs to sample from\n    # (default == higher probability to pick a language pair contianing the pivot)\n    # if --uniform: uniform probability of picking a language pair\n    samples = []\n    for i in range(l):\n        for j in range(l):\n            if j == i :\n                continue\n            if j > 0 and args.uniform == False:\n                samples.append((0,j))\n            if i > 0 and args.uniform == False:\n                samples.append((i,0))\n            samples.append((i,j))\n\n    # optimization of the l2 loss\n    print('start optimizing L2 loss')\n    lr0, bsz, nepoch, niter = args.lr, args.bsz, args.epoch, args.niter\n    for epoch in range(nepoch):\n        print(\"start epoch %d / %d\"%(epoch+1, nepoch))\n        ones = np.ones(bsz)\n        f, fold, nb, lr = 0.0, 0.0, 0.0, lr0\n        for it in range(niter):\n            if it > 1 and f > fold + 1e-3:\n                lr /= 2\n            if lr < .05:\n                break\n            fold = f\n            f, nb = 0.0, 0.0\n            for k in range(100 *  (l-1)):\n                (i,j) = random.choice(samples)\n                embi = EMB[i][np.random.permutation(nmax)[:bsz], :]\n                embj = EMB[j][np.random.permutation(nmax)[:bsz], :]\n                perm = ot.sinkhorn(ones, ones, np.linalg.multi_dot([embi, -TRANS[i], TRANS[j].T,embj.T]), reg = 0.025, stopThr = 1e-3)\n                grad = np.linalg.multi_dot([embi.T, perm, embj])\n                f -= np.trace(np.linalg.multi_dot([TRANS[i].T, grad, TRANS[j]])) / embi.shape[0]\n                nb += 1\n                if i > 0:\n                    TRANS[i] = proj_ortho(TRANS[i] + lr * np.dot(grad, TRANS[j]))\n                if j > 0:\n                    TRANS[j] = proj_ortho(TRANS[j] + lr * np.dot(grad.transpose(), TRANS[i]))\n            print(\"iter %d / %d - epoch %d - loss: %.5f  lr: %.4f\" % (it, niter, epoch+1, f / nb , lr))\n        print(\"end of epoch %d - loss: %.5f - lr: %.4f\" % (epoch+1, f / max(nb,1), lr))\n        niter, bsz = max(int(niter/2),2), min(1000, bsz * 2)\n    #end for epoch in range(nepoch):\n\n    # optimization of the RCSLS loss\n    print('start optimizing RCSLS loss')\n    f, fold, nb, lr = 0.0, 0.0, 0.0, args.altlr\n    for epoch in range(args.altepoch):\n        if epoch > 1  and f-fold > -1e-4 * abs(fold):\n            lr/= 2\n        if lr < 1e-1:\n            break\n        fold = f\n        f, nb = 0.0, 0.0\n        for k in range(round(nmax / args.altbsz) * 10 * (l-1)):\n            (i,j) = random.choice(samples)\n            sgdidx = np.random.choice(nmax, size=args.altbsz, replace=False)\n            embi = EMB[i][sgdidx, :]\n            embj = EMB[j][:nmax, :]\n            # crude alignment approximation:\n            T = np.dot(TRANS[i], TRANS[j].T)\n            scores = np.linalg.multi_dot([embi, T, embj.T])\n            perm = np.zeros_like(scores)\n            perm[np.arange(len(scores)), scores.argmax(1)] = 1\n            embj = np.dot(perm, embj)\n            # normalization over a subset of embeddings for speed up\n            fi, grad = rcsls(embi, embj, embi, embj, T.T)\n            f += fi\n            nb += 1\n            if i > 0:\n                TRANS[i] = proj_ortho(TRANS[i] - lr * np.dot(grad, TRANS[j]))\n            if j > 0:\n                TRANS[j] = proj_ortho(TRANS[j] - lr * np.dot(grad.transpose(), TRANS[i]))\n        print(\"epoch %d - loss: %.5f - lr: %.4f\" % (epoch+1, f / max(nb,1), lr))\n    #end for epoch in range(args.altepoch):\n    return TRANS\n\ndef convex_init(X, Y, niter=100, reg=0.05, apply_sqrt=False):\n    n, d = X.shape\n    K_X, K_Y = np.dot(X, X.T), np.dot(Y, Y.T)\n    K_Y *= np.linalg.norm(K_X) / np.linalg.norm(K_Y)\n    K2_X, K2_Y = np.dot(K_X, K_X), np.dot(K_Y, K_Y)\n    P = np.ones([n, n]) / float(n)\n    for it in range(1, niter + 1):\n        G = np.dot(P, K2_X) + np.dot(K2_Y, P) - 2 * np.dot(K_Y, np.dot(P, K_X))\n        q = ot.sinkhorn(np.ones(n), np.ones(n), G, reg, stopThr=1e-3)\n        alpha = 2.0 / float(2.0 + it)\n        P = alpha * q + (1.0 - alpha) * P\n    return procrustes(np.dot(P, X), Y).T\n\n\n###### MAIN ######\n\nlglist = args.lglist.split('-')\nl = len(lglist)\n\n# embs:\nEMB = {}\nfor i in range(l):\n    fn = args.embdir + '/wiki.' + lglist[i] + '.vec'\n    _, vecs = load_vectors(fn, maxload=args.maxload)\n    EMB[i] = vecs\n\n#init\nprint(\"Computing initial bilingual apping with Gromov-Wasserstein...\")\nTRANS={}\nmaxinit = 2000\nemb0 = EMB[0][:maxinit,:]\nC0 = GWmatrix(emb0)\nTRANS[0] = np.eye(300)\nfor i in range(1, l):\n    print(\"init \"+lglist[i])\n    embi = EMB[i][:maxinit,:]\n    TRANS[i] = gromov_wasserstein(embi, emb0, C0)\n\n# align\nalign(EMB, TRANS, lglist, args)\n\nprint('saving matrices in ' + args.outdir)\nlanguages=''.join(lglist)\nfor i in range(l):\n    save_matrix(args.outdir + '/W-' + languages + '-' + lglist[i], TRANS[i])\n"
  },
  {
    "path": "alignment/utils.py",
    "content": "#!/usr/bin/env python3\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the license found in the\n# LICENSE file in the root directory of this source tree.\n\nimport io\nimport numpy as np\nimport collections\n\n\ndef load_vectors(fname, maxload=200000, norm=True, center=False, verbose=True):\n    if verbose:\n        print(\"Loading vectors from %s\" % fname)\n    fin = io.open(fname, 'r', encoding='utf-8', newline='\\n', errors='ignore')\n    n, d = map(int, fin.readline().split())\n    if maxload > 0:\n        n = min(n, maxload)\n    x = np.zeros([n, d])\n    words = []\n    for i, line in enumerate(fin):\n        if i >= n:\n            break\n        tokens = line.rstrip().split(' ')\n        words.append(tokens[0])\n        v = np.array(tokens[1:], dtype=float)\n        x[i, :] = v\n    if norm:\n        x /= np.linalg.norm(x, axis=1)[:, np.newaxis] + 1e-8\n    if center:\n        x -= x.mean(axis=0)[np.newaxis, :]\n        x /= np.linalg.norm(x, axis=1)[:, np.newaxis] + 1e-8\n    if verbose:\n        print(\"%d word vectors loaded\" % (len(words)))\n    return words, x\n\n\ndef idx(words):\n    w2i = {}\n    for i, w in enumerate(words):\n        if w not in w2i:\n            w2i[w] = i\n    return w2i\n\n\ndef save_vectors(fname, x, words):\n    n, d = x.shape\n    fout = io.open(fname, 'w', encoding='utf-8')\n    fout.write(u\"%d %d\\n\" % (n, d))\n    for i in range(n):\n        fout.write(words[i] + \" \" + \" \".join(map(lambda a: \"%.4f\" % a, x[i, :])) + \"\\n\")\n    fout.close()\n\n\ndef save_matrix(fname, x):\n    n, d = x.shape\n    fout = io.open(fname, 'w', encoding='utf-8')\n    fout.write(u\"%d %d\\n\" % (n, d))\n    for i in range(n):\n        fout.write(\" \".join(map(lambda a: \"%.4f\" % a, x[i, :])) + \"\\n\")\n    fout.close()\n\n\ndef procrustes(X_src, Y_tgt):\n    U, s, V = np.linalg.svd(np.dot(Y_tgt.T, X_src))\n    return np.dot(U, V)\n\n\ndef select_vectors_from_pairs(x_src, y_tgt, pairs):\n    n = len(pairs)\n    d = x_src.shape[1]\n    x = np.zeros([n, d])\n    y = np.zeros([n, d])\n    for k, ij in enumerate(pairs):\n        i, j = ij\n        x[k, :] = x_src[i, :]\n        y[k, :] = y_tgt[j, :]\n    return x, y\n\n\ndef load_lexicon(filename, words_src, words_tgt, verbose=True):\n    f = io.open(filename, 'r', encoding='utf-8')\n    lexicon = collections.defaultdict(set)\n    idx_src , idx_tgt = idx(words_src), idx(words_tgt)\n    vocab = set()\n    for line in f:\n        word_src, word_tgt = line.split()\n        if word_src in idx_src and word_tgt in idx_tgt:\n            lexicon[idx_src[word_src]].add(idx_tgt[word_tgt])\n        vocab.add(word_src)\n    if verbose:\n        coverage = len(lexicon) / float(len(vocab))\n        print(\"Coverage of source vocab: %.4f\" % (coverage))\n    return lexicon, float(len(vocab))\n\n\ndef load_pairs(filename, idx_src, idx_tgt, verbose=True):\n    f = io.open(filename, 'r', encoding='utf-8')\n    pairs = []\n    tot = 0\n    for line in f:\n        a, b = line.rstrip().split(' ')\n        tot += 1\n        if a in idx_src and b in idx_tgt:\n            pairs.append((idx_src[a], idx_tgt[b]))\n    if verbose:\n        coverage = (1.0 * len(pairs)) / tot\n        print(\"Found pairs for training: %d - Total pairs in file: %d - Coverage of pairs: %.4f\" % (len(pairs), tot, coverage))\n    return pairs\n\n\ndef compute_nn_accuracy(x_src, x_tgt, lexicon, bsz=100, lexicon_size=-1):\n    if lexicon_size < 0:\n        lexicon_size = len(lexicon)\n    idx_src = list(lexicon.keys())\n    acc = 0.0\n    x_src /= np.linalg.norm(x_src, axis=1)[:, np.newaxis] + 1e-8\n    x_tgt /= np.linalg.norm(x_tgt, axis=1)[:, np.newaxis] + 1e-8\n    for i in range(0, len(idx_src), bsz):\n        e = min(i + bsz, len(idx_src))\n        scores = np.dot(x_tgt, x_src[idx_src[i:e]].T)\n        pred = scores.argmax(axis=0)\n        for j in range(i, e):\n            if pred[j - i] in lexicon[idx_src[j]]:\n                acc += 1.0\n    return acc / lexicon_size\n\n\ndef compute_csls_accuracy(x_src, x_tgt, lexicon, lexicon_size=-1, k=10, bsz=1024):\n    if lexicon_size < 0:\n        lexicon_size = len(lexicon)\n    idx_src = list(lexicon.keys())\n\n    x_src /= np.linalg.norm(x_src, axis=1)[:, np.newaxis] + 1e-8\n    x_tgt /= np.linalg.norm(x_tgt, axis=1)[:, np.newaxis] + 1e-8\n\n    sr = x_src[list(idx_src)]\n    sc = np.dot(sr, x_tgt.T)\n    similarities = 2 * sc\n    sc2 = np.zeros(x_tgt.shape[0])\n    for i in range(0, x_tgt.shape[0], bsz):\n        j = min(i + bsz, x_tgt.shape[0])\n        sc_batch = np.dot(x_tgt[i:j, :], x_src.T)\n        dotprod = np.partition(sc_batch, -k, axis=1)[:, -k:]\n        sc2[i:j] = np.mean(dotprod, axis=1)\n    similarities -= sc2[np.newaxis, :]\n\n    nn = np.argmax(similarities, axis=1).tolist()\n    correct = 0.0\n    for k in range(0, len(lexicon)):\n        if nn[k] in lexicon[idx_src[k]]:\n            correct += 1.0\n    return correct / lexicon_size\n"
  },
  {
    "path": "classification-example.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nmyshuf() {\n  perl -MList::Util=shuffle -e 'print shuffle(<>);' \"$@\";\n}\n\nnormalize_text() {\n  tr '[:upper:]' '[:lower:]' | sed -e 's/^/__label__/g' | \\\n    sed -e \"s/'/ ' /g\" -e 's/\"//g' -e 's/\\./ \\. /g' -e 's/<br \\/>/ /g' \\\n        -e 's/,/ , /g' -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/\\!/ \\! /g' \\\n        -e 's/\\?/ \\? /g' -e 's/\\;/ /g' -e 's/\\:/ /g' | tr -s \" \" | myshuf\n}\n\nRESULTDIR=result\nDATADIR=data\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nif [ ! -f \"${DATADIR}/dbpedia.train\" ]\nthen\n  wget -c \"https://drive.google.com/uc?export=download&id=0Bz8a_Dbh9QhbQ2Vic1kxMmZZQ1k\" -O \"${DATADIR}/dbpedia_csv.tar.gz\"\n  tar -xzvf \"${DATADIR}/dbpedia_csv.tar.gz\" -C \"${DATADIR}\"\n  cat \"${DATADIR}/dbpedia_csv/train.csv\" | normalize_text > \"${DATADIR}/dbpedia.train\"\n  cat \"${DATADIR}/dbpedia_csv/test.csv\" | normalize_text > \"${DATADIR}/dbpedia.test\"\nfi\n\nmake\n\n./fasttext supervised -input \"${DATADIR}/dbpedia.train\" -output \"${RESULTDIR}/dbpedia\" -dim 10 -lr 0.1 -wordNgrams 2 -minCount 1 -bucket 10000000 -epoch 5 -thread 4\n\n./fasttext test \"${RESULTDIR}/dbpedia.bin\" \"${DATADIR}/dbpedia.test\"\n\n./fasttext predict \"${RESULTDIR}/dbpedia.bin\" \"${DATADIR}/dbpedia.test\" > \"${RESULTDIR}/dbpedia.test.predict\"\n"
  },
  {
    "path": "classification-results.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\n# This script produces the results from Table 1 in the following paper:\n# Bag of Tricks for Efficient Text Classification, arXiv 1607.01759, 2016\n\nmyshuf() {\n  perl -MList::Util=shuffle -e 'print shuffle(<>);' \"$@\";\n}\n\nnormalize_text() {\n  tr '[:upper:]' '[:lower:]' | sed -e 's/^/__label__/g' | \\\n    sed -e \"s/'/ ' /g\" -e 's/\"//g' -e 's/\\./ \\. /g' -e 's/<br \\/>/ /g' \\\n        -e 's/,/ , /g' -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/\\!/ \\! /g' \\\n        -e 's/\\?/ \\? /g' -e 's/\\;/ /g' -e 's/\\:/ /g' | tr -s \" \" | myshuf\n}\n\nDATASET=(\n  ag_news\n  sogou_news\n  dbpedia\n  yelp_review_polarity\n  yelp_review_full\n  yahoo_answers\n  amazon_review_full\n  amazon_review_polarity\n)\n\nID=(\n  0Bz8a_Dbh9QhbUDNpeUdjb0wxRms # ag_news\n  0Bz8a_Dbh9QhbUkVqNEszd0pHaFE # sogou_news\n  0Bz8a_Dbh9QhbQ2Vic1kxMmZZQ1k # dbpedia\n  0Bz8a_Dbh9QhbNUpYQ2N3SGlFaDg # yelp_review_polarity\n  0Bz8a_Dbh9QhbZlU4dXhHTFhZQU0 # yelp_review_full\n  0Bz8a_Dbh9Qhbd2JNdDBsQUdocVU # yahoo_answers\n  0Bz8a_Dbh9QhbZVhsUnRWRDhETzA # amazon_review_full\n  0Bz8a_Dbh9QhbaW12WVVZS2drcnM # amazon_review_polarity\n)\n\n# These learning rates were chosen by validation on a subset of the training set.\nLR=( 0.25 0.5 0.5 0.1 0.1 0.1 0.05 0.05 )\n\nRESULTDIR=result\nDATADIR=data\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\n# Small datasets first\n\nfor i in {0..0}\ndo\n  echo \"Downloading dataset ${DATASET[i]}\"\n  if [ ! -f \"${DATADIR}/${DATASET[i]}.train\" ]\n  then\n    wget -c \"https://drive.google.com/uc?export=download&id=${ID[i]}\" -O \"${DATADIR}/${DATASET[i]}_csv.tar.gz\"\n    tar -xzvf \"${DATADIR}/${DATASET[i]}_csv.tar.gz\" -C \"${DATADIR}\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/train.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.train\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/test.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.test\"\n  fi\ndone\n\n# Large datasets require a bit more work due to the extra request page\n\nfor i in {1..7}\ndo\n  echo \"Downloading dataset ${DATASET[i]}\"\n  if [ ! -f \"${DATADIR}/${DATASET[i]}.train\" ]\n  then\n    curl -c /tmp/cookies \"https://drive.google.com/uc?export=download&id=${ID[i]}\" > /tmp/intermezzo.html\n    curl -L -b /tmp/cookies \"https://drive.google.com$(cat /tmp/intermezzo.html | grep -Po 'uc-download-link\" [^>]* href=\"\\K[^\"]*' | sed 's/\\&amp;/\\&/g')\" > \"${DATADIR}/${DATASET[i]}_csv.tar.gz\"\n    tar -xzvf \"${DATADIR}/${DATASET[i]}_csv.tar.gz\" -C \"${DATADIR}\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/train.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.train\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/test.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.test\"\n  fi\ndone\n\nmake\n\nfor i in {0..7}\ndo\n  echo \"Working on dataset ${DATASET[i]}\"\n  ./fasttext supervised -input \"${DATADIR}/${DATASET[i]}.train\" \\\n    -output \"${RESULTDIR}/${DATASET[i]}\" -dim 10 -lr \"${LR[i]}\" -wordNgrams 2 \\\n    -minCount 1 -bucket 10000000 -epoch 5 -thread 4 > /dev/null\n  ./fasttext test \"${RESULTDIR}/${DATASET[i]}.bin\" \\\n    \"${DATADIR}/${DATASET[i]}.test\"\ndone\n"
  },
  {
    "path": "crawl/README.md",
    "content": "## Preprocessing Common Crawl\n\nThis code downloads, preprocesses and splits per language the data from [Common Crawl](http://commoncrawl.org/).\n\nThis script uses the scripts and language identifier of [1].\n\nThis code inherits its requirements form [fastText](https://github.com/facebookresearch/fastText).\n\nSet the variable WET_PATHS_URL to the crawl you want to process.\nPlease also set the variables NUM_LANGID and NUM_DEDUP in `download_crawl.sh` according to the capacity of your machine.\nLangid processes are mostly limited by CPU usage, while dedup processes are likely to be limited by RAM usage (each use 2GB of RAM).\n\n### Reference\n\nIf you use this code, please cite:\n\n[1] E. Grave*, P. Bojanowski*, P. Gupta, A. Joulin, T. Mikolov, [*Learning Word Vectors for 157 Languages*](https://arxiv.org/abs/1802.06893)\n\n```\n@inproceedings{grave2018learning,\n  title={Learning Word Vectors for 157 Languages},\n  author={Grave, Edouard and Bojanowski, Piotr and Gupta, Prakhar and Joulin, Armand and Mikolov, Tomas},\n  booktitle={Proceedings of the International Conference on Language Resources and Evaluation (LREC 2018)},\n  year={2018}\n}\n```\n"
  },
  {
    "path": "crawl/dedup.cc",
    "content": "// Copyright (c) 2018-present, Facebook, Inc.\n// All rights reserved.\n//\n// This source code is licensed under the MIT license found in the\n// LICENSE file in the root directory of this source tree.\n\n#include <cstdint>\n#include <iostream>\n#include <fstream>\n#include <string>\n#include <vector>\n\nuint64_t fnv1a_64(uint8_t *data, size_t sz, uint64_t h=14695981039346656037ull)\n{\n  for (size_t i = 0; i < sz; i++, data++) {\n    h ^= uint64_t(*data);\n    h *= 1099511628211ull;\n  }\n  return h;\n}\n\nint main(int argc, char** argv)\n{\n  uint64_t init_values[] = {\n    14695981039346656037ull,\n    9425296925403859339ull,\n    13716263814064014149ull,\n    3525492407291847033ull,\n    8607404175481815707ull,\n    9818874561736458749ull,\n    10026508429719773353ull,\n    3560712257386009938ull\n  };\n  size_t n = 1ull<<34, num_hashes = 2;\n  std::vector<bool> seen(n);\n\n  std::ios_base::sync_with_stdio(false);\n\n  for (std::string line; std::getline(std::cin, line);) {\n    bool b = true;\n    for (size_t i = 0; i < num_hashes; i++) {\n      uint64_t h = fnv1a_64((uint8_t*) line.data(), line.length(), init_values[i]) % n;\n      b = b && seen[h];\n      seen[h] = true;\n    }\n    if (!b) {\n      std::cout << line << std::endl;\n    }\n  }\n  return 0;\n}\n"
  },
  {
    "path": "crawl/download_crawl.sh",
    "content": "#!/bin/usr/env sh\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nset -e\n\n# Set this variable to the crawl you want to process.\nWET_PATHS_URL=\"https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2018-34/wet.paths.gz\"\n\n# Set NUM_LANGID and NUM_DEDUP according to the capacity of your machine.\n# Please note that each dedup process uses 2GB of RAM, while langid is\n# mostly limited by cpu usage.\nNUM_LANGID=12\nNUM_DEDUP=8\nURL=\"https://commoncrawl.s3.amazonaws.com/\"\n\nif [ ! -d fastText ]; then\n    git clone https://github.com/facebookresearch/fastText.git\nfi\n\nif [ ! -f fastText/fasttext ]; then\n    cd fastText\n    make\n    cd ..\nfi\n\nif [ ! -f lid.176.bin ]; then\n    wget https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin\nfi\n\nif [ ! -d tmp ]; then\n    mkdir tmp\nfi\n\nif [ ! -d shard ]; then\n    mkdir shard\nfi\n\nif [ ! -f wet.paths ]; then\n    wget \"${WET_PATHS_URL}\"\n    gunzip wet.paths.gz\nfi\n\n## Language identification\ncat wet.paths | xargs -n 1 -P \"${NUM_LANGID}\" -I '{}' sh process_wet_file.sh \"${URL}{}\"\n\n## Deduplication\ng++ -std=c++11 -O3 -o dedup dedup.cc\ng++ -std=c++11 -O3 -o filter_utf8 filter_utf8.cc\nfind shard -name '*.txt' | xargs -n 1 -P \"${NUM_DEDUP}\" -I '{}' sh filter_dedup.sh \"{}\"\n\n## Example of data filtering + tokenization\ngit clone https://github.com/moses-smt/mosesdecoder.git\nperl mosesdecoder/scripts/tokenizer/tokenizer.perl -l es < shard/es.dedup > shard/es.tok\n"
  },
  {
    "path": "crawl/filter_dedup.sh",
    "content": "#!/bin/usr/env sh\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nset -e\n\nLG=$(basename --suffix=\".txt\" \"${1}\")\n\n./filter_utf8 < \"shard/${LG}.txt\" \\\n    | ./dedup > \"shard/${LG}.dedup\"\n"
  },
  {
    "path": "crawl/filter_utf8.cc",
    "content": "// Copyright (c) 2018-present, Facebook, Inc.\n// All rights reserved.\n//\n// This source code is licensed under the MIT license found in the\n// LICENSE file in the root directory of this source tree.\n\n#include <cstdint>\n#include <iostream>\n#include <string>\n\n// Check that the next n bytes are continuation bytes.\nbool continuation(uint8_t* str, int n)\n{\n  for (int i = 0; i < n; i++) {\n    if ((str[i] & 0xc0) != 0x80) return false;\n  }\n  return true;\n}\n\n// Invalid UTF8 correspond to codepoints which are larger than U+10FFFF.\n// This value is encoded in UTF8 as:\n//  * 11110.100 10.001111 10.111111 10.111111\n// We thus check if the first byte is larger than 0xf4, or if it is equal\n// to 0xf4 and the second byte is larger than 0x8f.\nbool invalid(uint8_t* str)\n{\n  return str[0] > 0xf4 || (str[0] == 0xf4 && str[1] > 0x8f);\n}\n\n// Surrogate halves corresponds to the range U+D800 through U+DFFF,\n// which are encoded in UTF8 as:\n//  * 1110.1101 10.100000 10.000000\n//  * 1110.1101 10.111111 10.111111\n// We thus check is the first byte is equal to 0xed and if the\n// sixth bit of the second byte is set.\nbool surrogate(uint8_t* str)\n{\n  return str[0] == 0xed && str[1] & 0x20;\n}\n\n// Sequences of length 2 are overlong if the leading 4 bits (noted as y)\n// are equal to 0: 110.yyyyx 10xxxxxx\nbool overlong_2(uint8_t* str)\n{\n  return (str[0] & 0x1e) == 0;\n}\n\n// Sequences of lenth 3 are overlong if the leading 5 bits (noted as y)\n// are equal to 0: 1110.yyyy 10.yxxxxx 10.xxxxxx\nbool overlong_3(uint8_t* str)\n{\n  return (str[0] & 0x0f) == 0 && (str[1] & 0x20) == 0;\n}\n\n// Sequences of length 4 are overlong if the leading 5 bits (noted as y)\n// are equal to 0: 11110.yyy 10.yyxxxx 10.xxxxxx 10.xxxxxx\nbool overlong_4(uint8_t* str)\n{\n  return (str[0] & 0x07) == 0 && (str[1] & 0x30) == 0;\n}\n\nbool valid_utf8(uint8_t* str, size_t length)\n{\n  uint8_t* end = str + length;\n  while (str < end) {\n    if (str[0] < 0x80) {\n      // 0.xxxxxxx\n      str += 1;\n    } else if ((str[0] & 0xe0) == 0xc0) {\n      // 110.xxxxx 10.xxxxxx\n      if (str + 1 >= end) return false;\n      if (!continuation(str + 1, 1)) return false;\n      if (overlong_2(str)) return false;\n      str += 2;\n    } else if ((str[0] & 0xf0) == 0xe0) {\n      // 1110.xxxx 10.xxxxxx 10.xxxxxx\n      if (str + 2 >= end) return false;\n      if (!continuation(str + 1, 2)) return false;\n      if (overlong_3(str)) return false;\n      if (surrogate(str)) return false;\n      str += 3;\n    } else if ((str[0] & 0xf8) == 0xf0) {\n      // 11110.xxx 10.xxxxxx 10.xxxxxx 10.xxxxxx\n      if (str + 3 >= end) return false;\n      if (!continuation(str + 1, 3)) return false;\n      if (overlong_4(str)) return false;\n      if (invalid(str)) return false;\n      str += 4;\n    } else {\n      return false;\n    }\n  }\n  return true;\n}\n\nint main(int argc, char** argv)\n{\n  std::ios_base::sync_with_stdio(false);\n  for (std::string line; std::getline(std::cin, line);) {\n    if (valid_utf8((uint8_t*) line.data(), line.length())) {\n      std::cout << line << std::endl;\n    }\n  }\n  return 0;\n}\n"
  },
  {
    "path": "crawl/process_wet_file.sh",
    "content": "#!/bin/usr/env sh\n# Copyright (c) 2018-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nset -e\n\nURL=$1\n\nFILENAME=$(basename --suffix=\".warc.wet.gz\" \"${URL}\")\n\necho \"Processing ${FILENAME}.\"\n\nwget -q -P tmp \"${URL}\"\n\n#echo \"Extracting ${FILENAME}.warc.wet.gz\"\ngunzip \"tmp/${FILENAME}.warc.wet.gz\"\n\n#echo \"Language identification for ${FILENAME}.warc.wet\"\nfastText/fasttext predict-prob lid.176.bin \"tmp/${FILENAME}.warc.wet\" > \"tmp/${FILENAME}.lid\"\n\n#echo \"Splitting ${FILENAME}.warc.wet per language\"\npaste \"tmp/${FILENAME}.lid\" \"tmp/${FILENAME}.warc.wet\" | \\\n    awk '($2 > 0.8 || ($1==\"__label__hr\" && $2 > 0.4)) && length() > 100 {lang = substr($1, 10); $1=\"\"; $2=\"\"; print $0 >> \"shard/\"lang\".txt\"}'\n\n#echo \"Removing tmp files\"\nrm \"tmp/${FILENAME}.lid\"\nrm \"tmp/${FILENAME}.warc.wet\"\n"
  },
  {
    "path": "docs/aligned-vectors.md",
    "content": "---\nid: aligned-vectors\ntitle: Aligned word vectors\n---\n\nWe are publishing aligned word vectors for 44 languages based on the pre-trained vectors computed on [*Wikipedia*](https://www.wikipedia.org) using fastText.\nThe alignments are performed with the RCSLS method described in [*Joulin et al (2018)*](https://arxiv.org/abs/1804.07745).\n\n### Vectors\n\nThe aligned vectors can be downloaded from:\n\n|||||\n|-|-|-|-|\n| Afrikaans: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.af.align.vec) | Arabic: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ar.align.vec) | Bulgarian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.bg.align.vec) | Bengali: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.bn.align.vec) |\n| Bosnian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.bs.align.vec) | Catalan: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ca.align.vec) | Czech: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.cs.align.vec) | Danish: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.da.align.vec) |\n| German: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.de.align.vec) | Greek: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.el.align.vec) | English: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.en.align.vec) | Spanish: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.es.align.vec) |\n| Estonian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.et.align.vec) | Persian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.fa.align.vec) | Finnish: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.fi.align.vec) | French: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.fr.align.vec) |\n| Hebrew: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.he.align.vec) | Hindi: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.hi.align.vec) | Croatian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.hr.align.vec) | Hungarian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.hu.align.vec) |\n| Indonesian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.id.align.vec) | Italian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.it.align.vec) | Korean: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ko.align.vec) | Lithuanian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.lt.align.vec) |\n| Latvian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.lv.align.vec) | Macedonian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.mk.align.vec) | Malay: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ms.align.vec) | Dutch: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.nl.align.vec) |\n| Norwegian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.no.align.vec) | Polish: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.pl.align.vec) | Portuguese: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.pt.align.vec) | Romanian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ro.align.vec) |\n| Russian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ru.align.vec) | Slovak: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.sk.align.vec) | Slovenian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.sl.align.vec) | Albanian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.sq.align.vec) |\n| Swedish: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.sv.align.vec) | Tamil: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.ta.align.vec) | Thai: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.th.align.vec) | Tagalog: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.tl.align.vec) |\n| Turkish: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.tr.align.vec) | Ukrainian: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.uk.align.vec) | Vietnamese: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.vi.align.vec) | Chinese: [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-aligned/wiki.zh.align.vec) |\n\n### Format\n\nThe word vectors come in the default text format of fastText.\nThe first line gives the number of vectors and their dimension.\nThe other lines contain a word followed by its vector. Each value is space separated.\n\n### License\n\nThe word vectors are distributed under the [*Creative Commons Attribution-Share-Alike License 3.0*](https://creativecommons.org/licenses/by-sa/3.0/).\n\n### References\n\nIf you use these word vectors, please cite the following papers:\n\n[1] A. Joulin, P. Bojanowski, T. Mikolov, H. Jegou, E. Grave, [*Loss in Translation: Learning Bilingual Word Mapping with a Retrieval Criterion*](https://arxiv.org/abs/1804.07745)\n\n```markup\n@InProceedings{joulin2018loss,\n  title={Loss in Translation: Learning Bilingual Word Mapping with a Retrieval Criterion},\n  author={Joulin, Armand and Bojanowski, Piotr and Mikolov, Tomas and J\\'egou, Herv\\'e and Grave, Edouard},\n  year={2018},\n  booktitle={Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing},\n}\n```\n\n[2] P. Bojanowski\\*, E. Grave\\*, A. Joulin, T. Mikolov, [*Enriching Word Vectors with Subword Information*](https://arxiv.org/abs/1607.04606)\n\n```markup\n@article{bojanowski2017enriching,\n  title={Enriching Word Vectors with Subword Information},\n  author={Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas},\n  journal={Transactions of the Association for Computational Linguistics},\n  volume={5},\n  year={2017},\n  issn={2307-387X},\n  pages={135--146}\n}\n```\n"
  },
  {
    "path": "docs/api.md",
    "content": "---\nid: api\ntitle:API\n---\n\nWe automatically generate our [API documentation](/docs/en/html/index.html) with doxygen.\n"
  },
  {
    "path": "docs/autotune.md",
    "content": "---\nid: autotune\ntitle: Automatic hyperparameter optimization\n---\n\nAs we saw in [the tutorial](/docs/en/supervised-tutorial.html#more-epochs-and-larger-learning-rate), finding the best hyperparameters is crucial for building efficient models. However, searching the best hyperparameters manually is difficult. Parameters are dependent and the effect of each parameter vary from one dataset to another.\n\nFastText's autotune feature allows you to find automatically the best hyperparameters for your dataset.\n\n# How to use it\n\nIn order to activate hyperparameter optimization, we must provide a validation file with the `-autotune-validation` argument.\n\nFor example, using the same data as our [tutorial example](/docs/en/supervised-tutorial.html#our-first-classifier), the autotune can be used in the following way:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```sh\n>> ./fasttext supervised -input cooking.train -output model_cooking -autotune-validation cooking.valid\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input='cooking.train', autotuneValidationFile='cooking.valid')\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nThen, fastText will search the hyperparameters that gives the best f1-score on `cooking.valid` file:\n```sh\nProgress: 100.0% Trials:   27 Best score:  0.406763 ETA:   0h 0m 0s\n```\n\nNow we can test the obtained model with:\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```sh\n>> ./fasttext test model_cooking.bin cooking.valid\nN       3000\nP@1     0.666\nR@1     0.288\n```\n<!--Python-->\n```py\n>>> model.test(\"cooking.valid\")\n(3000L, 0.666, 0.288)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nBy default, the search will take 5 minutes. You can set the timeout in seconds with the `-autotune-duration` argument. For example, if you want to set the limit to 10 minutes:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```sh\n>> ./fasttext supervised -input cooking.train -output model_cooking -autotune-validation cooking.valid -autotune-duration 600\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input='cooking.train', autotuneValidationFile='cooking.valid', autotuneDuration=600)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nWhile autotuning, fastText displays the best f1-score found so far. If we decide to stop the tuning before the time limit, we can send one `SIGINT` signal (via `CTLR-C` for example). FastText will then finish the current training, and retrain with the best parameters found so far.\n\n\n\n# Constrain model size\n\nAs you may know, fastText can compress the model with [quantization](/docs/en/cheatsheet.html#quantization). However, this compression task comes with its own [hyperparameters](/docs/en/options.html) (`-cutoff`, `-retrain`, `-qnorm`, `-qout`, `-dsub`) that have a consequence on the accuracy and the size of the final model.\n\nFortunately, autotune can also find the hyperparameters for this compression task while targeting the desired model size. To this end, we can set the `-autotune-modelsize` argument:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```sh\n>> ./fasttext supervised -input cooking.train -output model_cooking -autotune-validation cooking.valid -autotune-modelsize 2M\n```\nThis will produce a `.ftz` file with the best accuracy having the desired size:\n```sh\n>> ls -la model_cooking.ftz\n-rw-r--r--. 1 celebio users 1990862 Aug 25 05:39 model_cooking.ftz\n>> ./fasttext test model_cooking.ftz cooking.valid\nN       3000\nP@1     0.57\nR@1     0.246\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input='cooking.train', autotuneValidationFile='cooking.valid', autotuneModelSize=\"2M\")\n```\nIf you save the model, you will obtain a model file with the desired size:\n```py\n>>> model.save_model(\"model_cooking.ftz\")\n>>> import os\n>>> os.stat(\"model_cooking.ftz\").st_size\n1990862\n>>> model.test(\"cooking.valid\")\n(3000L, 0.57, 0.246)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n# How to set the optimization metric?\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n<br />\nBy default, autotune will test the validation file you provide, exactly the same way as `./fasttext test model_cooking.bin cooking.valid` and try to optimize to get the highest [f1-score](https://en.wikipedia.org/wiki/F1_score).\n\nBut, if we want to optimize the score of a specific label, say `__label__baking`, we can set the `-autotune-metric` argument:\n\n```sh\n>> ./fasttext supervised -input cooking.train -output model_cooking -autotune-validation cooking.valid -autotune-metric f1:__label__baking\n```\n\nThis is equivalent to manually optimize the f1-score we get when we test with `./fasttext test-label model_cooking.bin cooking.valid | grep __label__baking` in command line.\n\nSometimes, you may be interested in predicting more than one label. For example, if you were optimizing the hyperparameters manually to get the best score to predict two labels, you would test with `./fasttext test model_cooking.bin cooking.valid 2`. You can also tell autotune to optimize the parameters by testing two labels with the `-autotune-predictions` argument.\n<!--Python-->\n<br />\nBy default, autotune will test the validation file you provide, exactly the same way as `model.test(\"cooking.valid\")` and try to optimize to get the highest [f1-score](https://en.wikipedia.org/wiki/F1_score).\n\nBut, if we want to optimize the score of a specific label, say `__label__baking`, we can set the `autotuneMetric` argument:\n\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input='cooking.train', autotuneValidationFile='cooking.valid', autotuneMetric=\"f1:__label__baking\")\n```\n\nThis is equivalent to manually optimize the f1-score we get when we test with `model.test_label('cooking.valid')['__label__baking']`.\n\nSometimes, you may be interested in predicting more than one label. For example, if you were optimizing the hyperparameters manually to get the best score to predict two labels, you would test with `model.test(\"cooking.valid\", k=2)`. You can also tell autotune to optimize the parameters by testing two labels with the `autotunePredictions` argument.\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nYou can also force autotune to optimize for the best precision for a given recall, or the best recall for a given precision, for all labels, or for a specific label:\n\nFor example, in order to get the best precision at recall = `30%`:\n```sh\n>> ./fasttext supervised [...] -autotune-metric precisionAtRecall:30\n```\nAnd to get the best precision at recall = `30%` for the label `__label__baking`:\n```sh\n>> ./fasttext supervised [...] -autotune-metric precisionAtRecall:30:__label__baking\n```\n\nSimilarly, you can use `recallAtPrecision`:\n```sh\n>> ./fasttext supervised [...] -autotune-metric recallAtPrecision:30\n>> ./fasttext supervised [...] -autotune-metric recallAtPrecision:30:__label__baking\n```\n\n\n"
  },
  {
    "path": "docs/cheatsheet.md",
    "content": "---\nid: cheatsheet\ntitle: Cheatsheet\n---\n\n## Word representation learning\n\nIn order to learn word vectors do:\n\n```bash\n$ ./fasttext skipgram -input data.txt -output model\n```\n\n## Obtaining word vectors\n\nPrint word vectors for a text file `queries.txt` containing words.\n\n```bash\n$ ./fasttext print-word-vectors model.bin < queries.txt\n```\n\n## Text classification\n\nIn order to train a text classifier do:\n\n```bash\n$ ./fasttext supervised -input train.txt -output model\n```\n\nOnce the model was trained, you can evaluate it by computing the precision and recall at k (P@k and R@k) on a test set using:\n\n```bash\n$ ./fasttext test model.bin test.txt 1\n```\n\nIn order to obtain the k most likely labels for a piece of text, use:\n\n```bash\n$ ./fasttext predict model.bin test.txt k\n```\n\nIn order to obtain the k most likely labels and their associated probabilities for a piece of text, use:\n\n```bash\n$ ./fasttext predict-prob model.bin test.txt k\n```\n\nIf you want to compute vector representations of sentences or paragraphs, please use:\n\n```bash\n$ ./fasttext print-sentence-vectors model.bin < text.txt\n```\n\n## Quantization\n\nIn order to create a `.ftz` file with a smaller memory footprint do:\n\n```bash\n$ ./fasttext quantize -output model\n```\n\nAll other commands such as test also work with this model\n\n```bash\n$ ./fasttext test model.ftz test.txt\n```\n\n## Autotune\n\nActivate hyperparameter optimization with `-autotune-validation` argument:\n\n```bash\n$ ./fasttext supervised -input train.txt -output model -autotune-validation valid.txt\n```\n\nSet timeout (in seconds):\n```bash\n$ ./fasttext supervised -input train.txt -output model -autotune-validation valid.txt -autotune-duration 600\n```\n\nConstrain the final model size:\n```bash\n$ ./fasttext supervised -input train.txt -output model -autotune-validation valid.txt -autotune-modelsize 2M\n```\n\n\n\n\n\n"
  },
  {
    "path": "docs/crawl-vectors.md",
    "content": "---\nid: crawl-vectors\ntitle: Word vectors for 157 languages\n---\n\nWe distribute pre-trained word vectors for 157 languages, trained on [*Common Crawl*](http://commoncrawl.org/) and [*Wikipedia*](https://www.wikipedia.org) using fastText.\nThese models were trained using CBOW with position-weights, in dimension 300, with character n-grams of length 5, a window of size 5 and 10 negatives.\nWe also distribute three new word analogy datasets, for French, Hindi and Polish.\n\n### Download directly with command line or from python\n\nIn order to download with command line or from python code, you must have installed the python package as [described here](/docs/en/support.html#building-fasttext-python-module).\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./download_model.py en     # English\nDownloading https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.bin.gz\n (19.78%) [=========>                                         ]\n```\nOnce the download is finished, use the model as usual:\n```bash\n$ ./fasttext nn cc.en.300.bin 10\nQuery word?\n```\n<!--Python-->\n```py\n>>> import fasttext.util\n>>> fasttext.util.download_model('en', if_exists='ignore')  # English\n>>> ft = fasttext.load_model('cc.en.300.bin')\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n#### 🤗 HuggingFace Integration\nWord vectors for 157 languages available on the Hugging Face Hub under the [`fasttext`](https://huggingface.co/models?library=fasttext) tag and more documentation is available [here](https://huggingface.co/facebook/fasttext-en-vectors/blob/main/README.md).\n\n```python\n>>> import fasttext\n>>> from huggingface_hub import hf_hub_download\n\n>>> model_path = hf_hub_download(repo_id=\"facebook/fasttext-en-vectors\", filename=\"model.bin\")\n>>> model = fasttext.load_model(model_path)\n```\n\n### Adapt the dimension\n\nThe pre-trained word vectors we distribute have dimension 300. If you need a smaller size, you can use our dimension reducer.\nIn order to use that feature, you must have installed the python package as [described here](/docs/en/support.html#building-fasttext-python-module).\n\nFor example, in order to get vectors of dimension 100:\n<!--DOCUSAURUS_CODE_TABS-->\n\n<!--Command line-->\n```bash\n$ ./reduce_model.py cc.en.300.bin 100\nLoading model\nReducing matrix dimensions\nSaving model\ncc.en.100.bin saved\n```\nThen you can use the `cc.en.100.bin` model file as usual.\n\n<!--Python-->\n```py\n>>> import fasttext\n>>> import fasttext.util\n>>> ft = fasttext.load_model('cc.en.300.bin')\n>>> ft.get_dimension()\n300\n>>> fasttext.util.reduce_model(ft, 100)\n>>> ft.get_dimension()\n100\n```\nThen you can use `ft` model object as usual:\n```py\n>>> ft.get_word_vector('hello').shape\n(100,)\n>>> ft.get_nearest_neighbors('hello')\n[(0.775576114654541, u'heyyyy'), (0.7686290144920349, u'hellow'), (0.7663413286209106, u'hello-'), (0.7579624056816101, u'heyyyyy'), (0.7495524287223816, u'hullo'), (0.7473770380020142, u'.hello'), (0.7407292127609253, u'Hiiiii'), (0.7402616739273071, u'hellooo'), (0.7399682402610779, u'hello.'), (0.7396857738494873, u'Heyyyyy')]\n```\nor save it for later use:\n```py\n>>> ft.save_model('cc.en.100.bin')\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n### Format\n\nThe word vectors are available in both binary and text formats.\n\nUsing the binary models, vectors for out-of-vocabulary words can be obtained with\n```\n$ ./fasttext print-word-vectors wiki.it.300.bin < oov_words.txt\n```\nwhere the file oov_words.txt contains out-of-vocabulary words.\n\nIn the text format, each line contain a word followed by its vector.\nEach value is space separated, and words are sorted by frequency in descending order.\nThese text models can easily be loaded in Python using the following code:\n```python\nimport io\n\ndef load_vectors(fname):\n    fin = io.open(fname, 'r', encoding='utf-8', newline='\\n', errors='ignore')\n    n, d = map(int, fin.readline().split())\n    data = {}\n    for line in fin:\n        tokens = line.rstrip().split(' ')\n        data[tokens[0]] = map(float, tokens[1:])\n    return data\n```\n\n### Tokenization\n\nWe used the [*Stanford word segmenter*](https://nlp.stanford.edu/software/segmenter.html) for Chinese, [*Mecab*](http://taku910.github.io/mecab/) for Japanese and [*UETsegmenter*](https://github.com/phongnt570/UETsegmenter) for Vietnamese.\nFor languages using the Latin, Cyrillic, Hebrew or Greek scripts, we used the tokenizer from the [*Europarl*](http://www.statmt.org/europarl/) preprocessing tools.\nFor the remaining languages, we used the ICU tokenizer.\n\nMore information about the training of these models can be found in the article [*Learning Word Vectors for 157 Languages*](https://arxiv.org/abs/1802.06893).\n\n### License\n\nThe word vectors are distributed under the [*Creative Commons Attribution-Share-Alike License 3.0*](https://creativecommons.org/licenses/by-sa/3.0/).\n\n### References\n\nIf you use these word vectors, please cite the following paper:\n\nE. Grave\\*, P. Bojanowski\\*, P. Gupta, A. Joulin, T. Mikolov, [*Learning Word Vectors for 157 Languages*](https://arxiv.org/abs/1802.06893)\n\n```markup\n@inproceedings{grave2018learning,\n  title={Learning Word Vectors for 157 Languages},\n  author={Grave, Edouard and Bojanowski, Piotr and Gupta, Prakhar and Joulin, Armand and Mikolov, Tomas},\n  booktitle={Proceedings of the International Conference on Language Resources and Evaluation (LREC 2018)},\n  year={2018}\n}\n```\n\n### Evaluation datasets\n\nThe analogy evaluation datasets described in the paper are available here: [French](https://dl.fbaipublicfiles.com/fasttext/word-analogies/questions-words-fr.txt), [Hindi](https://dl.fbaipublicfiles.com/fasttext/word-analogies/questions-words-hi.txt), [Polish](https://dl.fbaipublicfiles.com/fasttext/word-analogies/questions-words-pl.txt).\n\n### Models\n\nThe models can be downloaded from:\n\n||||\n|-|-|-|\n|  Afrikaans:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.af.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.af.300.vec.gz) |  Albanian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sq.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sq.300.vec.gz) |  Alemannic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.als.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.als.300.vec.gz) |\n|  Amharic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.am.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.am.300.vec.gz) |  Arabic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ar.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ar.300.vec.gz) |  Aragonese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.an.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.an.300.vec.gz) |\n|  Armenian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hy.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hy.300.vec.gz) |  Assamese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.as.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.as.300.vec.gz) |  Asturian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ast.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ast.300.vec.gz) |\n|  Azerbaijani:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.az.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.az.300.vec.gz) |  Bashkir:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ba.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ba.300.vec.gz) |  Basque:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.eu.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.eu.300.vec.gz) |\n|  Bavarian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bar.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bar.300.vec.gz) |  Belarusian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.be.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.be.300.vec.gz) |  Bengali:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bn.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bn.300.vec.gz) |\n|  Bihari:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bh.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bh.300.vec.gz) |  Bishnupriya Manipuri:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bpy.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bpy.300.vec.gz) |  Bosnian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bs.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bs.300.vec.gz) |\n|  Breton:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.br.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.br.300.vec.gz) |  Bulgarian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bg.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bg.300.vec.gz) |  Burmese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.my.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.my.300.vec.gz) |\n|  Catalan:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ca.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ca.300.vec.gz) |  Cebuano:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ceb.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ceb.300.vec.gz) |  Central Bicolano:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bcl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bcl.300.vec.gz) |\n|  Chechen:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ce.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ce.300.vec.gz) |  Chinese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.zh.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.zh.300.vec.gz) |  Chuvash:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.cv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.cv.300.vec.gz) |\n|  Corsican:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.co.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.co.300.vec.gz) |  Croatian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hr.300.vec.gz) |  Czech:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.cs.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.cs.300.vec.gz) |\n|  Danish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.da.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.da.300.vec.gz) |  Divehi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.dv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.dv.300.vec.gz) |  Dutch:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nl.300.vec.gz) |\n|  Eastern Punjabi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pa.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pa.300.vec.gz) |  Egyptian Arabic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.arz.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.arz.300.vec.gz) |  Emilian-Romagnol:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.eml.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.eml.300.vec.gz) |\n|  English: [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.vec.gz) |  Erzya:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.myv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.myv.300.vec.gz) |  Esperanto:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.eo.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.eo.300.vec.gz) |\n|  Estonian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.et.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.et.300.vec.gz) |  Fiji Hindi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hif.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hif.300.vec.gz) |  Finnish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fi.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fi.300.vec.gz) |\n|  French:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fr.300.vec.gz) |  Galician:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gl.300.vec.gz) |  Georgian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ka.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ka.300.vec.gz) |\n|  German:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.de.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.de.300.vec.gz) |  Goan Konkani:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gom.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gom.300.vec.gz) |  Greek:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.el.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.el.300.vec.gz) |\n|  Gujarati:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gu.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gu.300.vec.gz) |  Haitian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ht.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ht.300.vec.gz) |  Hebrew:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.he.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.he.300.vec.gz) |\n|  Hill Mari:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mrj.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mrj.300.vec.gz) |  Hindi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hi.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hi.300.vec.gz) |  Hungarian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hu.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hu.300.vec.gz) |\n|  Icelandic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.is.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.is.300.vec.gz) |  Ido:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.io.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.io.300.vec.gz) |  Ilokano:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ilo.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ilo.300.vec.gz) |\n|  Indonesian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.id.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.id.300.vec.gz) |  Interlingua:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ia.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ia.300.vec.gz) |  Irish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ga.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ga.300.vec.gz) |\n|  Italian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.it.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.it.300.vec.gz) |  Japanese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ja.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ja.300.vec.gz) |  Javanese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.jv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.jv.300.vec.gz) |\n|  Kannada:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.kn.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.kn.300.vec.gz) |  Kapampangan:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pam.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pam.300.vec.gz) |  Kazakh:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.kk.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.kk.300.vec.gz) |\n|  Khmer:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.km.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.km.300.vec.gz) |  Kirghiz:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ky.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ky.300.vec.gz) |  Korean:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ko.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ko.300.vec.gz) |\n|  Kurdish (Kurmanji):  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ku.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ku.300.vec.gz) |  Kurdish (Sorani):  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ckb.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ckb.300.vec.gz) |  Latin:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.la.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.la.300.vec.gz) |\n|  Latvian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lv.300.vec.gz) |  Limburgish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.li.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.li.300.vec.gz) |  Lithuanian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lt.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lt.300.vec.gz) |\n|  Lombard:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lmo.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lmo.300.vec.gz) |  Low Saxon:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nds.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nds.300.vec.gz) |  Luxembourgish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lb.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.lb.300.vec.gz) |\n|  Macedonian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mk.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mk.300.vec.gz) |  Maithili:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mai.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mai.300.vec.gz) |  Malagasy:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mg.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mg.300.vec.gz) |\n|  Malay:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ms.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ms.300.vec.gz) |  Malayalam:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ml.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ml.300.vec.gz) |  Maltese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mt.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mt.300.vec.gz) |\n|  Manx:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gv.300.vec.gz) |  Marathi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mr.300.vec.gz) |  Mazandarani:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mzn.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mzn.300.vec.gz) |\n|  Meadow Mari:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mhr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mhr.300.vec.gz) |  Minangkabau:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.min.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.min.300.vec.gz) |  Mingrelian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.xmf.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.xmf.300.vec.gz) |\n|  Mirandese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mwl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mwl.300.vec.gz) |  Mongolian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mn.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.mn.300.vec.gz) |  Nahuatl:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nah.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nah.300.vec.gz) |\n|  Neapolitan:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nap.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nap.300.vec.gz) |  Nepali:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ne.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ne.300.vec.gz) |  Newar:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.new.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.new.300.vec.gz) |\n|  North Frisian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.frr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.frr.300.vec.gz) |  Northern Sotho:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nso.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nso.300.vec.gz) |  Norwegian (Bokmål):  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.no.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.no.300.vec.gz) |\n|  Norwegian (Nynorsk):  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nn.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nn.300.vec.gz) |  Occitan:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.oc.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.oc.300.vec.gz) |  Oriya:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.or.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.or.300.vec.gz) |\n|  Ossetian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.os.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.os.300.vec.gz) |  Palatinate German:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pfl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pfl.300.vec.gz) |  Pashto:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ps.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ps.300.vec.gz) |\n|  Persian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fa.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fa.300.vec.gz) |  Piedmontese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pms.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pms.300.vec.gz) |  Polish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pl.300.vec.gz) |\n|  Portuguese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pt.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pt.300.vec.gz) |  Quechua:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.qu.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.qu.300.vec.gz) |  Romanian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ro.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ro.300.vec.gz) |\n|  Romansh:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.rm.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.rm.300.vec.gz) |  Russian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ru.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ru.300.vec.gz) |  Sakha:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sah.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sah.300.vec.gz) |\n|  Sanskrit:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sa.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sa.300.vec.gz) |  Sardinian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sc.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sc.300.vec.gz) |  Scots:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sco.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sco.300.vec.gz) |\n|  Scottish Gaelic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gd.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.gd.300.vec.gz) |  Serbian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sr.300.vec.gz) |  Serbo-Croatian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sh.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sh.300.vec.gz) |\n|  Sicilian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.scn.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.scn.300.vec.gz) |  Sindhi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sd.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sd.300.vec.gz) |  Sinhalese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.si.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.si.300.vec.gz) |\n|  Slovak:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sk.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sk.300.vec.gz) |  Slovenian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sl.300.vec.gz) |  Somali:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.so.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.so.300.vec.gz) |\n|  Southern Azerbaijani:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.azb.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.azb.300.vec.gz) |  Spanish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.es.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.es.300.vec.gz) |  Sundanese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.su.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.su.300.vec.gz) |\n|  Swahili:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sw.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sw.300.vec.gz) |  Swedish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sv.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.sv.300.vec.gz) |  Tagalog:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tl.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tl.300.vec.gz) |\n|  Tajik:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tg.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tg.300.vec.gz) |  Tamil:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ta.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ta.300.vec.gz) |  Tatar:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tt.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tt.300.vec.gz) |\n|  Telugu:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.te.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.te.300.vec.gz) |  Thai:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.th.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.th.300.vec.gz) |  Tibetan:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bo.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.bo.300.vec.gz) |\n|  Turkish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tr.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tr.300.vec.gz) |  Turkmen:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tk.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.tk.300.vec.gz) |  Ukrainian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.uk.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.uk.300.vec.gz) |\n|  Upper Sorbian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hsb.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.hsb.300.vec.gz) |  Urdu:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ur.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ur.300.vec.gz) |  Uyghur:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ug.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ug.300.vec.gz) |\n|  Uzbek:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.uz.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.uz.300.vec.gz) |  Venetian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vec.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vec.300.vec.gz) |  Vietnamese:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vi.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vi.300.vec.gz) |\n|  Volapük:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vo.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vo.300.vec.gz) |  Walloon:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.wa.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.wa.300.vec.gz) |  Waray:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.war.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.war.300.vec.gz) |\n|  Welsh:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.cy.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.cy.300.vec.gz) |  West Flemish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vls.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.vls.300.vec.gz) |  West Frisian:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fy.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.fy.300.vec.gz) |\n|  Western Punjabi:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pnb.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.pnb.300.vec.gz) |  Yiddish:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.yi.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.yi.300.vec.gz) |  Yoruba:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.yo.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.yo.300.vec.gz) |\n|  Zazaki:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.diq.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.diq.300.vec.gz) |  Zeelandic:  [bin](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.zea.300.bin.gz), [text](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.zea.300.vec.gz) |\n"
  },
  {
    "path": "docs/dataset.md",
    "content": "---\nid: dataset\ntitle: Datasets\n---\n\n[Download YFCC100M Dataset](https://fb-public.box.com/s/htfdbrvycvroebv9ecaezaztocbcnsdn)\n"
  },
  {
    "path": "docs/english-vectors.md",
    "content": "---\nid: english-vectors\ntitle: English word vectors\n---\n\nThis page gathers several pre-trained word vectors trained using fastText.\n\n### Download pre-trained word vectors\n\nPre-trained word vectors learned on different sources can be downloaded below:\n\n1. [wiki-news-300d-1M.vec.zip](https://dl.fbaipublicfiles.com/fasttext/vectors-english/wiki-news-300d-1M.vec.zip): 1 million word vectors trained on Wikipedia 2017, UMBC webbase corpus and statmt.org news dataset (16B tokens).\n2. [wiki-news-300d-1M-subword.vec.zip](https://dl.fbaipublicfiles.com/fasttext/vectors-english/wiki-news-300d-1M-subword.vec.zip): 1 million word vectors trained with subword infomation on Wikipedia 2017, UMBC webbase corpus and statmt.org news dataset (16B tokens).\n3. [crawl-300d-2M.vec.zip](https://dl.fbaipublicfiles.com/fasttext/vectors-english/crawl-300d-2M.vec.zip): 2 million word vectors trained on Common Crawl (600B tokens).\n4. [crawl-300d-2M-subword.zip](https://dl.fbaipublicfiles.com/fasttext/vectors-english/crawl-300d-2M-subword.zip): 2 million word vectors trained with subword information on Common Crawl (600B tokens).\n\n### Format\n\nThe first line of the file contains the number of words in the vocabulary and the size of the vectors.\nEach line contains a word followed by its vectors, like in the default fastText text format.\nEach value is space separated. Words are ordered by descending frequency.\nThese text models can easily be loaded in Python using the following code:\n```python\nimport io\n\ndef load_vectors(fname):\n    fin = io.open(fname, 'r', encoding='utf-8', newline='\\n', errors='ignore')\n    n, d = map(int, fin.readline().split())\n    data = {}\n    for line in fin:\n        tokens = line.rstrip().split(' ')\n        data[tokens[0]] = map(float, tokens[1:])\n    return data\n```\n\n### License\n\nThese word vectors are distributed under the [*Creative Commons Attribution-Share-Alike License 3.0*](https://creativecommons.org/licenses/by-sa/3.0/).\n\n### References\n\nIf you use these word vectors, please cite the following paper:\n\nT. Mikolov, E. Grave, P. Bojanowski, C. Puhrsch, A. Joulin. [*Advances in Pre-Training Distributed Word Representations*](https://arxiv.org/abs/1712.09405)\n\n```markup\n@inproceedings{mikolov2018advances,\n  title={Advances in Pre-Training Distributed Word Representations},\n  author={Mikolov, Tomas and Grave, Edouard and Bojanowski, Piotr and Puhrsch, Christian and Joulin, Armand},\n  booktitle={Proceedings of the International Conference on Language Resources and Evaluation (LREC 2018)},\n  year={2018}\n}\n```\n"
  },
  {
    "path": "docs/faqs.md",
    "content": "---\nid: faqs\ntitle:FAQ\n---\n\n## What is fastText? Are there tutorials?\n\nFastText is a library for text classification and representation. It transforms text into continuous vectors that can later be used on any language related task. A few tutorials are available.\n\n## How can I reduce the size of my fastText models?\n\nfastText uses a hashtable for either word or character ngrams. The size of the hashtable directly impacts the size of a model. To reduce the size of the model, it is possible to reduce the size of this table with the option '-hash'. For example a good value is 20000. Another option that greatly impacts the size of a model is the size of the vectors (-dim). This dimension can be reduced to save space but this can significantly impact performance. If that still produce a model that is too big, one can further reduce the size of a trained model with the quantization option.\n```bash\n./fasttext quantize -output model\n```\n\n## What would be the best way to represent word phrases rather than words?\n\nCurrently the best approach to represent word phrases or sentence is to take a bag of words of word vectors. Additionally, for phrases like “New York”, preprocessing the data so that it becomes a single token “New_York” can greatly help.\n\n## Why does fastText produce vectors even for unknown words?\n\nOne of the key features of fastText word representation is its ability to produce vectors for any words, even made-up ones.\nIndeed, fastText word vectors are built from vectors of substrings of characters contained in it.\nThis allows to build vectors even for misspelled words or concatenation of words.\n\n## Why is the hierarchical softmax slightly worse in performance than the full softmax?\n\nThe hierarchical softmax is an approximation of the full softmax loss that allows to train on large number of class efficiently. This is often at the cost of a few percent of accuracy.\nNote also that this loss is thought for classes that are unbalanced, that is some classes are more frequent than others. If your dataset has a balanced number of examples per class, it is worth trying the negative sampling loss (-loss ns -neg 100).\nHowever, negative sampling will still be very slow at test time, since the full softmax will be computed.\n\n## Can we run fastText program on a GPU?\n\nAs of now, fastText only works on CPU.\nPlease note that one of the goal of fastText is to be an efficient CPU tool, allowing to train models without requiring a GPU.\n\n## Can I use fastText with python? Or other languages?\n\n[Python is officially supported](/docs/en/support.html#building-fasttext-python-module).\nThere are few unofficial wrappers for javascript, lua and other languages available on github.\n\n## Can I use fastText with continuous data?\n\nFastText works on discrete tokens and thus cannot be directly used on continuous tokens. However, one can discretize continuous tokens to use fastText on them, for example by rounding values to a specific digit (\"12.3\" becomes \"12\").\n\n## There are misspellings in the dictionary. Should we improve text normalization?\n\nIf the words are infrequent, there is no need to worry.\n\n## I'm encountering a NaN, why could this be?\n\nYou'll likely see this behavior because your learning rate is too high. Try reducing it until you don't see this error anymore.\n\n## My compiler / architecture can't build fastText. What should I do?\nTry a newer version of your compiler. We try to maintain compatibility with older versions of gcc and many platforms, however sometimes maintaining backwards compatibility becomes very hard. In general, compilers and tool chains that ship with LTS versions of major linux distributions should be fair game. In any case, create an issue with your compiler version and architecture and we'll try to implement compatibility.\n\n## How do I run fastText in a fully reproducible way? Each time I run it I get different results.\nIf you run fastText multiple times you'll obtain slightly different results each time due to the optimization algorithm (asynchronous stochastic gradient descent, or Hogwild). If you need to get the same results (e.g. to confront different input params set) you have to set the 'thread' parameter to 1. In this way you'll get exactly the same performances at each run (with the same input params).\n\n\n## Why do I get a probability of 1.00001?\nThis is a known rounding issue. You can consider it as 1.0.\n\n## How can I change the dimension of word vectors of a model file?\nIf you already trained a model, or downloaded a pre-trained word vectors model, you can adapt the dimension of the word vectors with the `reduce_model.py` script or by calling `fasttext.util.reduce_model` from python, as [described here](/docs/en/crawl-vectors.html#adapt-the-dimension)\n"
  },
  {
    "path": "docs/language-identification.md",
    "content": "---\nid: language-identification\ntitle: Language identification\n---\n\n### Description\n\nWe distribute two models for language identification, which can recognize 176 languages (see the list of ISO codes below). These models were trained on data from [Wikipedia](https://www.wikipedia.org/), [Tatoeba](https://tatoeba.org/eng/) and  [SETimes](http://nlp.ffzg.hr/resources/corpora/setimes/), used under [CC-BY-SA](http://creativecommons.org/licenses/by-sa/3.0/).\n\nWe distribute two versions of the models:\n\n* [lid.176.bin](https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin), which is faster and slightly more accurate, but has a file size of 126MB ;\n* [lid.176.ftz](https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.ftz), which is the compressed version of the model, with a file size of 917kB.\n\nThese models were trained on UTF-8 data, and therefore expect UTF-8 as input.\n\n#### Updated model (NLLB project)\nA newer LID (**L**anguage **ID**entification) model was [released as part of the NLLB project](https://github.com/facebookresearch/fairseq/tree/nllb#lid-model) under [CC-BY-NC 4.0](LICENSE.model.md) license. \n\n* [lid218e.bin](https://tinyurl.com/nllblid218e) uses different language codes from the original models—the ISO 639-3 code (e.g. \"eng\", \"fra\", \"rus\") plus an additional code describing the script (e.g., \"eng_Latn\", \"ukr_Cyrl\")—and has a file size of 1.2GB.\n\nYou can read more about the data the model was trained on [here](https://github.com/facebookresearch/fairseq/blob/nllb/README.md#datasets).\n\n#### 🤗 HuggingFace Integration\nThis model is [available](https://huggingface.co/facebook/fasttext-language-identification) on the Hugging Face Hub. \n\n```python\n>>> import fasttext\n>>> from huggingface_hub import hf_hub_download\n\n>>> model_path = hf_hub_download(repo_id=\"facebook/fasttext-language-identification\", filename=\"model.bin\")\n>>> model = fasttext.load_model(model_path)\n>>> model.predict(\"Hello, world!\")\n\n(('__label__eng_Latn',), array([0.81148803]))\n\n>>> model.predict(\"Hello, world!\", k=5)\n\n(('__label__eng_Latn', '__label__vie_Latn', '__label__nld_Latn', '__label__pol_Latn', '__label__deu_Latn'), \n array([0.61224753, 0.21323682, 0.09696738, 0.01359863, 0.01319415]))\n```\n\n\n### License\n\nThe models are distributed under the [*Creative Commons Attribution-Share-Alike License 3.0*](https://creativecommons.org/licenses/by-sa/3.0/).\n\n### List of supported languages\n```\naf als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk ce ceb ckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh\n```\n\n### References\n\nIf you use these models, please cite the following papers:\n\n[1] A. Joulin, E. Grave, P. Bojanowski, T. Mikolov, [*Bag of Tricks for Efficient Text Classification*](https://arxiv.org/abs/1607.01759)\n```\n@article{joulin2016bag,\n  title={Bag of Tricks for Efficient Text Classification},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1607.01759},\n  year={2016}\n}\n```\n[2] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, [*FastText.zip: Compressing text classification models* ](https://arxiv.org/abs/1612.03651)\n```\n@article{joulin2016fasttext,\n  title={FastText.zip: Compressing text classification models},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{\\'e}gou, H{\\'e}rve and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1612.03651},\n  year={2016}\n}\n```\n"
  },
  {
    "path": "docs/options.md",
    "content": "---\nid: options\ntitle: List of options\n---\n\nInvoke a command without arguments to list available arguments and their default values:\n\n```bash\n$ ./fasttext supervised\nEmpty input or output path.\n\nThe following arguments are mandatory:\n  -input              training file path\n  -output             output file path\n\n  The following arguments are optional:\n  -verbose            verbosity level [2]\n\n  The following arguments for the dictionary are optional:\n  -minCount           minimal number of word occurrences [1]\n  -minCountLabel      minimal number of label occurrences [0]\n  -wordNgrams         max length of word ngram [1]\n  -bucket             number of buckets [2000000]\n  -minn               min length of char ngram [0]\n  -maxn               max length of char ngram [0]\n  -t                  sampling threshold [0.0001]\n  -label              labels prefix [__label__]\n\n  The following arguments for training are optional:\n  -lr                 learning rate [0.1]\n  -lrUpdateRate       change the rate of updates for the learning rate [100]\n  -dim                size of word vectors [100]\n  -ws                 size of the context window [5]\n  -epoch              number of epochs [5]\n  -neg                number of negatives sampled [5]\n  -loss               loss function {ns, hs, softmax} [softmax]\n  -thread             number of threads [12]\n  -pretrainedVectors  pretrained word vectors for supervised learning []\n  -saveOutput         whether output params should be saved [0]\n\n  The following arguments for quantization are optional:\n  -cutoff             number of words and ngrams to retain [0]\n  -retrain            finetune embeddings if a cutoff is applied [0]\n  -qnorm              quantizing the norm separately [0]\n  -qout               quantizing the classifier [0]\n  -dsub               size of each sub-vector [2]\n```\n\nDefaults may vary by mode. (Word-representation modes `skipgram` and `cbow` use a default `-minCount` of 5.)\n\n\nHyperparameter optimization (autotune) is activated when you provide a validation file with `-autotune-validation` argument.\n```text\nThe following arguments are for autotune:\n  -autotune-validation            validation file to be used for evaluation\n  -autotune-metric                metric objective {f1, f1:labelname} [f1]\n  -autotune-predictions           number of predictions used for evaluation  [1]\n  -autotune-duration              maximum duration in seconds [300]\n  -autotune-modelsize             constraint model file size [] (empty = do not quantize)\n```\n"
  },
  {
    "path": "docs/pretrained-vectors.md",
    "content": "---\nid: pretrained-vectors\ntitle: Wiki word vectors\n---\n\nWe are publishing pre-trained word vectors for 294 languages, trained on [*Wikipedia*](https://www.wikipedia.org) using fastText.\nThese vectors in dimension 300 were obtained using the skip-gram model described in [*Bojanowski et al. (2016)*](https://arxiv.org/abs/1607.04606) with default parameters.\n\nPlease note that a newer version of multi-lingual word vectors are available at: [Word vectors for 157 languages](https://fasttext.cc/docs/en/crawl-vectors.html).\n\n### Models\n\nThe models can be downloaded from:\n\n||||\n|-|-|-|\n| Abkhazian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ab.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ab.vec) | Acehnese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ace.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ace.vec) | Adyghe: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ady.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ady.vec) |\n| Afar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.aa.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.aa.vec) | Afrikaans: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.af.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.af.vec) | Akan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ak.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ak.vec) |\n| Albanian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sq.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sq.vec) | Alemannic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.als.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.als.vec) | Amharic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.am.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.am.vec) |\n| Anglo_Saxon: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ang.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ang.vec) | Arabic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ar.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ar.vec) | Aragonese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.an.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.an.vec) |\n| Aramaic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.arc.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.arc.vec) | Armenian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hy.vec) | Aromanian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.roa_rup.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.roa_rup.vec) |\n| Assamese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.as.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.as.vec) | Asturian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ast.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ast.vec) | Avar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.av.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.av.vec) |\n| Aymara: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ay.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ay.vec) | Azerbaijani: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.az.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.az.vec) | Bambara: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bm.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bm.vec) |\n| Banjar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bjn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bjn.vec) | Banyumasan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.map_bms.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.map_bms.vec) | Bashkir: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ba.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ba.vec) |\n| Basque: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.eu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.eu.vec) | Bavarian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bar.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bar.vec) | Belarusian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.be.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.be.vec) |\n| Bengali: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bn.vec) | Bihari: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bh.vec) | Bishnupriya Manipuri: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bpy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bpy.vec) |\n| Bislama: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bi.vec) | Bosnian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bs.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bs.vec) | Breton: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.br.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.br.vec) |\n| Buginese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bug.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bug.vec) | Bulgarian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bg.vec) | Burmese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.my.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.my.vec) |\n| Buryat: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bxr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bxr.vec) | Cantonese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh_yue.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh_yue.vec) | Catalan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ca.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ca.vec) |\n| Cebuano: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ceb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ceb.vec) | Central Bicolano: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bcl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bcl.vec) | Chamorro: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ch.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ch.vec) |\n| Chavacano: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cbk_zam.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cbk_zam.vec) | Chechen: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ce.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ce.vec) | Cherokee: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.chr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.chr.vec) |\n| Cheyenne: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.chy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.chy.vec) | Chichewa: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ny.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ny.vec) | Chinese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh.vec) |\n| Choctaw: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cho.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cho.vec) | Chuvash: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cv.vec) | Classical Chinese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh_classical.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh_classical.vec) |\n| Cornish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kw.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kw.vec) | Corsican: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.co.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.co.vec) | Cree: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cr.vec) |\n| Crimean Tatar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.crh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.crh.vec) | Croatian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hr.vec) | Czech: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cs.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cs.vec) |\n| Danish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.da.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.da.vec) | Divehi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.dv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.dv.vec) | Dutch: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nl.vec) |\n| Dutch Low Saxon: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nds_nl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nds_nl.vec) | Dzongkha: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.dz.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.dz.vec) | Eastern Punjabi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pa.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pa.vec) |\n| Egyptian Arabic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.arz.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.arz.vec) | Emilian_Romagnol: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.eml.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.eml.vec) | English: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.en.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.en.vec) |\n| Erzya: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.myv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.myv.vec) | Esperanto: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.eo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.eo.vec) | Estonian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.et.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.et.vec) |\n| Ewe: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ee.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ee.vec) | Extremaduran: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ext.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ext.vec) | Faroese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fo.vec) |\n| Fiji Hindi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hif.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hif.vec) | Fijian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fj.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fj.vec) | Finnish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fi.vec) |\n| Franco_Provençal: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.frp.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.frp.vec) | French: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fr.vec) | Friulian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fur.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fur.vec) |\n| Fula: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ff.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ff.vec) | Gagauz: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gag.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gag.vec) | Galician: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gl.vec) |\n| Gan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gan.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gan.vec) | Georgian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ka.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ka.vec) | German: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.de.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.de.vec) |\n| Gilaki: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.glk.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.glk.vec) | Goan Konkani: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gom.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gom.vec) | Gothic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.got.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.got.vec) |\n| Greek: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.el.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.el.vec) | Greenlandic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kl.vec) | Guarani: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gn.vec) |\n| Gujarati: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gu.vec) | Haitian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ht.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ht.vec) | Hakka: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hak.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hak.vec) |\n| Hausa: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ha.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ha.vec) | Hawaiian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.haw.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.haw.vec) | Hebrew: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.he.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.he.vec) |\n| Herero: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hz.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hz.vec) | Hill Mari: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mrj.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mrj.vec) | Hindi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hi.vec) |\n| Hiri Motu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ho.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ho.vec) | Hungarian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hu.vec) | Icelandic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.is.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.is.vec) |\n| Ido: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.io.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.io.vec) | Igbo: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ig.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ig.vec) | Ilokano: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ilo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ilo.vec) |\n| Indonesian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.id.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.id.vec) | Interlingua: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ia.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ia.vec) | Interlingue: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ie.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ie.vec) |\n| Inuktitut: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.iu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.iu.vec) | Inupiak: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ik.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ik.vec) | Irish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ga.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ga.vec) |\n| Italian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.it.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.it.vec) | Jamaican Patois: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.jam.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.jam.vec) | Japanese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ja.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ja.vec) |\n| Javanese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.jv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.jv.vec) | Kabardian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kbd.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kbd.vec) | Kabyle: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kab.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kab.vec) |\n| Kalmyk: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.xal.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.xal.vec) | Kannada: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kn.vec) | Kanuri: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kr.vec) |\n| Kapampangan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pam.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pam.vec) | Karachay_Balkar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.krc.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.krc.vec) | Karakalpak: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kaa.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kaa.vec) |\n| Kashmiri: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ks.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ks.vec) | Kashubian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.csb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.csb.vec) | Kazakh: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kk.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kk.vec) |\n| Khmer: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.km.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.km.vec) | Kikuyu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ki.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ki.vec) | Kinyarwanda: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rw.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rw.vec) |\n| Kirghiz: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ky.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ky.vec) | Kirundi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rn.vec) | Komi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kv.vec) |\n| Komi_Permyak: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.koi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.koi.vec) | Kongo: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kg.vec) | Korean: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ko.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ko.vec) |\n| Kuanyama: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kj.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.kj.vec) | Kurdish (Kurmanji): [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ku.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ku.vec) | Kurdish (Sorani): [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ckb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ckb.vec) |\n| Ladino: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lad.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lad.vec) | Lak: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lbe.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lbe.vec) | Lao: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lo.vec) |\n| Latgalian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ltg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ltg.vec) | Latin: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.la.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.la.vec) | Latvian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lv.vec) |\n| Lezgian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lez.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lez.vec) | Ligurian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lij.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lij.vec) | Limburgish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.li.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.li.vec) |\n| Lingala: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ln.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ln.vec) | Lithuanian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lt.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lt.vec) | Livvi_Karelian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.olo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.olo.vec) |\n| Lojban: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.jbo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.jbo.vec) | Lombard: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lmo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lmo.vec) | Low Saxon: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nds.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nds.vec) |\n| Lower Sorbian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.dsb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.dsb.vec) | Luganda: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lg.vec) | Luxembourgish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lb.vec) |\n| Macedonian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mk.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mk.vec) | Maithili: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mai.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mai.vec) | Malagasy: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mg.vec) |\n| Malay: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ms.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ms.vec) | Malayalam: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ml.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ml.vec) | Maltese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mt.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mt.vec) |\n| Manx: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gv.vec) | Maori: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mi.vec) | Marathi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mr.vec) |\n| Marshallese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mh.vec) | Mazandarani: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mzn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mzn.vec) | Meadow Mari: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mhr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mhr.vec) |\n| Min Dong: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cdo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cdo.vec) | Min Nan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh_min_nan.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zh_min_nan.vec) | Minangkabau: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.min.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.min.vec) |\n| Mingrelian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.xmf.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.xmf.vec) | Mirandese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mwl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mwl.vec) | Moksha: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mdf.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mdf.vec) |\n| Moldovan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mo.vec) | Mongolian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mn.vec) | Muscogee: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mus.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.mus.vec) |\n| Nahuatl: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nah.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nah.vec) | Nauruan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.na.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.na.vec) | Navajo: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nv.vec) |\n| Ndonga: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ng.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ng.vec) | Neapolitan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nap.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nap.vec) | Nepali: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ne.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ne.vec) |\n| Newar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.new.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.new.vec) | Norfolk: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pih.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pih.vec) | Norman: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nrm.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nrm.vec) |\n| North Frisian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.frr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.frr.vec) | Northern Luri: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lrc.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.lrc.vec) | Northern Sami: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.se.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.se.vec) |\n| Northern Sotho: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nso.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nso.vec) | Norwegian (Bokmål): [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.no.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.no.vec) | Norwegian (Nynorsk): [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nn.vec) |\n| Novial: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nov.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.nov.vec) | Nuosu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ii.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ii.vec) | Occitan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.oc.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.oc.vec) |\n| Old Church Slavonic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cu.vec) | Oriya: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.or.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.or.vec) | Oromo: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.om.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.om.vec) |\n| Ossetian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.os.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.os.vec) | Palatinate German: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pfl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pfl.vec) | Pali: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pi.vec) |\n| Pangasinan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pag.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pag.vec) | Papiamentu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pap.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pap.vec) | Pashto: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ps.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ps.vec) |\n| Pennsylvania German: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pdc.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pdc.vec) | Persian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fa.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fa.vec) | Picard: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pcd.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pcd.vec) |\n| Piedmontese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pms.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pms.vec) | Polish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pl.vec) | Pontic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pnt.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pnt.vec) |\n| Portuguese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pt.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pt.vec) | Quechua: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.qu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.qu.vec) | Ripuarian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ksh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ksh.vec) |\n| Romani: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rmy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rmy.vec) | Romanian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ro.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ro.vec) | Romansh: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rm.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rm.vec) |\n| Russian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ru.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ru.vec) | Rusyn: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rue.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.rue.vec) | Sakha: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sah.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sah.vec) |\n| Samoan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sm.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sm.vec) | Samogitian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bat_smg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bat_smg.vec) | Sango: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sg.vec) |\n| Sanskrit: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sa.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sa.vec) | Sardinian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sc.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sc.vec) | Saterland Frisian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.stq.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.stq.vec) |\n| Scots: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sco.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sco.vec) | Scottish Gaelic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gd.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.gd.vec) | Serbian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sr.vec) |\n| Serbo_Croatian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sh.vec) | Sesotho: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.st.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.st.vec) | Shona: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sn.vec) |\n| Sicilian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.scn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.scn.vec) | Silesian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.szl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.szl.vec) | Simple English: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.simple.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.simple.vec) |\n| Sindhi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sd.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sd.vec) | Sinhalese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.si.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.si.vec) | Slovak: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sk.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sk.vec) |\n| Slovenian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sl.vec) | Somali: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.so.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.so.vec) | Southern Azerbaijani: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.azb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.azb.vec) |\n| Spanish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.es.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.es.vec) | Sranan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.srn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.srn.vec) | Sundanese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.su.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.su.vec) |\n| Swahili: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sw.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sw.vec) | Swati: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ss.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ss.vec) | Swedish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.sv.vec) |\n| Tagalog: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tl.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tl.vec) | Tahitian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ty.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ty.vec) | Tajik: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tg.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tg.vec) |\n| Tamil: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ta.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ta.vec) | Tarantino: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.roa_tara.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.roa_tara.vec) | Tatar: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tt.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tt.vec) |\n| Telugu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.te.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.te.vec) | Tetum: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tet.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tet.vec) | Thai: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.th.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.th.vec) |\n| Tibetan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.bo.vec) | Tigrinya: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ti.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ti.vec) | Tok Pisin: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tpi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tpi.vec) |\n| Tongan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.to.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.to.vec) | Tsonga: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ts.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ts.vec) | Tswana: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tn.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tn.vec) |\n| Tulu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tcy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tcy.vec) | Tumbuka: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tum.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tum.vec) | Turkish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tr.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tr.vec) |\n| Turkmen: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tk.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tk.vec) | Tuvan: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tyv.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tyv.vec) | Twi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tw.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.tw.vec) |\n| Udmurt: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.udm.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.udm.vec) | Ukrainian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.uk.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.uk.vec) | Upper Sorbian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hsb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.hsb.vec) |\n| Urdu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ur.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ur.vec) | Uyghur: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ug.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ug.vec) | Uzbek: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.uz.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.uz.vec) |\n| Venda: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ve.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.ve.vec) | Venetian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vec.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vec.vec) | Vepsian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vep.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vep.vec) |\n| Vietnamese: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vi.vec) | Volapük: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vo.vec) | Võro: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fiu_vro.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fiu_vro.vec) |\n| Walloon: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.wa.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.wa.vec) | Waray: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.war.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.war.vec) | Welsh: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.cy.vec) |\n| West Flemish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vls.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.vls.vec) | West Frisian: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fy.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.fy.vec) | Western Punjabi: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pnb.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.pnb.vec) |\n| Wolof: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.wo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.wo.vec) | Wu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.wuu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.wuu.vec) | Xhosa: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.xh.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.xh.vec) |\n| Yiddish: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.yi.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.yi.vec) | Yoruba: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.yo.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.yo.vec) | Zazaki: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.diq.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.diq.vec) |\n| Zeelandic: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zea.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zea.vec) | Zhuang: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.za.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.za.vec) | Zulu: [*bin+text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zu.zip), [*text*](https://dl.fbaipublicfiles.com/fasttext/vectors-wiki/wiki.zu.vec) |\n\n### Format\n\nThe word vectors come in both the binary and text default formats of fastText.\nIn the text format, each line contains a word followed by its vector. Each value is space separated.\nWords are ordered by their frequency in a descending order.\n\n### License\n\nThe word vectors are distributed under the [*Creative Commons Attribution-Share-Alike License 3.0*](https://creativecommons.org/licenses/by-sa/3.0/).\n\n### References\n\nIf you use these word vectors, please cite the following paper:\n\nP. Bojanowski\\*, E. Grave\\*, A. Joulin, T. Mikolov, [*Enriching Word Vectors with Subword Information*](https://arxiv.org/abs/1607.04606)\n\n```markup\n@article{bojanowski2017enriching,\n  title={Enriching Word Vectors with Subword Information},\n  author={Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas},\n  journal={Transactions of the Association for Computational Linguistics},\n  volume={5},\n  year={2017},\n  issn={2307-387X},\n  pages={135--146}\n}\n```\n"
  },
  {
    "path": "docs/python-module.md",
    "content": "---\nid: python-module\ntitle: Python module\n---\n\nIn this document we present how to use fastText in python.\n\n## Table of contents\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Usage overview](#usage-overview)\n   * [Word representation model](#word-representation-model)\n   * [Text classification model](#text-classification-model)\n   * [IMPORTANT: Preprocessing data / encoding conventions](#important-preprocessing-data-encoding-conventions)\n   * [More examples](#more-examples)\n* [API](#api)\n   * [`train_unsupervised` parameters](#train_unsupervised-parameters)\n   * [`train_supervised` parameters](#train_supervised-parameters)\n   * [`model` object](#model-object)\n\n\n# Requirements\n\n[fastText](https://fasttext.cc/) builds on modern Mac OS and Linux distributions.\nSince it uses C\\++11 features, it requires a compiler with good C++11 support. You will need [Python](https://www.python.org/) (version 2.7 or ≥ 3.4), [NumPy](http://www.numpy.org/) & [SciPy](https://www.scipy.org/) and [pybind11](https://github.com/pybind/pybind11).\n\n\n# Installation\n\nTo install the latest release, you can do :\n```bash\n$ pip install fasttext\n```\n\nor, to get the latest development version of fasttext, you can install from our github repository :\n```bash\n$ git clone https://github.com/facebookresearch/fastText.git\n$ cd fastText\n$ sudo pip install .\n$ # or :\n$ sudo python setup.py install\n```\n\n# Usage overview\n\n\n## Word representation model\n\nIn order to learn word vectors, as [described here](/docs/en/references.html#enriching-word-vectors-with-subword-information), we can use `fasttext.train_unsupervised` function like this:\n\n\n```py\nimport fasttext\n\n# Skipgram model :\nmodel = fasttext.train_unsupervised('data.txt', model='skipgram')\n\n# or, cbow model :\nmodel = fasttext.train_unsupervised('data.txt', model='cbow')\n\n```\n\nwhere `data.txt` is a training file containing utf-8 encoded text.\n\n\nThe returned `model` object represents your learned model, and you can use it to retrieve information.\n\n```py\nprint(model.words)   # list of words in dictionary\nprint(model['king']) # get the vector of the word 'king'\n```\n\n\n### Saving and loading a model object\n\nYou can save your trained model object by calling the function `save_model`.\n```py\nmodel.save_model(\"model_filename.bin\")\n```\n\nand retrieve it later thanks to the function `load_model` :\n```py\nmodel = fasttext.load_model(\"model_filename.bin\")\n```\n\nFor more information about word representation usage of fasttext, you can refer to our [word representations tutorial](/docs/en/unsupervised-tutorial.html).\n\n\n## Text classification model\n\nIn order to train a text classifier using the method [described here](/docs/en/references.html#bag-of-tricks-for-efficient-text-classification), we can use `fasttext.train_supervised` function like this:\n\n\n```py\nimport fasttext\n\nmodel = fasttext.train_supervised('data.train.txt')\n```\n\nwhere `data.train.txt` is a text file containing a training sentence per line along with the labels. By default, we assume that labels are words that are prefixed by the string `__label__`\n\nOnce the model is trained, we can retrieve the list of words and labels:\n\n```py\nprint(model.words)\nprint(model.labels)\n```\n\nTo evaluate our model by computing the precision at 1 (P@1) and the recall on a test set, we use the `test` function:\n\n```py\ndef print_results(N, p, r):\n    print(\"N\\t\" + str(N))\n    print(\"P@{}\\t{:.3f}\".format(1, p))\n    print(\"R@{}\\t{:.3f}\".format(1, r))\n\nprint_results(*model.test('test.txt'))\n```\n\nWe can also predict labels for a specific text :\n\n```py\nmodel.predict(\"Which baking dish is best to bake a banana bread ?\")\n```\n\nBy default, `predict` returns only one label : the one with the highest probability. You can also predict more than one label by specifying the parameter `k`:\n```py\nmodel.predict(\"Which baking dish is best to bake a banana bread ?\", k=3)\n```\n\nIf you want to predict more than one sentence you can pass an array of strings :\n\n```py\nmodel.predict([\"Which baking dish is best to bake a banana bread ?\", \"Why not put knives in the dishwasher?\"], k=3)\n```\n\n\nOf course, you can also save and load a model to/from a file as [in the word representation usage](#saving-and-loading-a-model-object).\n\nFor more information about text classification usage of fasttext, you can refer to our [text classification tutorial](/docs/en/supervised-tutorial.html).\n\n\n\n\n### Compress model files with quantization\n\nWhen you want to save a supervised model file, fastText can compress it in order to have a much smaller model file by sacrificing only a little bit performance.\n\n```py\n# with the previously trained `model` object, call :\nmodel.quantize(input='data.train.txt', retrain=True)\n\n# then display results and save the new model :\nprint_results(*model.test(valid_data))\nmodel.save_model(\"model_filename.ftz\")\n```\n\n`model_filename.ftz` will have a much smaller size than `model_filename.bin`.\n\nFor further reading on quantization, you can refer to [this paragraph from our blog post](/blog/2017/10/02/blog-post.html#model-compression).\n\n\n## IMPORTANT: Preprocessing data / encoding conventions\n\nIn general it is important to properly preprocess your data. In particular our example scripts in the [root folder](https://github.com/facebookresearch/fastText) do this.\n\nfastText assumes UTF-8 encoded text. All text must be [unicode for Python2](https://docs.python.org/2/library/functions.html#unicode) and [str for Python3](https://docs.python.org/3.5/library/stdtypes.html#textseq). The passed text will be [encoded as UTF-8 by pybind11](https://pybind11.readthedocs.io/en/master/advanced/cast/strings.html?highlight=utf-8#strings-bytes-and-unicode-conversions) before passed to the fastText C++ library. This means it is important to use UTF-8 encoded text when building a model. On Unix-like systems you can convert text using [iconv](https://en.wikipedia.org/wiki/Iconv).\n\nfastText will tokenize (split text into pieces) based on the following ASCII characters (bytes). In particular, it is not aware of UTF-8 whitespace. We advice the user to convert UTF-8 whitespace / word boundaries into one of the following symbols as appropiate.\n\n* space\n* tab\n* vertical tab\n* carriage return\n* formfeed\n* the null character\n\nThe newline character is used to delimit lines of text. In particular, the EOS token is appended to a line of text if a newline character is encountered. The only exception is if the number of tokens exceeds the MAX\\_LINE\\_SIZE constant as defined in the [Dictionary header](https://github.com/facebookresearch/fastText/blob/master/src/dictionary.h). This means if you have text that is not separate by newlines, such as the [fil9 dataset](http://mattmahoney.net/dc/textdata), it will be broken into chunks with MAX\\_LINE\\_SIZE of tokens and the EOS token is not appended.\n\nThe length of a token is the number of UTF-8 characters by considering the [leading two bits of a byte](https://en.wikipedia.org/wiki/UTF-8#Description) to identify [subsequent bytes of a multi-byte sequence](https://github.com/facebookresearch/fastText/blob/master/src/dictionary.cc). Knowing this is especially important when choosing the minimum and maximum length of subwords. Further, the EOS token (as specified in the [Dictionary header](https://github.com/facebookresearch/fastText/blob/master/src/dictionary.h)) is considered a character and will not be broken into subwords.\n\n## More examples\n\nIn order to have a better knowledge of fastText models, please consider the main [README](https://github.com/facebookresearch/fastText/blob/master/README.md) and in particular [the tutorials on our website](https://fasttext.cc/docs/en/supervised-tutorial.html).\n\nYou can find further python examples in [the doc folder](https://github.com/facebookresearch/fastText/tree/master/python/doc/examples).\n\nAs with any package you can get help on any Python function using the help function.\n\nFor example\n\n```\n+>>> import fasttext\n+>>> help(fasttext.FastText)\n\nHelp on module fasttext.FastText in fasttext:\n\nNAME\n    fasttext.FastText\n\nDESCRIPTION\n    # Copyright (c) 2017-present, Facebook, Inc.\n    # All rights reserved.\n    #\n    # This source code is licensed under the MIT license found in the\n    # LICENSE file in the root directory of this source tree.\n\nFUNCTIONS\n    load_model(path)\n        Load a model given a filepath and return a model object.\n\n    tokenize(text)\n        Given a string of text, tokenize it and return a list of tokens\n[...]\n```\n\n\n# API\n\n\n## `train_unsupervised` parameters\n\n```python\n    input             # training file path (required)\n    model             # unsupervised fasttext model {cbow, skipgram} [skipgram]\n    lr                # learning rate [0.05]\n    dim               # size of word vectors [100]\n    ws                # size of the context window [5]\n    epoch             # number of epochs [5]\n    minCount          # minimal number of word occurences [5]\n    minn              # min length of char ngram [3]\n    maxn              # max length of char ngram [6]\n    neg               # number of negatives sampled [5]\n    wordNgrams        # max length of word ngram [1]\n    loss              # loss function {ns, hs, softmax, ova} [ns]\n    bucket            # number of buckets [2000000]\n    thread            # number of threads [number of cpus]\n    lrUpdateRate      # change the rate of updates for the learning rate [100]\n    t                 # sampling threshold [0.0001]\n    verbose           # verbose [2]\n```\n\n## `train_supervised` parameters\n\n```python\n    input             # training file path (required)\n    lr                # learning rate [0.1]\n    dim               # size of word vectors [100]\n    ws                # size of the context window [5]\n    epoch             # number of epochs [5]\n    minCount          # minimal number of word occurences [1]\n    minCountLabel     # minimal number of label occurences [1]\n    minn              # min length of char ngram [0]\n    maxn              # max length of char ngram [0]\n    neg               # number of negatives sampled [5]\n    wordNgrams        # max length of word ngram [1]\n    loss              # loss function {ns, hs, softmax, ova} [softmax]\n    bucket            # number of buckets [2000000]\n    thread            # number of threads [number of cpus]\n    lrUpdateRate      # change the rate of updates for the learning rate [100]\n    t                 # sampling threshold [0.0001]\n    label             # label prefix ['__label__']\n    verbose           # verbose [2]\n    pretrainedVectors # pretrained word vectors (.vec file) for supervised learning []\n```\n\n## `model` object\n\n`train_supervised`, `train_unsupervised` and `load_model` functions return an instance of `_FastText` class, that we generaly name `model` object.\n\nThis object exposes those training arguments as properties : `lr`, `dim`, `ws`, `epoch`, `minCount`, `minCountLabel`, `minn`, `maxn`, `neg`, `wordNgrams`, `loss`, `bucket`, `thread`, `lrUpdateRate`, `t`, `label`, `verbose`, `pretrainedVectors`. So `model.wordNgrams` will give you the max length of word ngram used for training this model.\n\nIn addition, the object exposes several functions :\n\n```python\n    get_dimension           # Get the dimension (size) of a lookup vector (hidden layer).\n                            # This is equivalent to `dim` property.\n    get_input_vector        # Given an index, get the corresponding vector of the Input Matrix.\n    get_input_matrix        # Get a copy of the full input matrix of a Model.\n    get_labels              # Get the entire list of labels of the dictionary\n                            # This is equivalent to `labels` property.\n    get_line                # Split a line of text into words and labels.\n    get_output_matrix       # Get a copy of the full output matrix of a Model.\n    get_sentence_vector     # Given a string, get a single vector represenation. This function\n                            # assumes to be given a single line of text. We split words on\n                            # whitespace (space, newline, tab, vertical tab) and the control\n                            # characters carriage return, formfeed and the null character.\n    get_subword_id          # Given a subword, return the index (within input matrix) it hashes to.\n    get_subwords            # Given a word, get the subwords and their indicies.\n    get_word_id             # Given a word, get the word id within the dictionary.\n    get_word_vector         # Get the vector representation of word.\n    get_words               # Get the entire list of words of the dictionary\n                            # This is equivalent to `words` property.\n    is_quantized            # whether the model has been quantized\n    predict                 # Given a string, get a list of labels and a list of corresponding probabilities.\n    quantize                # Quantize the model reducing the size of the model and it's memory footprint.\n    save_model              # Save the model to the given path\n    test                    # Evaluate supervised model using file given by path\n    test_label              # Return the precision and recall score for each label.    \n```\n\nThe properties `words`, `labels` return the words and labels from the dictionary :\n```py\nmodel.words         # equivalent to model.get_words()\nmodel.labels        # equivalent to model.get_labels()\n```\n\nThe object overrides `__getitem__` and `__contains__` functions in order to return the representation of a word and to check if a word is in the vocabulary.\n\n```py\nmodel['king']       # equivalent to model.get_word_vector('king')\n'king' in model     # equivalent to `'king' in model.get_words()`\n```\n"
  },
  {
    "path": "docs/references.md",
    "content": "---\nid: references\ntitle: References\n---\n\nPlease cite [1](#enriching-word-vectors-with-subword-information) if using this code for learning word representations or [2](#bag-of-tricks-for-efficient-text-classification) if using for text classification.\n\n[1] P. Bojanowski\\*, E. Grave\\*, A. Joulin, T. Mikolov, [*Enriching Word Vectors with Subword Information*](https://arxiv.org/abs/1607.04606)\n\n```markup\n@article{bojanowski2016enriching,\n  title={Enriching Word Vectors with Subword Information},\n  author={Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1607.04606},\n  year={2016}\n}\n```\n\n[2] A. Joulin, E. Grave, P. Bojanowski, T. Mikolov, [*Bag of Tricks for Efficient Text Classification*](https://arxiv.org/abs/1607.01759)\n\n```markup\n@article{joulin2016bag,\n  title={Bag of Tricks for Efficient Text Classification},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1607.01759},\n  year={2016}\n}\n```\n\n[3] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, [*FastText.zip: Compressing text classification models*](https://arxiv.org/abs/1612.03651)\n\n```markup\n@article{joulin2016fasttext,\n  title={FastText.zip: Compressing text classification models},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{\\'e}gou, H{\\'e}rve and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1612.03651},\n  year={2016}\n}\n```\n\n(\\* These authors contributed equally.)\n"
  },
  {
    "path": "docs/supervised-models.md",
    "content": "---\nid: supervised-models\ntitle: Supervised models\n---\n\nThis page gathers several pre-trained supervised models on several datasets.\n\n### Description\n\nThe regular models are trained using the procedure described in [1]. They can be reproduced using the classification-results.sh script within our github repository. The quantized models are build by using the respective supervised settings and adding the following flags to the quantize subcommand.\n\n```bash\n-qnorm -retrain -cutoff 100000\n```\n\n### Table of models\n\nEach entry describes the test accuracy and size of the model. You can click on a table cell to download the corresponding model.\n\n| dataset   | ag news               | amazon review full    | amazon review polarity | dbpedia                |\n|-----------|-----------------------|-----------------------|------------------------|------------------------|\n| regular   | [0.924 / 387MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/ag_news.bin) | [0.603 / 462MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/amazon_review_full.bin) | [0.946 / 471MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/amazon_review_polarity.bin) | [0.986 / 427MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/dbpedia.bin) |\n| compressed | [0.92 / 1.6MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/ag_news.ftz)    | [0.599 / 1.6MB]( https://dl.fbaipublicfiles.com/fasttext/supervised-models/amazon_review_full.ftz)   | [0.93 / 1.6MB]( https://dl.fbaipublicfiles.com/fasttext/supervised-models/amazon_review_polarity.ftz)  | [0.984 / 1.7MB]( https://dl.fbaipublicfiles.com/fasttext/supervised-models/dbpedia.ftz) |\n\n| dataset   | sogou news           | yahoo answers          | yelp review polarity | yelp review full       |\n|-----------|----------------------|------------------------|----------------------|------------------------|\n| regular   | [0.969 / 402MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/sogou_news.bin) | [0.724 / 494MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/yahoo_answers.bin)| [0.957 / 409MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/yelp_review_polarity.bin)| [0.639 / 412MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/yelp_review_full.bin)|\n| compressed | [0.968 / 1.4MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/sogou_news.ftz)   | [0.717 / 1.6MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/yahoo_answers.ftz)       | [0.957 / 1.5MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/yelp_review_polarity.ftz) | [0.636 / 1.5MB](https://dl.fbaipublicfiles.com/fasttext/supervised-models/yelp_review_full.ftz)  |\n\n### References\n\nIf you use these models, please cite the following paper:\n\n[1] A. Joulin, E. Grave, P. Bojanowski, T. Mikolov, [*Bag of Tricks for Efficient Text Classification*](https://arxiv.org/abs/1607.01759)\n\n```markup\n@article{joulin2016bag,\n  title={Bag of Tricks for Efficient Text Classification},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1607.01759},\n  year={2016}\n}\n```\n\n[2] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, [*FastText.zip: Compressing text classification models*](https://arxiv.org/abs/1612.03651)\n\n```markup\n@article{joulin2016fasttext,\n  title={FastText.zip: Compressing text classification models},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{\\'e}gou, H{\\'e}rve and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1612.03651},\n  year={2016}\n}\n```\n"
  },
  {
    "path": "docs/supervised-tutorial.md",
    "content": "---\nid: supervised-tutorial\ntitle: Text classification\n---\n\nText classification is a core problem to many applications, like spam detection, sentiment analysis or smart replies. In this tutorial, we describe how to build a text classifier with the fastText tool.\n\n## What is text classification?\n\nThe goal of text classification is to assign documents (such as emails,  posts, text messages, product reviews, etc...) to one or multiple categories. Such categories can be review scores, spam v.s. non-spam, or the language in which the document was typed. Nowadays, the dominant approach to build such classifiers is  machine learning, that is  learning classification rules from examples. In order to build such classifiers, we need labeled data, which consists of documents and their corresponding categories (or tags, or labels).\n\nAs an example, we build a classifier which automatically classifies stackexchange questions about cooking into one of  several possible tags, such as `pot`, `bowl` or `baking`.\n\n##  Installing fastText\n\nThe first step of this tutorial is to install and build fastText. It only requires a c++ compiler with good support of c++11.\n\nLet us start by downloading the [most recent release](https://github.com/facebookresearch/fastText/releases):\n\n```bash\n$ wget https://github.com/facebookresearch/fastText/archive/v0.9.2.zip\n$ unzip v0.9.2.zip\n```\n\nMove to the fastText directory and build it:\n\n```bash\n$ cd fastText-0.9.2\n# for command line tool :\n$ make\n# for python bindings :\n$ pip install .\n```\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n<br />\nRunning the binary without any argument will print the high level documentation, showing the different use cases supported by fastText:\n\n```bash\n>> ./fasttext\nusage: fasttext <command> <args>\n\nThe commands supported by fasttext are:\n\n  supervised              train a supervised classifier\n  quantize                quantize a model to reduce the memory usage\n  test                    evaluate a supervised classifier\n  predict                 predict most likely labels\n  predict-prob            predict most likely labels with probabilities\n  skipgram                train a skipgram model\n  cbow                    train a cbow model\n  print-word-vectors      print word vectors given a trained model\n  print-sentence-vectors  print sentence vectors given a trained model\n  nn                      query for nearest neighbors\n  analogies               query for analogies\n\n```\n\nIn this tutorial, we mainly use the `supervised`, `test` and `predict` subcommands, which corresponds to learning (and using) text classifier. For an introduction to the other functionalities of fastText, please see the [tutorial about learning word vectors](https://fasttext.cc/docs/en/unsupervised-tutorial.html).\n\n<!--Python-->\n<br />\nCalling the help function will show high level documentation of the library:\n```py\n>>> import fasttext\n>>> help(fasttext.FastText)\nHelp on module fasttext.FastText in fasttext:\n\nNAME\n    fasttext.FastText\n\nDESCRIPTION\n    # Copyright (c) 2017-present, Facebook, Inc.\n    # All rights reserved.\n    #\n    # This source code is licensed under the MIT license found in the\n    # LICENSE file in the root directory of this source tree.\n\nFUNCTIONS\n    load_model(path)\n        Load a model given a filepath and return a model object.\n\n    read_args(arg_list, arg_dict, arg_names, default_values)\n\n    tokenize(text)\n        Given a string of text, tokenize it and return a list of tokens\n\n    train_supervised(*kargs, **kwargs)\n        Train a supervised model and return a model object.\n\n        input must be a filepath. The input text does not need to be tokenized\n        as per the tokenize function, but it must be preprocessed and encoded\n        as UTF-8. You might want to consult standard preprocessing scripts such\n        as tokenizer.perl mentioned here: http://www.statmt.org/wmt07/baseline.html\n\n        The input file must must contain at least one label per line. For an\n        example consult the example datasets which are part of the fastText\n        repository such as the dataset pulled by classification-example.sh.\n\n    train_unsupervised(*kargs, **kwargs)\n        Train an unsupervised model and return a model object.\n\n        input must be a filepath. The input text does not need to be tokenized\n        as per the tokenize function, but it must be preprocessed and encoded\n        as UTF-8. You might want to consult standard preprocessing scripts such\n        as tokenizer.perl mentioned here: http://www.statmt.org/wmt07/baseline.html\n\n        The input field must not contain any labels or use the specified label prefix\n        unless it is ok for those words to be ignored. For an example consult the\n        dataset pulled by the example script word-vector-example.sh, which is\n        part of the fastText repository.\n```\n\nIn this tutorial, we mainly use the `train_supervised`, which returns a model object, and call `test` and `predict` on this object. That corresponds to learning (and using) text classifier. For an introduction to the other functionalities of fastText, please see the [tutorial about learning word vectors](https://fasttext.cc/docs/en/unsupervised-tutorial.html).\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n## Getting and preparing the data\n\nAs mentioned in the introduction, we need labeled data to train our supervised classifier. In this tutorial, we are interested in building a classifier to automatically recognize the topic of a stackexchange question about cooking. Let's download examples of questions from [the cooking section of Stackexchange](http://cooking.stackexchange.com/), and their associated tags:\n\n```bash\n>> wget https://dl.fbaipublicfiles.com/fasttext/data/cooking.stackexchange.tar.gz && tar xvzf cooking.stackexchange.tar.gz\n>> head cooking.stackexchange.txt\n```\n\nEach line of the text file contains a list of labels, followed by the corresponding document. All the labels start by the `__label__` prefix, which is how fastText recognize what is a label or what is a word. The model is then trained to predict the labels given the word in the document.\n\nBefore training our first classifier, we need to split the data into train and validation. We will use the validation set to evaluate how good the learned classifier is on new data.\n\n```bash\n>> wc cooking.stackexchange.txt\n   15404  169582 1401900 cooking.stackexchange.txt\n```\n\nOur full dataset contains 15404 examples. Let's split it into a training set of 12404 examples and a validation set of 3000 examples:\n\n```bash\n>> head -n 12404 cooking.stackexchange.txt > cooking.train\n>> tail -n 3000 cooking.stackexchange.txt > cooking.valid\n```\n\n## Our first classifier\n\nWe are now ready to train our first classifier:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking\nRead 0M words\nNumber of words:  14598\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 75109  lr: 0.000000  loss: 5.708354  eta: 0h0m\n```\n\nThe `-input` command line option indicates the file containing the training examples, while the `-output` option indicates where to save the model. At the end of training, a file `model_cooking.bin`, containing the trained classifier, is created in the current directory.\n\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input=\"cooking.train\")\nRead 0M words\nNumber of words:  14598\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 75109  lr: 0.000000  loss: 5.708354  eta: 0h0m\n```\nThe `input` argument indicates the file containing the training examples. We can now use the `model` variable to access information on the trained model.\n\nWe can also call `save_model` to save it as a file and load it later with `load_model` function.\n```py\n>>> model.save_model(\"model_cooking.bin\")\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nNow, we can test our classifier, by :\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext predict model_cooking.bin -\n```\n\nand then typing a sentence.  Let's first try the sentence:\n\n*Which baking dish is best to bake a banana bread ?*\n\nThe predicted tag is `baking`  which fits well to this question. Let us now try a second example:\n\n*Why not put knives in the dishwasher?*\n\n<!--Python-->\n```py\n>>> model.predict(\"Which baking dish is best to bake a banana bread ?\")\n((u'__label__baking',), array([0.15613931]))\n```\nThe predicted tag is `baking`  which fits well to this question. Let us now try a second example:\n\n```py\n>>> model.predict(\"Why not put knives in the dishwasher?\")\n((u'__label__food-safety',), array([0.08686075]))\n```\n\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nThe label predicted by the model is `food-safety`, which is not relevant. Somehow, the model seems to fail on simple examples.\n\nTo get a better sense of its quality, let's test it on the validation data by running:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext test model_cooking.bin cooking.valid\nN  3000\nP@1  0.124\nR@1  0.0541\nNumber of examples: 3000\n```\nThe output of fastText are the precision at one (`P@1`) and the recall at one (`R@1`).\n\n<!--Python-->\n```py\n>>> model.test(\"cooking.valid\")\n(3000L, 0.124, 0.0541)\n```\nThe output are the number of samples (here `3000`), the precision at one (`0.124`) and the recall at one (`0.0541`).\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nWe can also compute the precision at five and recall at five with:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext test model_cooking.bin cooking.valid 5\nN  3000\nP@5  0.0668\nR@5  0.146\nNumber of examples: 3000\n```\n<!--Python-->\n```py\n>>> model.test(\"cooking.valid\", k=5)\n(3000L, 0.0668, 0.146)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n## Advanced readers: precision and recall\n\nThe precision is the number of correct labels among the labels predicted by fastText. The recall is the number of labels that successfully were predicted, among all the real labels. Let's take an example to make this more clear:\n\n*Why not put knives in the dishwasher?*\n\nOn Stack Exchange, this sentence is labeled with three tags: `equipment`, `cleaning` and `knives`. The top five labels predicted by the model can be obtained with:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext predict model_cooking.bin - 5\n```\n<!--Python-->\n```py\n>>> model.predict(\"Why not put knives in the dishwasher?\", k=5)\n((u'__label__food-safety', u'__label__baking', u'__label__equipment', u'__label__substitutions', u'__label__bread'), array([0.0857 , 0.0657, 0.0454, 0.0333, 0.0333]))\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nare `food-safety`, `baking`, `equipment`, `substitutions` and `bread`.\n\nThus, one out of five labels predicted by the model is correct, giving a precision of 0.20. Out of the three real labels, only one is predicted by the model, giving a recall of 0.33.\n\nFor more details, see [the related Wikipedia page](https://en.wikipedia.org/wiki/Precision_and_recall).\n\n## Making the model better\n\nThe model obtained by running fastText with the default arguments is pretty bad at classifying new questions. Let's try to improve the performance, by changing the default parameters.\n\n### preprocessing the data\n\nLooking at the data, we observe that some words contain uppercase letter or punctuation. One of the first step to improve the performance of our model is to apply some simple pre-processing. A crude normalization can be obtained using command line tools such as `sed` and `tr`:\n\n```bash\n>> cat cooking.stackexchange.txt | sed -e \"s/\\([.\\!?,'/()]\\)/ \\1 /g\" | tr \"[:upper:]\" \"[:lower:]\" > cooking.preprocessed.txt\n>> head -n 12404 cooking.preprocessed.txt > cooking.train\n>> tail -n 3000 cooking.preprocessed.txt > cooking.valid\n```\n\nLet's train a new model on the pre-processed data:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 82041  lr: 0.000000  loss: 5.671649  eta: 0h0m\n\n>> ./fasttext test model_cooking.bin cooking.valid\nN  3000\nP@1  0.164\nR@1  0.0717\nNumber of examples: 3000\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input=\"cooking.train\")\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 82041  lr: 0.000000  loss: 5.671649  eta: 0h0m\n\n>>> model.test(\"cooking.valid\")\n(3000L, 0.164, 0.0717)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nWe observe that thanks to the pre-processing, the vocabulary is smaller (from 14k words to 9k). The precision is also starting to go up by 4%!\n\n### more epochs and larger learning rate\n\nBy default, fastText sees each training example only five times during training, which is pretty small, given that our training set only have 12k training examples. The number of times each examples is seen (also known as the number of epochs), can be increased using the `-epoch` option:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking -epoch 25\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 77633  lr: 0.000000  loss: 7.147976  eta: 0h0m\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input=\"cooking.train\", epoch=25)\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 77633  lr: 0.000000  loss: 7.147976  eta: 0h0m\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nLet's test the new model:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext test model_cooking.bin cooking.valid\nN  3000\nP@1  0.501\nR@1  0.218\nNumber of examples: 3000\n```\n<!--Python-->\n```py\n>>> model.test(\"cooking.valid\")\n(3000L, 0.501, 0.218)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nThis is much better! Another way to change the learning speed of our model is to increase (or decrease) the learning rate of the algorithm. This corresponds to how much the model changes after processing each example. A learning rate of 0 would mean that the model does not change at all, and thus, does not learn anything. Good values of the learning rate are in the range `0.1 - 1.0`.\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking -lr 1.0\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 81469  lr: 0.000000  loss: 6.405640  eta: 0h0m\n\n>> ./fasttext test model_cooking.bin cooking.valid\nN  3000\nP@1  0.563\nR@1  0.245\nNumber of examples: 3000\n```\n<!--Python-->\n```py\n>>> model = fasttext.train_supervised(input=\"cooking.train\", lr=1.0)\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 81469  lr: 0.000000  loss: 6.405640  eta: 0h0m\n\n>>> model.test(\"cooking.valid\")\n(3000L, 0.563, 0.245)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nEven better! Let's try both together:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking -lr 1.0 -epoch 25\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 76394  lr: 0.000000  loss: 4.350277  eta: 0h0m\n\n>> ./fasttext test model_cooking.bin cooking.valid\nN  3000\nP@1  0.585\nR@1  0.255\nNumber of examples: 3000\n```\n<!--Python-->\n```py\n>>> model = fasttext.train_supervised(input=\"cooking.train\", lr=1.0, epoch=25)\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 76394  lr: 0.000000  loss: 4.350277  eta: 0h0m\n\n>>> model.test(\"cooking.valid\")\n(3000L, 0.585, 0.255)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nLet us now add a few more features to improve even further our performance!\n\n### word n-grams\n\nFinally, we can improve the performance of a model by using word bigrams, instead of just unigrams. This is especially important for classification problems where word order is important, such as sentiment analysis.\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking -lr 1.0 -epoch 25 -wordNgrams 2\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 75366  lr: 0.000000  loss: 3.226064  eta: 0h0m\n\n>> ./fasttext test model_cooking.bin cooking.valid\nN  3000\nP@1  0.599\nR@1  0.261\nNumber of examples: 3000\n```\n<!--Python-->\n```py\n>>> model = fasttext.train_supervised(input=\"cooking.train\", lr=1.0, epoch=25, wordNgrams=2)\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 75366  lr: 0.000000  loss: 3.226064  eta: 0h0m\n\n>>> model.test(\"cooking.valid\")\n(3000L, 0.599, 0.261)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nWith a few steps, we were able to go from a precision at one of 12.4% to 59.9%. Important steps included:\n\n* preprocessing the data ;\n* changing the number of epochs (using the option `-epoch`, standard range `[5 - 50]`) ;\n* changing the learning rate (using the option `-lr`, standard range `[0.1 - 1.0]`) ;\n* using word n-grams (using the option `-wordNgrams`, standard range `[1 - 5]`).\n\n## Advanced readers: What is a Bigram?\n\nA 'unigram' refers to a single undividing unit, or token,  usually used as an input to a model. For example a unigram can be a word or a letter depending on the model. In fastText, we work at the word level and thus unigrams are words.\n\nSimilarly we denote by 'bigram' the concatenation of  2 consecutive tokens or words. Similarly we often talk about n-gram to refer to the concatenation any n consecutive tokens.\n\nFor example, in the sentence, 'Last donut of the night', the unigrams are  'last', 'donut', 'of', 'the' and 'night'. The bigrams are: 'Last donut', 'donut of', 'of the' and 'the night'.\n\nBigrams are particularly interesting because, for most sentences, you can reconstruct the order of the words just by looking at a bag of n-grams.\n\nLet us illustrate this by a simple exercise, given the following bigrams, try to reconstruct the original sentence: 'all out',  'I am', 'of bubblegum', 'out of' and 'am all'.\nIt is common to refer to a word as a unigram.\n\n## Scaling things up\n\nSince we are training our model on a few thousands of examples, the training only takes a few seconds. But training models on larger datasets, with more labels can start to be too slow. A potential solution to make the training faster is to use the [hierarchical softmax](#advanced-readers-hierarchical-softmax), instead of the regular softmax. This can be done with the option `-loss hs`:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking -lr 1.0 -epoch 25 -wordNgrams 2 -bucket 200000 -dim 50 -loss hs\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 2199406  lr: 0.000000  loss: 1.718807  eta: 0h0m\n```\n<!--Python-->\n```py\n>>> model = fasttext.train_supervised(input=\"cooking.train\", lr=1.0, epoch=25, wordNgrams=2, bucket=200000, dim=50, loss='hs')\nRead 0M words\nNumber of words:  9012\nNumber of labels: 734\nProgress: 100.0%  words/sec/thread: 2199406  lr: 0.000000  loss: 1.718807  eta: 0h0m\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nTraining should now take less than a second.\n\n\n## Advanced readers: hierarchical softmax\n\nThe hierarchical softmax is a loss function that approximates the softmax with a much faster computation.\n\nThe idea is to build a binary tree whose leaves correspond to the labels. Each intermediate node has a binary decision activation (e.g. sigmoid) that is trained, and predicts if we should go to the left or to the right. The probability of the output unit is then given by the product of the probabilities of intermediate nodes along the path from the root to the output unit leave.\n\nFor a detailed explanation, you can have a look on [this video](https://www.youtube.com/watch?v=B95LTf2rVWM).\n\nIn fastText, we use a Huffman tree, so that the lookup time is faster for more frequent outputs and thus the average lookup time for the output is optimal.\n\n## Multi-label classification\n\nWhen we want to assign a document to multiple labels, we can still use the softmax loss and play with the parameters for prediction, namely the number of labels to predict and the threshold for the predicted probability. However playing with these arguments can be tricky and unintuitive since the probabilities must sum to 1.\n\nA convenient way to handle multiple labels is to use independent binary classifiers for each label. This can be done with `-loss one-vs-all` or `-loss ova`.\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext supervised -input cooking.train -output model_cooking -lr 0.5 -epoch 25 -wordNgrams 2 -bucket 200000 -dim 50 -loss one-vs-all\nRead 0M words\nNumber of words:  14543\nNumber of labels: 735\nProgress: 100.0% words/sec/thread:   72104 lr:  0.000000 loss:  4.340807 ETA:   0h 0m\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_supervised(input=\"cooking.train\", lr=0.5, epoch=25, wordNgrams=2, bucket=200000, dim=50, loss='ova')\nRead 0M words\nNumber of words:  14543\nNumber of labels: 735\nProgress: 100.0% words/sec/thread:   72104 lr:  0.000000 loss:  4.340807 ETA:   0h 0m\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nIt is a good idea to decrease the learning rate compared to other loss functions.\n\nNow let's have a look on our predictions, we want as many prediction as possible (argument `-1`) and we want only labels with probability higher or equal to `0.5` :\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n>> ./fasttext predict-prob model_cooking.bin - -1 0.5\n```\nand then type the sentence:\n\n*Which baking dish is best to bake a banana bread ?*\n\nwe get:\n```\n__label__baking 1.00000 __label__bananas 0.939923 __label__bread 0.592677\n```\n<!--Python-->\n```py\n>>> model.predict(\"Which baking dish is best to bake a banana bread ?\", k=-1, threshold=0.5)\n((u''__label__baking, u'__label__bananas', u'__label__bread'), array([1.00000, 0.939923, 0.592677]))\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n<br />\nWe can also evaluate our results with the `test` command :\n```bash\n>> ./fasttext test model_cooking.bin cooking.valid -1 0.5\nN 3000\nP@-1  0.702\nR@-1  0.2\nNumber of examples: 3000\n```\nand play with the threshold to obtain desired precision/recall metrics :\n\n```bash\n>> ./fasttext test model_cooking.bin cooking.valid -1 0.1\nN 3000\nP@-1  0.591\nR@-1  0.272\nNumber of examples: 3000\n```\n<!--Python-->\n<br />\nWe can also evaluate our results with the `test` function:\n```py\n>>> model.test(\"cooking.valid\", k=-1)\n(3000L, 0.702, 0.2)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n## Conclusion\n\nIn this tutorial, we gave a brief overview of how to use fastText to train powerful text classifiers. We had a light overview of some of the most important options to tune.\n"
  },
  {
    "path": "docs/support.md",
    "content": "---\nid: support\ntitle: Get started\n---\n\n## What is fastText?\n\nfastText is a library for efficient learning of word representations and sentence classification.\n\n## Requirements\n\nfastText builds on modern Mac OS and Linux distributions.\nSince it uses C++11 features, it requires a compiler with good C++11 support.\nThese include :\n\n* (gcc-4.6.3 or newer) or (clang-3.3 or newer)\n\nCompilation is carried out using a Makefile, so you will need to have a working **make**.\nFor the word-similarity evaluation script you will need:\n\n* python 2.6 or newer\n* numpy & scipy\n\n## Building fastText as a command line tool\n\nIn order to build `fastText`, use the following:\n\n```bash\n$ git clone https://github.com/facebookresearch/fastText.git\n$ cd fastText\n$ make\n```\n\nThis will produce object files for all the classes as well as the main binary `fasttext`.\nIf you do not plan on using the default system-wide compiler, update the two macros defined at the beginning of the Makefile (CC and INCLUDES).\n\n\n## Building `fasttext` python module\n\nIn order to build `fasttext` module for python, use the following:\n\n```bash\n$ git clone https://github.com/facebookresearch/fastText.git\n$ cd fastText\n$ sudo pip install .\n$ # or :\n$ sudo python setup.py install\n```\n\nThen verify the installation went well :\n```bash\n$ python\nPython 2.7.15 |(default, May  1 2018, 18:37:05)\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import fasttext\n>>>\n```\nIf you don't see any error message, the installation was successful.\n"
  },
  {
    "path": "docs/unsupervised-tutorials.md",
    "content": "---\nid: unsupervised-tutorial\ntitle: Word representations\n---\nA popular idea in modern machine learning is to represent words by vectors. These vectors capture hidden information about a language, like word analogies or semantic. It is also used to improve performance of text classifiers.\n\nIn this tutorial, we show how to build these word vectors with the fastText tool. To download and install fastText, follow the first steps of [the tutorial on text classification](https://fasttext.cc/docs/en/supervised-tutorial.html).\n\n## Getting the data\n\nIn order to compute word vectors, you need a large text corpus. Depending on the corpus, the word vectors will capture different information. In this tutorial, we focus on Wikipedia's articles but other sources could be considered, like  news or Webcrawl (more examples [here](http://statmt.org/)). To download a raw dump of Wikipedia, run the following command:\n\n```bash\nwget https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2\n```\n\nDownloading  the Wikipedia corpus takes some time. Instead, lets restrict our study to the  first 1 billion bytes of English Wikipedia. They can be found on Matt Mahoney's [website](http://mattmahoney.net/):\n\n```bash\n$ mkdir data\n$ wget -c http://mattmahoney.net/dc/enwik9.zip -P data\n$ unzip data/enwik9.zip -d data\n```\n\nA raw Wikipedia dump contains a lot of HTML / XML data. We pre-process it with the wikifil.pl script bundled with fastText (this script was originally developed by Matt Mahoney, and can be found on his [website](http://mattmahoney.net/)).\n\n```bash\n$ perl wikifil.pl data/enwik9 > data/fil9\n```\n\nWe can check the file by running the following command:\n\n```bash\n$ head -c 80 data/fil9\nanarchism originated as a term of abuse first used against early working class\n```\n\nThe text is nicely pre-processed and can be used to learn our word vectors.\n\n## Training word vectors\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\nLearning  word vectors on this data can now be achieved with a single command:\n\n```bash\n$ mkdir result\n$ ./fasttext skipgram -input data/fil9 -output result/fil9\n```\n\nTo decompose this command line: ./fastext calls the binary fastText executable (see how to install fastText [here](https://fasttext.cc/docs/en/support.html)) with the 'skipgram' model  (it can also be 'cbow'). We then specify the requires options '-input' for the location of the data and '-output' for the location where the word representations will be saved.\n\nWhile fastText is running,  the progress and estimated time to completion is shown on your screen.  Once the program finishes, there should be two files in the result directory:\n\n```bash\n$ ls -l result\n-rw-r-r-- 1 bojanowski 1876110778 978480850 Dec 20 11:01 fil9.bin\n-rw-r-r-- 1 bojanowski 1876110778 190004182 Dec 20 11:01 fil9.vec\n```\n\nThe `fil9.bin` file is a binary file that stores the whole fastText model and can be subsequently loaded. The `fil9.vec` file is a text file that contains the word vectors, one per line for each word in the vocabulary:\n\n```bash\n$ head -n 4 result/fil9.vec\n218316 100\nthe -0.10363 -0.063669 0.032436 -0.040798 0.53749 0.00097867 0.10083 0.24829 ...\nof -0.0083724 0.0059414 -0.046618 -0.072735 0.83007 0.038895 -0.13634 0.60063 ...\none 0.32731 0.044409 -0.46484 0.14716 0.7431 0.24684 -0.11301 0.51721 0.73262 ...\n```\n\nThe first line is a header containing the number of words and the dimensionality of the vectors. The subsequent lines are the word vectors for all words in the vocabulary, sorted by decreasing frequency.\n<!--Python-->\nLearning  word vectors on this data can now be achieved with a single command:\n```py\n>>> import fasttext\n>>> model = fasttext.train_unsupervised('data/fil9')\n```\nWhile fastText is running,  the progress and estimated time to completion is shown on your screen. Once the training finishes, `model` variable contains information on the trained model, and can be used for querying:\n\n```py\n>>> model.words\n[u'the', u'of', u'one', u'zero', u'and', u'in', u'two', u'a', u'nine', u'to', u'is', ...\n```\nIt returns all words in the vocabulary, sorted by decreasing frequency. We can get the word vector by:\n```py\n>>> model.get_word_vector(\"the\")\narray([-0.03087516,  0.09221972,  0.17660329,  0.17308897,  0.12863874,\n        0.13912526, -0.09851588,  0.00739991,  0.37038437, -0.00845221,\n        ...\n       -0.21184735, -0.05048715, -0.34571868,  0.23765688,  0.23726143],\n      dtype=float32)\n```\n\nWe can save this model on disk as a binary file:\n```py\n>>> model.save_model(\"result/fil9.bin\")\n```\nand reload it later instead of training again:\n```py\n$ python\n>>> import fasttext\n>>> model = fasttext.load_model(\"result/fil9.bin\")\n```\n\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n## Advanced readers: skipgram versus cbow\n\nfastText provides two models for computing word representations: skipgram and cbow ('**c**ontinuous-**b**ag-**o**f-**w**ords').\n\nThe skipgram model learns to predict a target word thanks to a nearby word. On the other hand, the cbow model predicts the target word according to its context. The  context is represented as a bag of the  words contained in a fixed size window around the target word.\n\nLet us illustrate this difference with an example:  given the sentence *'Poets have been mysteriously silent on the subject of cheese'* and the target word '*silent*', a skipgram model tries to predict the target using a random close-by word, like '*subject' *or* '*mysteriously*'**. *The cbow model takes all the words in a surrounding window, like {*been, *mysteriously*, on, the*}, and uses the sum of their vectors to predict the target. The figure below summarizes this difference with another example.\n\n![cbow vs skipgram](https://fasttext.cc/img/cbo_vs_skipgram.png)\nTo train a cbow model with fastText, you run the following command:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n./fasttext cbow -input data/fil9 -output result/fil9\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_unsupervised('data/fil9', \"cbow\")\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nIn practice, we observe that skipgram models works better with subword information than cbow.\n\n## Advanced readers: playing with the parameters\n\nSo far, we run fastText with the default parameters, but depending on the data, these parameters may not be optimal. Let us give an introduction to some of the key parameters for word vectors.\n\nThe most important parameters of the model are its dimension and the range of size for the subwords. The dimension (*dim*) controls the size of the vectors, the larger they are the more information they can capture but requires more data to be learned. But, if they are too large, they are harder and slower to train. By default, we use 100 dimensions, but any value in the 100-300 range is as popular. The subwords are all the substrings contained in a word between the minimum size (*minn*) and the maximal size (*maxn*). By default, we take all the subword between 3 and 6 characters, but other range could be more appropriate to different languages:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext skipgram -input data/fil9 -output result/fil9 -minn 2 -maxn 5 -dim 300\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_unsupervised('data/fil9', minn=2, maxn=5, dim=300)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nDepending on the quantity of data you have, you may want to change the parameters of the training.  The *epoch* parameter controls how many times the model will loop over your data. By default, we loop over the dataset 5 times.  If you dataset is extremely massive, you may want to loop over it less often. Another important parameter is the learning rate -*lr*. The higher the learning rate is, the faster the model converge to a solution but at the risk of overfitting to the dataset. The default value is 0.05 which is a good compromise. If you want to play with it we suggest to stay in the range of [0.01, 1]:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext skipgram -input data/fil9 -output result/fil9 -epoch 1 -lr 0.5\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_unsupervised('data/fil9', epoch=1, lr=0.5)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nFinally , fastText is multi-threaded and uses 12 threads by default. If you have less CPU cores (say 4), you can easily set the number of threads using the *thread* flag:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext skipgram -input data/fil9 -output result/fil9 -thread 4\n```\n<!--Python-->\n```py\n>>> import fasttext\n>>> model = fasttext.train_unsupervised('data/fil9', thread=4)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n## Printing word vectors\n\nSearching and printing word vectors directly from  the `fil9.vec`  file  is cumbersome. Fortunately, there is a `print-word-vectors` functionality in fastText.\n\nFor example, we can print the word vectors of words *asparagus,* *pidgey* and *yellow* with the following command:\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ echo \"asparagus pidgey yellow\" | ./fasttext print-word-vectors result/fil9.bin\nasparagus 0.46826 -0.20187 -0.29122 -0.17918 0.31289 -0.31679 0.17828 -0.04418 ...\npidgey -0.16065 -0.45867 0.10565 0.036952 -0.11482 0.030053 0.12115 0.39725 ...\nyellow -0.39965 -0.41068 0.067086 -0.034611 0.15246 -0.12208 -0.040719 -0.30155 ...\n```\n<!--Python-->\n```py\n>>> [model.get_word_vector(x) for x in [\"asparagus\", \"pidgey\", \"yellow\"]]\n[array([-0.25751096, -0.18716481,  0.06921121,  0.06455903,  0.29168844,\n        0.15426874, -0.33448914, -0.427215  ,  0.7813013 , -0.10600132,\n        ...\n        0.37090245,  0.39266172, -0.4555302 ,  0.27452755,  0.00467369],\n      dtype=float32),\n array([-0.20613593, -0.25325796, -0.2422259 , -0.21067499,  0.32879013,\n        0.7269511 ,  0.3782259 ,  0.11274897,  0.246764  , -0.6423613 ,\n        ...\n        0.46302193,  0.2530962 , -0.35795924,  0.5755718 ,  0.09843876],\n      dtype=float32),\n array([-0.304823  ,  0.2543754 , -0.2198013 , -0.25421786,  0.11219151,\n        0.38286993, -0.22636674, -0.54023844,  0.41095474, -0.3505803 ,\n        ...\n        0.54788435,  0.36740595, -0.5678512 ,  0.07523401, -0.08701935],\n      dtype=float32)]\n\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nA nice feature is that you can also query for words that did not appear in your data! Indeed words are represented by the sum of its substrings. As long as the unknown word is made of known substrings, there is a representation of it!\n\nAs an example let's try with a misspelled word:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ echo \"enviroment\" | ./fasttext print-word-vectors result/fil9.bin\n```\n<!--Python-->\n```py\n>>> model.get_word_vector(\"enviroment\")\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nYou still get a word vector for it! But how good it is? Let's find out in the next sections!\n\n\n## Nearest neighbor queries\n\nA simple way to check the quality of a word vector is to look at its nearest neighbors. This give an intuition of the type of semantic information the vectors are able to capture.\n\nThis can be achieved with the nearest neighbor (*nn*) functionality. For example, we can query the 10 nearest neighbors of a word by running the following command:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext nn result/fil9.bin\nPre-computing word vectors... done.\n```\n\nThen we are prompted to type our query word, let us try *asparagus* :\n\n```bash\nQuery word? asparagus\nbeetroot 0.812384\ntomato 0.806688\nhorseradish 0.805928\nspinach 0.801483\nlicorice 0.791697\nlingonberries 0.781507\nasparagales 0.780756\nlingonberry 0.778534\ncelery 0.774529\nbeets 0.773984\n```\n<!--Python-->\n```py\n>>> model.get_nearest_neighbors('asparagus')\n[(0.812384, u'beetroot'), (0.806688, u'tomato'), (0.805928, u'horseradish'), (0.801483, u'spinach'), (0.791697, u'licorice'), (0.781507, u'lingonberries'), (0.780756, u'asparagales'), (0.778534, u'lingonberry'), (0.774529, u'celery'), (0.773984, u'beets')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nNice! It seems that vegetable vectors are similar. Note that the nearest neighbor is the word *asparagus* itself, this means that this word appeared in the dataset. What about pokemons?\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\nQuery word? pidgey\npidgeot 0.891801\npidgeotto 0.885109\npidge 0.884739\npidgeon 0.787351\npok 0.781068\npikachu 0.758688\ncharizard 0.749403\nsquirtle 0.742582\nbeedrill 0.741579\ncharmeleon 0.733625\n```\n<!--Python-->\n```py\n>>> model.get_nearest_neighbors('pidgey')\n[(0.891801, u'pidgeot'), (0.885109, u'pidgeotto'), (0.884739, u'pidge'), (0.787351, u'pidgeon'), (0.781068, u'pok'), (0.758688, u'pikachu'), (0.749403, u'charizard'), (0.742582, u'squirtle'), (0.741579, u'beedrill'), (0.733625, u'charmeleon')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nDifferent evolution of the same Pokemon have close-by vectors! But what about our misspelled word, is its vector close to anything reasonable? Let s find out:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\nQuery word? enviroment\nenviromental 0.907951\nenviron 0.87146\nenviro 0.855381\nenvirons 0.803349\nenvironnement 0.772682\nenviromission 0.761168\nrealclimate 0.716746\nenvironment 0.702706\nacclimatation 0.697196\necotourism 0.697081\n```\n<!--Python-->\n```py\n>>> model.get_nearest_neighbors('enviroment')\n[(0.907951, u'enviromental'), (0.87146, u'environ'), (0.855381, u'enviro'), (0.803349, u'environs'), (0.772682, u'environnement'), (0.761168, u'enviromission'), (0.716746, u'realclimate'), (0.702706, u'environment'), (0.697196, u'acclimatation'), (0.697081, u'ecotourism')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nThanks to the information contained within the word, the vector of our misspelled word matches to reasonable words! It is not perfect but the main information has been captured.\n\n## Advanced reader: measure of similarity\n\nIn order to find nearest neighbors, we need to compute a similarity score between words. Our words are represented by continuous word vectors and we can thus apply simple similarities to them. In particular we use the cosine of the angles between two vectors. This similarity is computed for all words in the vocabulary, and the 10 most similar words are shown.  Of course, if the word appears in the vocabulary, it will appear on top, with a similarity of 1.\n\n## Word analogies\n\nIn a similar spirit, one can play around with word analogies. For example, we can see if our model can guess what is to France, and what Berlin is to Germany.\n\n\n\n\n\nThis can be done with the *analogies* functionality. It takes a word triplet (like *Germany Berlin France*) and outputs  the analogy:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext analogies result/fil9.bin\nPre-computing word vectors... done.\nQuery triplet (A - B + C)? berlin germany france\nparis 0.896462\nbourges 0.768954\nlouveciennes 0.765569\ntoulouse 0.761916\nvalenciennes 0.760251\nmontpellier 0.752747\nstrasbourg 0.744487\nmeudon 0.74143\nbordeaux 0.740635\npigneaux 0.736122\n```\n<!--Python-->\n```py\n>>> model.get_analogies(\"berlin\", \"germany\", \"france\")\n[(0.896462, u'paris'), (0.768954, u'bourges'), (0.765569, u'louveciennes'), (0.761916, u'toulouse'), (0.760251, u'valenciennes'), (0.752747, u'montpellier'), (0.744487, u'strasbourg'), (0.74143, u'meudon'), (0.740635, u'bordeaux'), (0.736122, u'pigneaux')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nThe answer provided by our model is *Paris*, which is correct. Let's have a look at a less obvious example:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\nQuery triplet (A - B + C)? psx sony nintendo\ngamecube 0.803352\nnintendogs 0.792646\nplaystation 0.77344\nsega 0.772165\ngameboy 0.767959\narcade 0.754774\nplaystationjapan 0.753473\ngba 0.752909\ndreamcast 0.74907\nfamicom 0.745298\n```\n<!--Python-->\n```py\n>>> model.get_analogies(\"psx\", \"sony\", \"nintendo\")\n[(0.803352, u'gamecube'), (0.792646, u'nintendogs'), (0.77344, u'playstation'), (0.772165, u'sega'), (0.767959, u'gameboy'), (0.754774, u'arcade'), (0.753473, u'playstationjapan'), (0.752909, u'gba'), (0.74907, u'dreamcast'), (0.745298, u'famicom')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nOur model considers that the *nintendo* analogy of a *psx* is the *gamecube*, which seems  reasonable. Of course the quality of the analogies depend on the dataset used to train the model and one can only hope to cover fields only in the dataset.\n\n\n## Importance of character n-grams\n\nUsing subword-level information is particularly interesting to build vectors for unknown words. For example, the word *gearshift* does not exist on Wikipedia but we can still query its closest existing words:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\nQuery word? gearshift\ngearing 0.790762\nflywheels 0.779804\nflywheel 0.777859\ngears 0.776133\ndriveshafts 0.756345\ndriveshaft 0.755679\ndaisywheel 0.749998\nwheelsets 0.748578\nepicycles 0.744268\ngearboxes 0.73986\n```\n<!--Python-->\n```py\n>>> model.get_nearest_neighbors('gearshift')\n[(0.790762, u'gearing'), (0.779804, u'flywheels'), (0.777859, u'flywheel'), (0.776133, u'gears'), (0.756345, u'driveshafts'), (0.755679, u'driveshaft'), (0.749998, u'daisywheel'), (0.748578, u'wheelsets'), (0.744268, u'epicycles'), (0.73986, u'gearboxes')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\n\nMost of the retrieved words share substantial substrings but a few are actually quite different, like *cogwheel*. You can try other words like *sunbathe* or *grandnieces*.\n\nNow that we have seen the interest of subword information for unknown words, let's check how it compares to a model that does not use subword information. To train a model without subwords, just run the following command:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext skipgram -input data/fil9 -output result/fil9-none -maxn 0\n```\nThe results are saved in result/fil9-non.vec and result/fil9-non.bin.\n<!--Python-->\n```py\n>>> model_without_subwords = fasttext.train_unsupervised('data/fil9', maxn=0)\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\n\nTo illustrate the difference, let us take an uncommon word in Wikipedia, like *accomodation* which is a misspelling of *accommodation**.* Here is the nearest neighbors obtained without subwords:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\n$ ./fasttext nn result/fil9-none.bin\nQuery word? accomodation\nsunnhordland 0.775057\naccomodations 0.769206\nadministrational 0.753011\nlaponian 0.752274\nammenities 0.750805\ndachas 0.75026\nvuosaari 0.74172\nhostelling 0.739995\ngreenbelts 0.733975\nasserbo 0.732465\n```\n<!--Python-->\n```py\n>>> model_without_subwords.get_nearest_neighbors('accomodation')\n[(0.775057, u'sunnhordland'), (0.769206, u'accomodations'), (0.753011, u'administrational'), (0.752274, u'laponian'), (0.750805, u'ammenities'), (0.75026, u'dachas'), (0.74172, u'vuosaari'), (0.739995, u'hostelling'), (0.733975, u'greenbelts'), (0.732465, u'asserbo')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nThe result does not make much sense, most of these words are unrelated. On the other hand, using subword information gives the following list of nearest neighbors:\n\n<!--DOCUSAURUS_CODE_TABS-->\n<!--Command line-->\n```bash\nQuery word? accomodation\naccomodations 0.96342\naccommodation 0.942124\naccommodations 0.915427\naccommodative 0.847751\naccommodating 0.794353\naccomodated 0.740381\namenities 0.729746\ncatering 0.725975\naccomodate 0.703177\nhospitality 0.701426\n```\n<!--Python-->\n```py\n>>> model.get_nearest_neighbors('accomodation')\n[(0.96342, u'accomodations'), (0.942124, u'accommodation'), (0.915427, u'accommodations'), (0.847751, u'accommodative'), (0.794353, u'accommodating'), (0.740381, u'accomodated'), (0.729746, u'amenities'), (0.725975, u'catering'), (0.703177, u'accomodate'), (0.701426, u'hospitality')]\n```\n<!--END_DOCUSAURUS_CODE_TABS-->\n\nThe nearest neighbors capture different variation around the word *accommodation*. We also get semantically related words such as *amenities* or *catering*.\n\n## Conclusion\n\nIn this tutorial, we show how to obtain word vectors from Wikipedia. This can be done for any language and we provide [pre-trained models](https://fasttext.cc/docs/en/pretrained-vectors.html) with the default setting for 294 of them.\n"
  },
  {
    "path": "docs/webassembly-module.md",
    "content": "---\nid: webassembly-module\ntitle: WebAssembly module\n---\n\nIn this document we present how to use fastText in javascript with WebAssembly.\n\n## Table of contents\n\n* [Requirements](#requirements)\n* [Building WebAssembly binaries](#building-webassembly-binaries)\n* [Build a webpage that uses fastText](#build-a-webpage-that-uses-fasttext)\n* [Load a model](#load-a-model)\n* [Train a model](#train-a-model)\n   * [Disclaimer](#disclaimer)\n   * [Text classification](#text-classification)\n   * [Word representations](#word-representations)\n* [Quantized models](#quantized-models)\n* [API](#api)\n   * [`model` object](#model-object)\n   * [`loadModel`](#loadmodel)\n   * [`trainSupervised`](#trainsupervised)\n   * [`trainUnsupervised`](#trainunsupervised)\n\n# Requirements\n\nFor building [fastText](https://fasttext.cc/) with WebAssembly bindings, we will need:\n - a compiler with good C++11 support, since it uses C\\++11 features,\n - [emscripten](https://emscripten.org/),\n - a [browser that supports WebAssembly](https://caniuse.com/#feat=wasm).\n\n\n# Building WebAssembly binaries\n\nFirst, download and install emscripten sdk as [described here](https://emscripten.org/docs/getting_started/downloads.html#installation-instructions).\n\n\nWe need to make sure we activated the PATH for emscripten:\n```bash\n$ source /path/to/emsdk/emsdk_env.sh\n```\n\nClone [fastText repository](https://github.com/facebookresearch/fastText/):\n\n```bash\n$ git clone git@github.com:facebookresearch/fastText.git\n```\n\nBuild WebAssembly binaries:\n```bash\n$ cd fastText\n$ make wasm\n```\n\nThis will create `fasttext_wasm.wasm` and `fasttext_wasm.js` in the `webassembly` folder.\n\n- `fasttext_wasm.wasm` is the binary file that will be loaded in the webassembly's virtual machine.\n- `fasttext_wasm.js` is a javascript file built by emscripten, that helps to load `fasttext_wasm.wasm` file in the virtual machine and provides some helper functions.\n- `fasttext.js` is the wrapper that provides a nice API for fastText. \n\nAs the user of the library, we will interact with classes and methods defined in `fasttext.js`. We won't deal with `fasttext_wasm.*` files, but they are necessary to run fastText in the javascript's VM.\n\n# Build a webpage that uses fastText\n\nIn this section we are going to build a minimal HTML page that loads fastText WebAssembly module.\n\nAt the root of the repository, create a folder `webassembly-test`, and copy the files mentioned in the previous section:\n\n```bash\n$ mkdir webassembly-test\n$ cp webassembly/fasttext_wasm.wasm webassembly-test/\n$ cp webassembly/fasttext_wasm.js webassembly-test/\n$ cp webassembly/fasttext.js webassembly-test/\n```\n\nInside that folder, create `test.html` file containing:\n```html\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n</head>\n<body>\n    <script type=\"module\">\n        import {FastText, addOnPostRun} from \"./fasttext.js\";\n\n        addOnPostRun(() => {\n            let ft = new FastText();\n            console.log(ft);\n        });\n\n    </script>\n</body>\n</html>\n```\n\nIt is important to add the attribute `type=\"module\"` to the script tag, because we use ES6 style imports. `addOnPostRun` is a function that helps to provide a handler that is called when fastText is successfully loaded in the virtual machine. Once we are called inside that function, we can create an instance of `FastText`, that we will use to access the api.\n\n\nLet's test it.\n\nOpening `test.html` directly in the browser won't work since we are dynamically loading webassembly resources. The `test.html` file must be served from a webserver. The easiest way to achieve this is to use python's simple http server module:\n\n```bash\n$ cd webassembly-test\n$ python -m SimpleHTTPServer\n```\n\nThen browse `http://localhost:8000/test.html` in your browser. If everything worked as expected, you should see `FastText {f: FastText}` in the javascript console.\n\n\n# Load a model\n\nIn order to load a fastText model that was already trained, we can use `loadModel` function. In the example below we use `lid.176.ftz` that you can download from [here](/docs/en/language-identification.html).\n\nPlace the model file you want to load inside the same directory than the HTML file, and inside the script part:\n```javascript\nimport {FastText, addOnPostRun} from \"./fasttext.js\";\n\nconst printVector = function(predictions) {\n    for (let i=0; i<predictions.size(); i++){\n        let prediction = predictions.get(i);\n        console.log(predictions.get(i));\n    }\n}\n\naddOnPostRun(() => {\n    let ft = new FastText();\n\n    const url = \"lid.176.ftz\";\n    ft.loadModel(url).then(model => {\n        \n        console.log(\"Model loaded.\")\n\n        let text = \"Bonjour à tous. Ceci est du français\";\n        console.log(text);\n        printVector(model.predict(text, 5, 0.0));\n\n        text = \"Hello, world. This is english\";\n        console.log(text);\n        printVector(model.predict(text, 5, 0.0));\n\n        text = \"Merhaba dünya. Bu da türkçe\"\n        console.log(text);\n        printVector(model.predict(text, 5, 0.0));\n    });\n});\n```\n\n`loadModel` function returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that resolves to a `model` object. We can then use [`model` object](#model-object) to call various methods, such as `predict`.\n\nWe define `printVector` function that loops through a representation of `std::vector` in javascript, and displays the items. Here, we use it to display prediction results.\n\nYou can also refer to `webassembly/doc/examples/predict.html` in the source code.\n\n# Calling other methods\n\nOnce the model is loaded, you can call any method like `model.getDimension()` or `model.getSubwords(word)`. You can refer to [this](#api) section of the document for a complete API. You can also have a look to `webassembly/doc/examples/misc.html` file in the source code for further examples.\n\n\n# Train a model\n\n### Disclaimer\n\nIt is also possible to train a model inside the browser with fastText's WebAssembly API. The training can be slow because at the time of writing, it is not possible to use multithreading in WebAssembly (along with dynamic memory growth). So most of the time, we would train a model with the python or command line tool, eventually quantize it, and load it in the WebAssembly module. However, training a model inside the browser can be useful for creating animations or educational tools.\n \n### Text classification\n\nPlace the `cooking.train` file (as described [here](/docs/en/supervised-tutorial.html)) inside the same directory:\n\n```javascript\nimport {FastText, addOnPostRun} from \"./fasttext.js\";\n\nconst trainCallback = (progress, loss, wst, lr, eta) => {\n    console.log([progress, loss, wst, lr, eta]);\n};\n\naddOnPostRun(() => {\n    let ft = new FastText();\n\n    ft.trainSupervised(\"cooking.train\", {\n        'lr':1.0,\n        'epoch':10,\n        'loss':'hs',\n        'wordNgrams':2,\n        'dim':50,\n        'bucket':200000\n    }, trainCallback).then(model => {\n        console.log('Trained.');\n    });\n});\n```\n\n`trainCallback` function is called by the module to show progress, average training cost, number of words per second (per thread, but there is only one thread), learning rate, estimated remaining time.\n\n\n### Word representations\n\nPlace the `fil9` file (as described [here](/docs/en/unsupervised-tutorial.html)) inside the same directory:\n\n```javascript\nimport {FastText, addOnPostRun} from \"./fasttext.js\";\n\nconst trainCallback = (progress, loss, wst, lr, eta) => {\n    console.log([progress, loss, wst, lr, eta]);\n};\n\naddOnPostRun(() => {\n    let ft = new FastText();\n\n    ft.trainUnsupervised(\"fil9\", 'skipgram', {\n        'lr':0.1,\n        'epoch':1,\n        'loss':'ns',\n        'wordNgrams':2,\n        'dim':50,\n        'bucket':200000\n    }, trainCallback).then(model => {\n        console.log('Trained.');\n    });\n});\n```\n\n# Quantized models\n\nQuantization is a technique that reduces the size of your models. You can quantize your model as [described here](/docs/en/faqs.html#how-can-i-reduce-the-size-of-my-fasttext-models).\n\nYou can load a quantized model in fastText's WebAssembly module, as we did in [\"Load a model\" section](#load-a-model).\n\n\nIn the context of web, it is particularly useful to have smaller models since they can be downloaded much faster. You can use our autotune feature as [described here](/docs/en/autotune.html#constrain-model-size) in order to find the best trade-off between accuracy and model size that fits your needs.\n\n\n# API\n\n## `model` object\n\n`trainSupervised`, `trainUnsupervised` and `loadModel` functions return a Promise that resolves to an instance of `FastTextModel` class, that we generaly name `model` object.\n\nThis object exposes several functions:\n\n```javascript\nisQuant                  // true if the model is quantized.\ngetDimension             // the dimension (size) of a lookup vector (hidden layer).\ngetWordVector(word)      // the vector representation of `word`.\ngetSentenceVector(text)  // the vector representation of `text`.\ngetNearestNeighbors(word, k=10)      // nearest `k` neighbors of `word`.\ngetAnalogies(wordA, wordB, wordC, k) // nearest `k` neighbors of the operation `wordA - wordB + wordC`.\ngetWordId(word)          // get the word id within the dictionary.\ngetSubwordId(subword)    // the index (within input matrix) a subword hashes to.\ngetSubwords(word)        // the subwords and their indicies.\ngetInputVector(ind)      // given an index, get the corresponding vector of the Input Matrix.\npredict(text, k = 1, threshold = 0.0) // Given a string, get a list of labels and a list of corresponding\n                                      // probabilities. k controls the number of returned labels.\ngetInputMatrix()         // get a reference to the full input matrix of a (non-quantized) Model.\ngetOutputMatrix()        // get a reference to the full output matrix of a (non-quantized) Model.\ngetWords()               // get the entire list of words of the dictionary including the frequency\n                         // of the individual words. This does not include any subwords. For that\n                         // please consult the function get_subwords.\ngetLabels()              // get the entire list of labels of the dictionary including the frequency\ngetLine(text)            // split a line of text into words and labels.\nsaveModel()              // saves the model file in WebAssembly's in-memory FS and returns a blob\ntest(url, k, threshold)  // downloads the test file from the specified url, evaluates the supervised model with it.\n```\n\nYou can also have a look to `webassembly/doc/examples/misc.html` file in the source code for further examples.\n\n## `loadModel`\n\nYou can load a model as follows:\n\n`ft.loadModel(url);`\n\n`loadModel` returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that resolves to a [`model` object](#model-object).\n\n\n## `trainSupervised` \n\nYou can train a text classification model with fastText's WebAssembly API as follows:\n\n`ft.trainSupervised(trainFile, args, trainCallback);`\n\n- `trainFile`:  the url of the input file\n- `args`: a dictionary with following keys:\n```javascript\n    lr                # learning rate [0.1]\n    dim               # size of word vectors [100]\n    ws                # size of the context window [5]\n    epoch             # number of epochs [5]\n    minCount          # minimal number of word occurences [1]\n    minCountLabel     # minimal number of label occurences [1]\n    minn              # min length of char ngram [0]\n    maxn              # max length of char ngram [0]\n    neg               # number of negatives sampled [5]\n    wordNgrams        # max length of word ngram [1]\n    loss              # loss function {ns, hs, softmax, ova} [softmax]\n    bucket            # number of buckets [2000000]\n    thread            # number of threads [number of cpus]\n    lrUpdateRate      # change the rate of updates for the learning rate [100]\n    t                 # sampling threshold [0.0001]\n    label             # label prefix ['__label__']\n```\n- `trainCallback` is the name of the function that will be called during training to provide various information. Set this argument to `null` if you don't need a callback, or provide a function that has the following signature: `function myCallback(progress, loss, wst, lr, eta){ ... }`\n\n`trainSupervised` returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that resolves to a [`model` object](#model-object).\n\n## `trainUnsupervised` \n\nYou can train a word representation model with fastText's WebAssembly API as follows:\n\n`ft.trainUnsupervised(trainFile, modelname, args, trainCallback);`\n\n- `trainFile`:  the url of the input file\n- `modelName`: must be `\"cbow\"` or `\"skipgram\"`\n- `args`: a dictionary with following keys:\n```javascript\n    lr                # learning rate [0.05]\n    dim               # size of word vectors [100]\n    ws                # size of the context window [5]\n    epoch             # number of epochs [5]\n    minCount          # minimal number of word occurences [5]\n    minn              # min length of char ngram [3]\n    maxn              # max length of char ngram [6]\n    neg               # number of negatives sampled [5]\n    wordNgrams        # max length of word ngram [1]\n    loss              # loss function {ns, hs, softmax, ova} [ns]\n    bucket            # number of buckets [2000000]\n    thread            # number of threads [number of cpus]\n    lrUpdateRate      # change the rate of updates for the learning rate [100]\n    t                 # sampling threshold [0.0001]\n```\n- `trainCallback` is the name of the function that will be called during training to provide various information. Set this argument to `null` if you don't need a callback, or provide a function that has the following signature: `function myCallback(progress, loss, wst, lr, eta){ ... }`\n\n`trainUnsupervised` returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that resolves to a [`model` object](#model-object).\n\n\n\n"
  },
  {
    "path": "download_model.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nimport argparse\n\nimport fasttext.util\n\n\nargs = None\n\n\ndef command_download(lang_id, if_exists):\n    \"\"\"\n        Download pre-trained common-crawl vectors from fastText's website\n        https://fasttext.cc/docs/en/crawl-vectors.html\n    \"\"\"\n    fasttext.util.download_model(lang_id, if_exists)\n\n\ndef main():\n    global args\n\n    parser = argparse.ArgumentParser(\n        description='fastText helper tool to reduce model dimensions.')\n    parser.add_argument(\"language\", type=str, default=\"en\",\n                        help=\"language identifier of the pre-trained vectors. For example `en` or `fr`.\")\n    parser.add_argument(\"--overwrite\", action=\"store_true\",\n                        help=\"overwrite if file exists.\")\n\n    args = parser.parse_args()\n\n    command_download(args.language, if_exists=(\n        'overwrite' if args.overwrite else 'strict'))\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "eval.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\nimport numpy as np\nfrom scipy import stats\nimport os\nimport math\nimport argparse\n\n\ndef compat_splitting(line):\n    return line.decode('utf8').split()\n\n\ndef similarity(v1, v2):\n    n1 = np.linalg.norm(v1)\n    n2 = np.linalg.norm(v2)\n    return np.dot(v1, v2) / n1 / n2\n\n\nparser = argparse.ArgumentParser(description='Process some integers.')\nparser.add_argument(\n    '--model',\n    '-m',\n    dest='modelPath',\n    action='store',\n    required=True,\n    help='path to model'\n)\nparser.add_argument(\n    '--data',\n    '-d',\n    dest='dataPath',\n    action='store',\n    required=True,\n    help='path to data'\n)\nargs = parser.parse_args()\n\nvectors = {}\nfin = open(args.modelPath, 'rb')\nfor _, line in enumerate(fin):\n    try:\n        tab = compat_splitting(line)\n        vec = np.array(tab[1:], dtype=float)\n        word = tab[0]\n        if np.linalg.norm(vec) == 0:\n            continue\n        if not word in vectors:\n            vectors[word] = vec\n    except ValueError:\n        continue\n    except UnicodeDecodeError:\n        continue\nfin.close()\n\nmysim = []\ngold = []\ndrop = 0.0\nnwords = 0.0\n\nfin = open(args.dataPath, 'rb')\nfor line in fin:\n    tline = compat_splitting(line)\n    word1 = tline[0].lower()\n    word2 = tline[1].lower()\n    nwords = nwords + 1.0\n\n    if (word1 in vectors) and (word2 in vectors):\n        v1 = vectors[word1]\n        v2 = vectors[word2]\n        d = similarity(v1, v2)\n        mysim.append(d)\n        gold.append(float(tline[2]))\n    else:\n        drop = drop + 1.0\nfin.close()\n\ncorr = stats.spearmanr(mysim, gold)\ndataset = os.path.basename(args.dataPath)\nprint(\n    \"{0:20s}: {1:2.0f}  (OOV: {2:2.0f}%)\"\n    .format(dataset, corr[0] * 100, math.ceil(drop / nwords * 100.0))\n)\n"
  },
  {
    "path": "fasttext.pc.in",
    "content": "prefix=@CMAKE_INSTALL_PREFIX@\nexec_prefix=@CMAKE_INSTALL_FULL_LIBEXECDIR@\nlibdir=@CMAKE_INSTALL_FULL_LIBDIR@\nincludedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@\n\nName: @PROJECT_NAME@\nDescription: Efficient learning of word representations and sentence classification\nVersion: @PROJECT_VERSION@\nLibs: -L${libdir} -lfasttext\nCflags: -I${includedir}\n"
  },
  {
    "path": "get-wikimedia.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nset -e\n\nnormalize_text() {\n    sed -e \"s/’/'/g\" -e \"s/′/'/g\" -e \"s/''/ /g\" -e \"s/'/ ' /g\" -e \"s/“/\\\"/g\" -e \"s/”/\\\"/g\" \\\n        -e 's/\"/ \" /g' -e 's/\\./ \\. /g' -e 's/<br \\/>/ /g' -e 's/, / , /g' -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/\\!/ \\! /g' \\\n        -e 's/\\?/ \\? /g' -e 's/\\;/ /g' -e 's/\\:/ /g' -e 's/-/ - /g' -e 's/=/ /g' -e 's/=/ /g' -e 's/*/ /g' -e 's/|/ /g' \\\n        -e 's/«/ /g' | tr 0-9 \" \"\n}\n\nexport LANGUAGE=en_US.UTF-8\nexport LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8\n\nNOW=$(date +\"%Y%m%d\")\n\nROOT=\"data/wikimedia/${NOW}\"\nmkdir -p \"${ROOT}\"\necho \"Saving data in \"\"$ROOT\"\nread -r -p \"Choose a language (e.g. en, bh, fr, etc.): \" choice\nLANG=\"$choice\"\necho \"Chosen language: \"\"$LANG\"\nread -r -p \"Continue to download (WARNING: This might be big and can take a long time!)(y/n)? \" choice\ncase \"$choice\" in\n  y|Y ) echo \"Starting download...\";;\n  n|N ) echo \"Exiting\";exit 1;;\n  * ) echo \"Invalid answer\";exit 1;;\nesac\nwget -c \"https://dumps.wikimedia.org/\"\"$LANG\"\"wiki/latest/\"\"${LANG}\"\"wiki-latest-pages-articles.xml.bz2\" -P \"${ROOT}\"\necho \"Processing \"\"$ROOT\"/\"$LANG\"\"wiki-latest-pages-articles.xml.bz2\"\nbzip2 -c -d \"$ROOT\"/\"$LANG\"\"wiki-latest-pages-articles.xml.bz2\" | awk '{print tolower($0);}' | perl -e '\n# Program to filter Wikipedia XML dumps to \"clean\" text consisting only of lowercase\n# letters (a-z, converted from A-Z), and spaces (never consecutive)...\n# All other characters are converted to spaces.  Only text which normally appears.\n# in the web browser is displayed.  Tables are removed.  Image captions are.\n# preserved.  Links are converted to normal text.  Digits are spelled out.\n# *** Modified to not spell digits or throw away non-ASCII characters ***\n# Written by Matt Mahoney, June 10, 2006.  This program is released to the public domain.\n$/=\">\";                     # input record separator\nwhile (<>) {\n  if (/<text /) {$text=1;}  # remove all but between <text> ... </text>\n  if (/#redirect/i) {$text=0;}  # remove #REDIRECT\n  if ($text) {\n    # Remove any text not normally visible\n    if (/<\\/text>/) {$text=0;}\n    s/<.*>//;               # remove xml tags\n    s/&amp;/&/g;            # decode URL encoded chars\n    s/&lt;/</g;\n    s/&gt;/>/g;\n    s/<ref[^<]*<\\/ref>//g;  # remove references <ref...> ... </ref>\n    s/<[^>]*>//g;           # remove xhtml tags\n    s/\\[http:[^] ]*/[/g;    # remove normal url, preserve visible text\n    s/\\|thumb//ig;          # remove images links, preserve caption\n    s/\\|left//ig;\n    s/\\|right//ig;\n    s/\\|\\d+px//ig;\n    s/\\[\\[image:[^\\[\\]]*\\|//ig;\n    s/\\[\\[category:([^|\\]]*)[^]]*\\]\\]/[[$1]]/ig;  # show categories without markup\n    s/\\[\\[[a-z\\-]*:[^\\]]*\\]\\]//g;  # remove links to other languages\n    s/\\[\\[[^\\|\\]]*\\|/[[/g;  # remove wiki url, preserve visible text\n    s/{{[^}]*}}//g;         # remove {{icons}} and {tables}\n    s/{[^}]*}//g;\n    s/\\[//g;                # remove [ and ]\n    s/\\]//g;\n    s/&[^;]*;/ /g;          # remove URL encoded chars\n    $_=\" $_ \";\n    chop;\n    print $_;\n  }\n}\n' | normalize_text | awk '{if (NF>1) print;}' | tr -s \" \" | shuf > \"${ROOT}\"/wiki.\"${LANG}\".txt\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[build-system]\nrequires = [\"setuptools\", \"wheel\", \"pybind11\"]\n"
  },
  {
    "path": "python/README.md",
    "content": "# fastText [![CircleCI](https://circleci.com/gh/facebookresearch/fastText/tree/master.svg?style=svg)](https://circleci.com/gh/facebookresearch/fastText/tree/master)\n\n[fastText](https://fasttext.cc/) is a library for efficient learning of word representations and sentence classification.\n\nIn this document we present how to use fastText in python.\n\n## Table of contents\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Usage overview](#usage-overview)\n   * [Word representation model](#word-representation-model)\n   * [Text classification model](#text-classification-model)\n   * [IMPORTANT: Preprocessing data / encoding conventions](#important-preprocessing-data-encoding-conventions)\n   * [More examples](#more-examples)\n* [API](#api)\n   * [`train_unsupervised` parameters](#train_unsupervised-parameters)\n   * [`train_supervised` parameters](#train_supervised-parameters)\n   * [`model` object](#model-object)\n\n\n# Requirements\n\n[fastText](https://fasttext.cc/) builds on modern Mac OS and Linux distributions.\nSince it uses C\\++11 features, it requires a compiler with good C++11 support. You will need [Python](https://www.python.org/) (version 2.7 or ≥ 3.4), [NumPy](http://www.numpy.org/) & [SciPy](https://www.scipy.org/) and [pybind11](https://github.com/pybind/pybind11).\n\n\n# Installation\n\nTo install the latest release, you can do :\n```bash\n$ pip install fasttext\n```\n\nor, to get the latest development version of fasttext, you can install from our github repository :\n```bash\n$ git clone https://github.com/facebookresearch/fastText.git\n$ cd fastText\n$ sudo pip install .\n$ # or :\n$ sudo python setup.py install\n```\n\n# Usage overview\n\n\n## Word representation model\n\nIn order to learn word vectors, as [described here](https://fasttext.cc/docs/en/references.html#enriching-word-vectors-with-subword-information), we can use `fasttext.train_unsupervised` function like this:\n\n\n```py\nimport fasttext\n\n# Skipgram model :\nmodel = fasttext.train_unsupervised('data.txt', model='skipgram')\n\n# or, cbow model :\nmodel = fasttext.train_unsupervised('data.txt', model='cbow')\n\n```\n\nwhere `data.txt` is a training file containing utf-8 encoded text.\n\n\nThe returned `model` object represents your learned model, and you can use it to retrieve information.\n\n```py\nprint(model.words)   # list of words in dictionary\nprint(model['king']) # get the vector of the word 'king'\n```\n\n\n### Saving and loading a model object\n\nYou can save your trained model object by calling the function `save_model`.\n```py\nmodel.save_model(\"model_filename.bin\")\n```\n\nand retrieve it later thanks to the function `load_model` :\n```py\nmodel = fasttext.load_model(\"model_filename.bin\")\n```\n\nFor more information about word representation usage of fasttext, you can refer to our [word representations tutorial](https://fasttext.cc/docs/en/unsupervised-tutorial.html).\n\n\n## Text classification model\n\nIn order to train a text classifier using the method [described here](https://fasttext.cc/docs/en/references.html#bag-of-tricks-for-efficient-text-classification), we can use `fasttext.train_supervised` function like this:\n\n\n```py\nimport fasttext\n\nmodel = fasttext.train_supervised('data.train.txt')\n```\n\nwhere `data.train.txt` is a text file containing a training sentence per line along with the labels. By default, we assume that labels are words that are prefixed by the string `__label__`\n\nOnce the model is trained, we can retrieve the list of words and labels:\n\n```py\nprint(model.words)\nprint(model.labels)\n```\n\nTo evaluate our model by computing the precision at 1 (P@1) and the recall on a test set, we use the `test` function:\n\n```py\ndef print_results(N, p, r):\n    print(\"N\\t\" + str(N))\n    print(\"P@{}\\t{:.3f}\".format(1, p))\n    print(\"R@{}\\t{:.3f}\".format(1, r))\n\nprint_results(*model.test('test.txt'))\n```\n\nWe can also predict labels for a specific text :\n\n```py\nmodel.predict(\"Which baking dish is best to bake a banana bread ?\")\n```\n\nBy default, `predict` returns only one label : the one with the highest probability. You can also predict more than one label by specifying the parameter `k`:\n```py\nmodel.predict(\"Which baking dish is best to bake a banana bread ?\", k=3)\n```\n\nIf you want to predict more than one sentence you can pass an array of strings :\n\n```py\nmodel.predict([\"Which baking dish is best to bake a banana bread ?\", \"Why not put knives in the dishwasher?\"], k=3)\n```\n\n\nOf course, you can also save and load a model to/from a file as [in the word representation usage](#saving-and-loading-a-model-object).\n\nFor more information about text classification usage of fasttext, you can refer to our [text classification tutorial](https://fasttext.cc/docs/en/supervised-tutorial.html).\n\n\n\n\n### Compress model files with quantization\n\nWhen you want to save a supervised model file, fastText can compress it in order to have a much smaller model file by sacrificing only a little bit performance.\n\n```py\n# with the previously trained `model` object, call :\nmodel.quantize(input='data.train.txt', retrain=True)\n\n# then display results and save the new model :\nprint_results(*model.test(valid_data))\nmodel.save_model(\"model_filename.ftz\")\n```\n\n`model_filename.ftz` will have a much smaller size than `model_filename.bin`.\n\nFor further reading on quantization, you can refer to [this paragraph from our blog post](https://fasttext.cc/blog/2017/10/02/blog-post.html#model-compression).\n\n\n## IMPORTANT: Preprocessing data / encoding conventions\n\nIn general it is important to properly preprocess your data. In particular our example scripts in the [root folder](https://github.com/facebookresearch/fastText) do this.\n\nfastText assumes UTF-8 encoded text. All text must be [unicode for Python2](https://docs.python.org/2/library/functions.html#unicode) and [str for Python3](https://docs.python.org/3.5/library/stdtypes.html#textseq). The passed text will be [encoded as UTF-8 by pybind11](https://pybind11.readthedocs.io/en/master/advanced/cast/strings.html?highlight=utf-8#strings-bytes-and-unicode-conversions) before passed to the fastText C++ library. This means it is important to use UTF-8 encoded text when building a model. On Unix-like systems you can convert text using [iconv](https://en.wikipedia.org/wiki/Iconv).\n\nfastText will tokenize (split text into pieces) based on the following ASCII characters (bytes). In particular, it is not aware of UTF-8 whitespace. We advice the user to convert UTF-8 whitespace / word boundaries into one of the following symbols as appropiate.\n\n* space\n* tab\n* vertical tab\n* carriage return\n* formfeed\n* the null character\n\nThe newline character is used to delimit lines of text. In particular, the EOS token is appended to a line of text if a newline character is encountered. The only exception is if the number of tokens exceeds the MAX\\_LINE\\_SIZE constant as defined in the [Dictionary header](https://github.com/facebookresearch/fastText/blob/master/src/dictionary.h). This means if you have text that is not separate by newlines, such as the [fil9 dataset](http://mattmahoney.net/dc/textdata), it will be broken into chunks with MAX\\_LINE\\_SIZE of tokens and the EOS token is not appended.\n\nThe length of a token is the number of UTF-8 characters by considering the [leading two bits of a byte](https://en.wikipedia.org/wiki/UTF-8#Description) to identify [subsequent bytes of a multi-byte sequence](https://github.com/facebookresearch/fastText/blob/master/src/dictionary.cc). Knowing this is especially important when choosing the minimum and maximum length of subwords. Further, the EOS token (as specified in the [Dictionary header](https://github.com/facebookresearch/fastText/blob/master/src/dictionary.h)) is considered a character and will not be broken into subwords.\n\n## More examples\n\nIn order to have a better knowledge of fastText models, please consider the main [README](https://github.com/facebookresearch/fastText/blob/master/README.md) and in particular [the tutorials on our website](https://fasttext.cc/docs/en/supervised-tutorial.html).\n\nYou can find further python examples in [the doc folder](https://github.com/facebookresearch/fastText/tree/master/python/doc/examples).\n\nAs with any package you can get help on any Python function using the help function.\n\nFor example\n\n```\n+>>> import fasttext\n+>>> help(fasttext.FastText)\n\nHelp on module fasttext.FastText in fasttext:\n\nNAME\n    fasttext.FastText\n\nDESCRIPTION\n    # Copyright (c) 2017-present, Facebook, Inc.\n    # All rights reserved.\n    #\n    # This source code is licensed under the MIT license found in the\n    # LICENSE file in the root directory of this source tree.\n\nFUNCTIONS\n    load_model(path)\n        Load a model given a filepath and return a model object.\n\n    tokenize(text)\n        Given a string of text, tokenize it and return a list of tokens\n[...]\n```\n\n\n# API\n\n\n## `train_unsupervised` parameters\n\n```python\n    input             # training file path (required)\n    model             # unsupervised fasttext model {cbow, skipgram} [skipgram]\n    lr                # learning rate [0.05]\n    dim               # size of word vectors [100]\n    ws                # size of the context window [5]\n    epoch             # number of epochs [5]\n    minCount          # minimal number of word occurences [5]\n    minn              # min length of char ngram [3]\n    maxn              # max length of char ngram [6]\n    neg               # number of negatives sampled [5]\n    wordNgrams        # max length of word ngram [1]\n    loss              # loss function {ns, hs, softmax, ova} [ns]\n    bucket            # number of buckets [2000000]\n    thread            # number of threads [number of cpus]\n    lrUpdateRate      # change the rate of updates for the learning rate [100]\n    t                 # sampling threshold [0.0001]\n    verbose           # verbose [2]\n```\n\n## `train_supervised` parameters\n\n```python\n    input             # training file path (required)\n    lr                # learning rate [0.1]\n    dim               # size of word vectors [100]\n    ws                # size of the context window [5]\n    epoch             # number of epochs [5]\n    minCount          # minimal number of word occurences [1]\n    minCountLabel     # minimal number of label occurences [1]\n    minn              # min length of char ngram [0]\n    maxn              # max length of char ngram [0]\n    neg               # number of negatives sampled [5]\n    wordNgrams        # max length of word ngram [1]\n    loss              # loss function {ns, hs, softmax, ova} [softmax]\n    bucket            # number of buckets [2000000]\n    thread            # number of threads [number of cpus]\n    lrUpdateRate      # change the rate of updates for the learning rate [100]\n    t                 # sampling threshold [0.0001]\n    label             # label prefix ['__label__']\n    verbose           # verbose [2]\n    pretrainedVectors # pretrained word vectors (.vec file) for supervised learning []\n```\n\n## `model` object\n\n`train_supervised`, `train_unsupervised` and `load_model` functions return an instance of `_FastText` class, that we generaly name `model` object.\n\nThis object exposes those training arguments as properties : `lr`, `dim`, `ws`, `epoch`, `minCount`, `minCountLabel`, `minn`, `maxn`, `neg`, `wordNgrams`, `loss`, `bucket`, `thread`, `lrUpdateRate`, `t`, `label`, `verbose`, `pretrainedVectors`. So `model.wordNgrams` will give you the max length of word ngram used for training this model.\n\nIn addition, the object exposes several functions :\n\n```python\n    get_dimension           # Get the dimension (size) of a lookup vector (hidden layer).\n                            # This is equivalent to `dim` property.\n    get_input_vector        # Given an index, get the corresponding vector of the Input Matrix.\n    get_input_matrix        # Get a copy of the full input matrix of a Model.\n    get_labels              # Get the entire list of labels of the dictionary\n                            # This is equivalent to `labels` property.\n    get_line                # Split a line of text into words and labels.\n    get_output_matrix       # Get a copy of the full output matrix of a Model.\n    get_sentence_vector     # Given a string, get a single vector represenation. This function\n                            # assumes to be given a single line of text. We split words on\n                            # whitespace (space, newline, tab, vertical tab) and the control\n                            # characters carriage return, formfeed and the null character.\n    get_subword_id          # Given a subword, return the index (within input matrix) it hashes to.\n    get_subwords            # Given a word, get the subwords and their indicies.\n    get_word_id             # Given a word, get the word id within the dictionary.\n    get_word_vector         # Get the vector representation of word.\n    get_words               # Get the entire list of words of the dictionary\n                            # This is equivalent to `words` property.\n    is_quantized            # whether the model has been quantized\n    predict                 # Given a string, get a list of labels and a list of corresponding probabilities.\n    quantize                # Quantize the model reducing the size of the model and it's memory footprint.\n    save_model              # Save the model to the given path\n    test                    # Evaluate supervised model using file given by path\n    test_label              # Return the precision and recall score for each label.    \n```\n\nThe properties `words`, `labels` return the words and labels from the dictionary :\n```py\nmodel.words         # equivalent to model.get_words()\nmodel.labels        # equivalent to model.get_labels()\n```\n\nThe object overrides `__getitem__` and `__contains__` functions in order to return the representation of a word and to check if a word is in the vocabulary.\n\n```py\nmodel['king']       # equivalent to model.get_word_vector('king')\n'king' in model     # equivalent to `'king' in model.get_words()`\n```\n\n\nJoin the fastText community\n---------------------------\n\n- [Facebook page](https://www.facebook.com/groups/1174547215919768)\n- [Stack overflow](https://stackoverflow.com/questions/tagged/fasttext)\n- [Google group](https://groups.google.com/forum/#!forum/fasttext-library)\n- [GitHub](https://github.com/facebookresearch/fastText)\n"
  },
  {
    "path": "python/README.rst",
    "content": "fastText |CircleCI|\n===================\n\n`fastText <https://fasttext.cc/>`__ is a library for efficient learning\nof word representations and sentence classification.\n\nIn this document we present how to use fastText in python.\n\nTable of contents\n-----------------\n\n-  `Requirements <#requirements>`__\n-  `Installation <#installation>`__\n-  `Usage overview <#usage-overview>`__\n-  `Word representation model <#word-representation-model>`__\n-  `Text classification model <#text-classification-model>`__\n-  `IMPORTANT: Preprocessing data / encoding\n   conventions <#important-preprocessing-data-encoding-conventions>`__\n-  `More examples <#more-examples>`__\n-  `API <#api>`__\n-  `train_unsupervised parameters <#train_unsupervised-parameters>`__\n-  `train_supervised parameters <#train_supervised-parameters>`__\n-  `model object <#model-object>`__\n\nRequirements\n============\n\n`fastText <https://fasttext.cc/>`__ builds on modern Mac OS and Linux\ndistributions. Since it uses C++11 features, it requires a compiler with\ngood C++11 support. You will need `Python <https://www.python.org/>`__\n(version 2.7 or ≥ 3.4), `NumPy <http://www.numpy.org/>`__ &\n`SciPy <https://www.scipy.org/>`__ and\n`pybind11 <https://github.com/pybind/pybind11>`__.\n\nInstallation\n============\n\nTo install the latest release, you can do :\n\n.. code:: bash\n\n    $ pip install fasttext\n\nor, to get the latest development version of fasttext, you can install\nfrom our github repository :\n\n.. code:: bash\n\n    $ git clone https://github.com/facebookresearch/fastText.git\n    $ cd fastText\n    $ sudo pip install .\n    $ # or :\n    $ sudo python setup.py install\n\nUsage overview\n==============\n\nWord representation model\n-------------------------\n\nIn order to learn word vectors, as `described\nhere <https://fasttext.cc/docs/en/references.html#enriching-word-vectors-with-subword-information>`__,\nwe can use ``fasttext.train_unsupervised`` function like this:\n\n.. code:: py\n\n    import fasttext\n\n    # Skipgram model :\n    model = fasttext.train_unsupervised('data.txt', model='skipgram')\n\n    # or, cbow model :\n    model = fasttext.train_unsupervised('data.txt', model='cbow')\n\nwhere ``data.txt`` is a training file containing utf-8 encoded text.\n\nThe returned ``model`` object represents your learned model, and you can\nuse it to retrieve information.\n\n.. code:: py\n\n    print(model.words)   # list of words in dictionary\n    print(model['king']) # get the vector of the word 'king'\n\nSaving and loading a model object\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can save your trained model object by calling the function\n``save_model``.\n\n.. code:: py\n\n    model.save_model(\"model_filename.bin\")\n\nand retrieve it later thanks to the function ``load_model`` :\n\n.. code:: py\n\n    model = fasttext.load_model(\"model_filename.bin\")\n\nFor more information about word representation usage of fasttext, you\ncan refer to our `word representations\ntutorial <https://fasttext.cc/docs/en/unsupervised-tutorial.html>`__.\n\nText classification model\n-------------------------\n\nIn order to train a text classifier using the method `described\nhere <https://fasttext.cc/docs/en/references.html#bag-of-tricks-for-efficient-text-classification>`__,\nwe can use ``fasttext.train_supervised`` function like this:\n\n.. code:: py\n\n    import fasttext\n\n    model = fasttext.train_supervised('data.train.txt')\n\nwhere ``data.train.txt`` is a text file containing a training sentence\nper line along with the labels. By default, we assume that labels are\nwords that are prefixed by the string ``__label__``\n\nOnce the model is trained, we can retrieve the list of words and labels:\n\n.. code:: py\n\n    print(model.words)\n    print(model.labels)\n\nTo evaluate our model by computing the precision at 1 (P@1) and the\nrecall on a test set, we use the ``test`` function:\n\n.. code:: py\n\n    def print_results(N, p, r):\n        print(\"N\\t\" + str(N))\n        print(\"P@{}\\t{:.3f}\".format(1, p))\n        print(\"R@{}\\t{:.3f}\".format(1, r))\n\n    print_results(*model.test('test.txt'))\n\nWe can also predict labels for a specific text :\n\n.. code:: py\n\n    model.predict(\"Which baking dish is best to bake a banana bread ?\")\n\nBy default, ``predict`` returns only one label : the one with the\nhighest probability. You can also predict more than one label by\nspecifying the parameter ``k``:\n\n.. code:: py\n\n    model.predict(\"Which baking dish is best to bake a banana bread ?\", k=3)\n\nIf you want to predict more than one sentence you can pass an array of\nstrings :\n\n.. code:: py\n\n    model.predict([\"Which baking dish is best to bake a banana bread ?\", \"Why not put knives in the dishwasher?\"], k=3)\n\nOf course, you can also save and load a model to/from a file as `in the\nword representation usage <#saving-and-loading-a-model-object>`__.\n\nFor more information about text classification usage of fasttext, you\ncan refer to our `text classification\ntutorial <https://fasttext.cc/docs/en/supervised-tutorial.html>`__.\n\nCompress model files with quantization\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWhen you want to save a supervised model file, fastText can compress it\nin order to have a much smaller model file by sacrificing only a little\nbit performance.\n\n.. code:: py\n\n    # with the previously trained `model` object, call :\n    model.quantize(input='data.train.txt', retrain=True)\n\n    # then display results and save the new model :\n    print_results(*model.test(valid_data))\n    model.save_model(\"model_filename.ftz\")\n\n``model_filename.ftz`` will have a much smaller size than\n``model_filename.bin``.\n\nFor further reading on quantization, you can refer to `this paragraph\nfrom our blog\npost <https://fasttext.cc/blog/2017/10/02/blog-post.html#model-compression>`__.\n\nIMPORTANT: Preprocessing data / encoding conventions\n----------------------------------------------------\n\nIn general it is important to properly preprocess your data. In\nparticular our example scripts in the `root\nfolder <https://github.com/facebookresearch/fastText>`__ do this.\n\nfastText assumes UTF-8 encoded text. All text must be `unicode for\nPython2 <https://docs.python.org/2/library/functions.html#unicode>`__\nand `str for\nPython3 <https://docs.python.org/3.5/library/stdtypes.html#textseq>`__.\nThe passed text will be `encoded as UTF-8 by\npybind11 <https://pybind11.readthedocs.io/en/master/advanced/cast/strings.html?highlight=utf-8#strings-bytes-and-unicode-conversions>`__\nbefore passed to the fastText C++ library. This means it is important to\nuse UTF-8 encoded text when building a model. On Unix-like systems you\ncan convert text using `iconv <https://en.wikipedia.org/wiki/Iconv>`__.\n\nfastText will tokenize (split text into pieces) based on the following\nASCII characters (bytes). In particular, it is not aware of UTF-8\nwhitespace. We advice the user to convert UTF-8 whitespace / word\nboundaries into one of the following symbols as appropiate.\n\n-  space\n-  tab\n-  vertical tab\n-  carriage return\n-  formfeed\n-  the null character\n\nThe newline character is used to delimit lines of text. In particular,\nthe EOS token is appended to a line of text if a newline character is\nencountered. The only exception is if the number of tokens exceeds the\nMAX\\_LINE\\_SIZE constant as defined in the `Dictionary\nheader <https://github.com/facebookresearch/fastText/blob/master/src/dictionary.h>`__.\nThis means if you have text that is not separate by newlines, such as\nthe `fil9 dataset <http://mattmahoney.net/dc/textdata>`__, it will be\nbroken into chunks with MAX\\_LINE\\_SIZE of tokens and the EOS token is\nnot appended.\n\nThe length of a token is the number of UTF-8 characters by considering\nthe `leading two bits of a\nbyte <https://en.wikipedia.org/wiki/UTF-8#Description>`__ to identify\n`subsequent bytes of a multi-byte\nsequence <https://github.com/facebookresearch/fastText/blob/master/src/dictionary.cc>`__.\nKnowing this is especially important when choosing the minimum and\nmaximum length of subwords. Further, the EOS token (as specified in the\n`Dictionary\nheader <https://github.com/facebookresearch/fastText/blob/master/src/dictionary.h>`__)\nis considered a character and will not be broken into subwords.\n\nMore examples\n-------------\n\nIn order to have a better knowledge of fastText models, please consider\nthe main\n`README <https://github.com/facebookresearch/fastText/blob/master/README.md>`__\nand in particular `the tutorials on our\nwebsite <https://fasttext.cc/docs/en/supervised-tutorial.html>`__.\n\nYou can find further python examples in `the doc\nfolder <https://github.com/facebookresearch/fastText/tree/master/python/doc/examples>`__.\n\nAs with any package you can get help on any Python function using the\nhelp function.\n\nFor example\n\n::\n\n    +>>> import fasttext\n    +>>> help(fasttext.FastText)\n\n    Help on module fasttext.FastText in fasttext:\n\n    NAME\n        fasttext.FastText\n\n    DESCRIPTION\n        # Copyright (c) 2017-present, Facebook, Inc.\n        # All rights reserved.\n        #\n        # This source code is licensed under the MIT license found in the\n        # LICENSE file in the root directory of this source tree.\n\n    FUNCTIONS\n        load_model(path)\n            Load a model given a filepath and return a model object.\n\n        tokenize(text)\n            Given a string of text, tokenize it and return a list of tokens\n    [...]\n\nAPI\n===\n\n``train_unsupervised`` parameters\n---------------------------------\n\n.. code:: python\n\n        input             # training file path (required)\n        model             # unsupervised fasttext model {cbow, skipgram} [skipgram]\n        lr                # learning rate [0.05]\n        dim               # size of word vectors [100]\n        ws                # size of the context window [5]\n        epoch             # number of epochs [5]\n        minCount          # minimal number of word occurences [5]\n        minn              # min length of char ngram [3]\n        maxn              # max length of char ngram [6]\n        neg               # number of negatives sampled [5]\n        wordNgrams        # max length of word ngram [1]\n        loss              # loss function {ns, hs, softmax, ova} [ns]\n        bucket            # number of buckets [2000000]\n        thread            # number of threads [number of cpus]\n        lrUpdateRate      # change the rate of updates for the learning rate [100]\n        t                 # sampling threshold [0.0001]\n        verbose           # verbose [2]\n\n``train_supervised`` parameters\n-------------------------------\n\n.. code:: python\n\n        input             # training file path (required)\n        lr                # learning rate [0.1]\n        dim               # size of word vectors [100]\n        ws                # size of the context window [5]\n        epoch             # number of epochs [5]\n        minCount          # minimal number of word occurences [1]\n        minCountLabel     # minimal number of label occurences [1]\n        minn              # min length of char ngram [0]\n        maxn              # max length of char ngram [0]\n        neg               # number of negatives sampled [5]\n        wordNgrams        # max length of word ngram [1]\n        loss              # loss function {ns, hs, softmax, ova} [softmax]\n        bucket            # number of buckets [2000000]\n        thread            # number of threads [number of cpus]\n        lrUpdateRate      # change the rate of updates for the learning rate [100]\n        t                 # sampling threshold [0.0001]\n        label             # label prefix ['__label__']\n        verbose           # verbose [2]\n        pretrainedVectors # pretrained word vectors (.vec file) for supervised learning []\n\n``model`` object\n----------------\n\n``train_supervised``, ``train_unsupervised`` and ``load_model``\nfunctions return an instance of ``_FastText`` class, that we generaly\nname ``model`` object.\n\nThis object exposes those training arguments as properties : ``lr``,\n``dim``, ``ws``, ``epoch``, ``minCount``, ``minCountLabel``, ``minn``,\n``maxn``, ``neg``, ``wordNgrams``, ``loss``, ``bucket``, ``thread``,\n``lrUpdateRate``, ``t``, ``label``, ``verbose``, ``pretrainedVectors``.\nSo ``model.wordNgrams`` will give you the max length of word ngram used\nfor training this model.\n\nIn addition, the object exposes several functions :\n\n.. code:: python\n\n        get_dimension           # Get the dimension (size) of a lookup vector (hidden layer).\n                                # This is equivalent to `dim` property.\n        get_input_vector        # Given an index, get the corresponding vector of the Input Matrix.\n        get_input_matrix        # Get a copy of the full input matrix of a Model.\n        get_labels              # Get the entire list of labels of the dictionary\n                                # This is equivalent to `labels` property.\n        get_line                # Split a line of text into words and labels.\n        get_output_matrix       # Get a copy of the full output matrix of a Model.\n        get_sentence_vector     # Given a string, get a single vector represenation. This function\n                                # assumes to be given a single line of text. We split words on\n                                # whitespace (space, newline, tab, vertical tab) and the control\n                                # characters carriage return, formfeed and the null character.\n        get_subword_id          # Given a subword, return the index (within input matrix) it hashes to.\n        get_subwords            # Given a word, get the subwords and their indicies.\n        get_word_id             # Given a word, get the word id within the dictionary.\n        get_word_vector         # Get the vector representation of word.\n        get_words               # Get the entire list of words of the dictionary\n                                # This is equivalent to `words` property.\n        is_quantized            # whether the model has been quantized\n        predict                 # Given a string, get a list of labels and a list of corresponding probabilities.\n        quantize                # Quantize the model reducing the size of the model and it's memory footprint.\n        save_model              # Save the model to the given path\n        test                    # Evaluate supervised model using file given by path\n        test_label              # Return the precision and recall score for each label.\n\nThe properties ``words``, ``labels`` return the words and labels from\nthe dictionary :\n\n.. code:: py\n\n    model.words         # equivalent to model.get_words()\n    model.labels        # equivalent to model.get_labels()\n\nThe object overrides ``__getitem__`` and ``__contains__`` functions in\norder to return the representation of a word and to check if a word is\nin the vocabulary.\n\n.. code:: py\n\n    model['king']       # equivalent to model.get_word_vector('king')\n    'king' in model     # equivalent to `'king' in model.get_words()`\n\nJoin the fastText community\n---------------------------\n\n-  `Facebook page <https://www.facebook.com/groups/1174547215919768>`__\n-  `Stack\n   overflow <https://stackoverflow.com/questions/tagged/fasttext>`__\n-  `Google\n   group <https://groups.google.com/forum/#!forum/fasttext-library>`__\n-  `GitHub <https://github.com/facebookresearch/fastText>`__\n\n.. |CircleCI| image:: https://circleci.com/gh/facebookresearch/fastText/tree/master.svg?style=svg\n   :target: https://circleci.com/gh/facebookresearch/fastText/tree/master\n"
  },
  {
    "path": "python/benchmarks/README.rst",
    "content": "These programs allow us to compare the performance of a few key operations when consindering changes. \n\nIt is important to run these to make sure a change doesn't introduce a regression.\n"
  },
  {
    "path": "python/benchmarks/get_word_vector.py",
    "content": "# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nfrom fasttext import load_model\nfrom fasttext import tokenize\nimport sys\nimport time\nimport argparse\n\n\ndef get_word_vector(data, model):\n    t1 = time.time()\n    print(\"Reading\")\n    with open(data, \"r\") as f:\n        tokens = tokenize(f.read())\n    t2 = time.time()\n    print(\"Read TIME: \" + str(t2 - t1))\n    print(\"Read NUM : \" + str(len(tokens)))\n    f = load_model(model)\n    # This is not equivalent to piping the data into\n    # print-word-vector, because the data is tokenized\n    # first.\n    t3 = time.time()\n    i = 0\n    for t in tokens:\n        f.get_word_vector(t)\n        i += 1\n        if i % 10000 == 0:\n            sys.stderr.write(\"\\ri: \" + str(float(i / len(tokens))))\n            sys.stderr.flush()\n    t4 = time.time()\n    print(\"\\nVectoring: \" + str(t4 - t3))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(\n        description=\"Simple benchmark for get_word_vector.\"\n    )\n    parser.add_argument(\"model\", help=\"A model file to use for benchmarking.\")\n    parser.add_argument(\"data\", help=\"A data file to use for benchmarking.\")\n    args = parser.parse_args()\n    get_word_vector(args.data, args.model)\n"
  },
  {
    "path": "python/doc/examples/FastTextEmbeddingBag.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\n# NOTE: This requires PyTorch! We do not provide installation scripts to install PyTorch.\n# It is up to you to install this dependency if you want to execute this example.\n# PyTorch's website should give you clear instructions on this: http://pytorch.org/\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\nfrom torch.nn.modules.sparse import EmbeddingBag\nimport numpy as np\nimport torch\nimport random\nimport string\nimport time\nfrom fasttext import load_model\nfrom torch.autograd import Variable\n\n\nclass FastTextEmbeddingBag(EmbeddingBag):\n    def __init__(self, model_path):\n        self.model = load_model(model_path)\n        input_matrix = self.model.get_input_matrix()\n        input_matrix_shape = input_matrix.shape\n        super().__init__(input_matrix_shape[0], input_matrix_shape[1])\n        self.weight.data.copy_(torch.FloatTensor(input_matrix))\n\n    def forward(self, words):\n        word_subinds = np.empty([0], dtype=np.int64)\n        word_offsets = [0]\n        for word in words:\n            _, subinds = self.model.get_subwords(word)\n            word_subinds = np.concatenate((word_subinds, subinds))\n            word_offsets.append(word_offsets[-1] + len(subinds))\n        word_offsets = word_offsets[:-1]\n        ind = Variable(torch.LongTensor(word_subinds))\n        offsets = Variable(torch.LongTensor(word_offsets))\n        return super().forward(ind, offsets)\n\n\ndef random_word(N):\n    return ''.join(\n        random.choices(\n            string.ascii_uppercase + string.ascii_lowercase + string.digits,\n            k=N\n        )\n    )\n\n\nif __name__ == \"__main__\":\n    ft_emb = FastTextEmbeddingBag(\"fil9.bin\")\n    model = load_model(\"fil9.bin\")\n    num_lines = 200\n    total_seconds = 0.0\n    total_words = 0\n    for _ in range(num_lines):\n        words = [\n            random_word(random.randint(1, 10))\n            for _ in range(random.randint(15, 25))\n        ]\n        total_words += len(words)\n        words_average_length = sum([len(word) for word in words]) / len(words)\n        start = time.clock()\n        words_emb = ft_emb(words)\n        total_seconds += (time.clock() - start)\n        for i in range(len(words)):\n            word = words[i]\n            ft_word_emb = model.get_word_vector(word)\n            py_emb = np.array(words_emb[i].data)\n            assert (np.isclose(ft_word_emb, py_emb).all())\n    print(\n        \"Avg. {:2.5f} seconds to build embeddings for {} lines with a total of {} words.\".\n        format(total_seconds, num_lines, total_words)\n    )\n"
  },
  {
    "path": "python/doc/examples/bin_to_vec.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\nfrom __future__ import division, absolute_import, print_function\n\nfrom fasttext import load_model\nimport argparse\nimport errno\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(\n        description=(\"Print fasttext .vec file to stdout from .bin file\")\n    )\n    parser.add_argument(\n        \"model\",\n        help=\"Model to use\",\n    )\n    args = parser.parse_args()\n\n    f = load_model(args.model)\n    words = f.get_words()\n    print(str(len(words)) + \" \" + str(f.get_dimension()))\n    for w in words:\n        v = f.get_word_vector(w)\n        vstr = \"\"\n        for vi in v:\n            vstr += \" \" + str(vi)\n        try:\n            print(w + vstr)\n        except IOError as e:\n            if e.errno == errno.EPIPE:\n                pass\n"
  },
  {
    "path": "python/doc/examples/compute_accuracy.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\nfrom __future__ import division, absolute_import, print_function\n\nfrom fasttext import load_model\nfrom fasttext import util\nimport argparse\nimport numpy as np\n\n\ndef process_question(question, cossims, model, words, vectors):\n    correct = 0\n    num_qs = 0\n    num_lines = 0\n    for line in question:\n        num_lines += 1\n        qwords = line.split()\n        # We lowercase all words to correspond to the preprocessing\n        # we applied to our data.\n        qwords = [x.lower().strip() for x in qwords]\n        # If one of the words is not in the vocabulary we skip this question\n        found = True\n        for w in qwords:\n            if w not in words:\n                found = False\n                break\n        if not found:\n            continue\n        # The first three words form the query\n        # We retrieve their word vectors and normalize them\n        query = qwords[:3]\n        query = [model.get_word_vector(x) for x in query]\n        query = [x / np.linalg.norm(x) for x in query]\n        # Get the query vector. Example:\n        # Germany  - Berlin + France\n        query = query[1] - query[0] + query[2]\n        # We don't need to rank all the words, only until we found\n        # the first word not equal to our set of query words.\n        ban_set = list(map(lambda x: words.index(x), qwords[:3]))\n        if words[util.find_nearest_neighbor(\n            query, vectors, ban_set, cossims=cossims\n        )] == qwords[3]:\n            correct += 1\n        num_qs += 1\n    return correct, num_qs, num_lines\n\n\n# We use the same conventions as within compute-accuracy\ndef print_compute_accuracy_score(\n    question, correct, num_qs, total_accuracy, semantic_accuracy,\n    syntactic_accuracy\n):\n    print(\n        (\n            \"{0:>30}: ACCURACY TOP1: {3:.2f} %  ({1} / {2})\\t  Total accuracy: {4:.2f} %   Semantic accuracy: {5:.2f} %   Syntactic accuracy: {6:.2f} %\"\n        ).format(\n            question,\n            correct,\n            num_qs,\n            correct / float(num_qs) * 100 if num_qs > 0 else 0,\n            total_accuracy * 100,\n            semantic_accuracy * 100,\n            syntactic_accuracy * 100,\n        )\n    )\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(\n        description=(\n            \"compute_accuracy equivalent in Python. \"\n            \"See https://github.com/tmikolov/word2vec/blob/master/demo-word-accuracy.sh\"\n        )\n    )\n    parser.add_argument(\n        \"model\",\n        help=\"Model to use\",\n    )\n    parser.add_argument(\n        \"question_words\",\n        help=\"word questions similar to tmikolov's file (see help for link)\",\n    )\n    parser.add_argument(\n        \"threshold\",\n        help=\"threshold used to limit number of words used\",\n    )\n    args = parser.parse_args()\n    args.threshold = int(args.threshold)\n\n    # Retrieve list of normalized word vectors for the first words up\n    # until the threshold count.\n    f = load_model(args.model)\n    # Gets words with associated frequeny sorted by default by descending order\n    words, freq = f.get_words(include_freq=True)\n    words = words[:args.threshold]\n    vectors = np.zeros((len(words), f.get_dimension()), dtype=float)\n    for i in range(len(words)):\n        wv = f.get_word_vector(words[i])\n        wv = wv / np.linalg.norm(wv)\n        vectors[i] = wv\n\n    total_correct = 0\n    total_qs = 0\n    total_num_lines = 0\n\n    total_se_correct = 0\n    total_se_qs = 0\n\n    total_sy_correct = 0\n    total_sy_qs = 0\n\n    qid = 0\n    questions = []\n    with open(args.question_words, 'r') as fqw:\n        questions = fqw.read().split(':')[1:]\n    # For efficiency preallocate the memory to calculate cosine similarities\n    cossims = np.zeros(len(words), dtype=float)\n    for question in questions:\n        quads = question.split('\\n')\n        question = quads[0].strip()\n        quads = quads[1:-1]\n        correct, num_qs, num_lines = process_question(\n            quads, cossims, f, words, vectors\n        )\n        total_qs += num_qs\n        total_correct += correct\n        total_num_lines += num_lines\n\n        if (qid < 5):\n            total_se_correct += correct\n            total_se_qs += num_qs\n        else:\n            total_sy_correct += correct\n            total_sy_qs += num_qs\n\n        print_compute_accuracy_score(\n            question,\n            correct,\n            num_qs,\n            total_correct / float(total_qs) if total_qs > 0 else 0,\n            total_se_correct / float(total_se_qs) if total_se_qs > 0 else 0,\n            total_sy_correct / float(total_sy_qs) if total_sy_qs > 0 else 0,\n        )\n        qid += 1\n\n    print(\n        \"Questions seen / total: {0} {1}   {2:.2f} %\".\n        format(\n            total_qs,\n            total_num_lines,\n            total_qs / total_num_lines * 100 if total_num_lines > 0 else 0,\n        )\n    )\n"
  },
  {
    "path": "python/doc/examples/get_vocab.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\nfrom __future__ import division, absolute_import, print_function\n\nfrom fasttext import load_model\nimport argparse\nimport errno\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(\n        description=(\n            \"Print words or labels and frequency of a model's dictionary\"\n        )\n    )\n    parser.add_argument(\n        \"model\",\n        help=\"Model to use\",\n    )\n    parser.add_argument(\n        \"-l\",\n        \"--labels\",\n        help=\"Print labels instead of words\",\n        action='store_true',\n        default=False,\n    )\n    args = parser.parse_args()\n\n    f = load_model(args.model)\n    if args.labels:\n        words, freq = f.get_labels(include_freq=True)\n    else:\n        words, freq = f.get_words(include_freq=True)\n    for w, f in zip(words, freq):\n        try:\n            print(w + \"\\t\" + str(f))\n        except IOError as e:\n            if e.errno == errno.EPIPE:\n                pass\n"
  },
  {
    "path": "python/doc/examples/train_supervised.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nimport os\nfrom fasttext import train_supervised\n\n\ndef print_results(N, p, r):\n    print(\"N\\t\" + str(N))\n    print(\"P@{}\\t{:.3f}\".format(1, p))\n    print(\"R@{}\\t{:.3f}\".format(1, r))\n\n\nif __name__ == \"__main__\":\n    train_data = os.path.join(os.getenv(\"DATADIR\", ''), 'cooking.train')\n    valid_data = os.path.join(os.getenv(\"DATADIR\", ''), 'cooking.valid')\n\n    # train_supervised uses the same arguments and defaults as the fastText cli\n    model = train_supervised(\n        input=train_data, epoch=25, lr=1.0, wordNgrams=2, verbose=2, minCount=1\n    )\n    print_results(*model.test(valid_data))\n\n    model = train_supervised(\n        input=train_data, epoch=25, lr=1.0, wordNgrams=2, verbose=2, minCount=1,\n        loss=\"hs\"\n    )\n    print_results(*model.test(valid_data))\n    model.save_model(\"cooking.bin\")\n\n    model.quantize(input=train_data, qnorm=True, retrain=True, cutoff=100000)\n    print_results(*model.test(valid_data))\n    model.save_model(\"cooking.ftz\")\n"
  },
  {
    "path": "python/doc/examples/train_unsupervised.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\nfrom __future__ import division, absolute_import, print_function\n\nfrom fasttext import train_unsupervised\nimport numpy as np\nimport os\nfrom scipy import stats\n\n\n# Because of fasttext we don't need to account for OOV\ndef compute_similarity(data_path):\n    def similarity(v1, v2):\n        n1 = np.linalg.norm(v1)\n        n2 = np.linalg.norm(v2)\n        return np.dot(v1, v2) / n1 / n2\n\n    mysim = []\n    gold = []\n\n    with open(data_path, 'rb') as fin:\n        for line in fin:\n            tline = line.split()\n            word1 = tline[0].lower()\n            word2 = tline[1].lower()\n\n            v1 = model.get_word_vector(word1)\n            v2 = model.get_word_vector(word2)\n            d = similarity(v1, v2)\n            mysim.append(d)\n            gold.append(float(tline[2]))\n\n    corr = stats.spearmanr(mysim, gold)\n    dataset = os.path.basename(data_path)\n    correlation = corr[0] * 100\n    return dataset, correlation, 0\n\n\nif __name__ == \"__main__\":\n    model = train_unsupervised(\n        input=os.path.join(os.getenv(\"DATADIR\", ''), 'fil9'),\n        model='skipgram',\n    )\n    model.save_model(\"fil9.bin\")\n    dataset, corr, oov = compute_similarity('rw.txt')\n    print(\"{0:20s}: {1:2.0f}  (OOV: {2:2.0f}%)\".format(dataset, corr, 0))\n"
  },
  {
    "path": "quantization-example.sh",
    "content": "myshuf() {\n  perl -MList::Util=shuffle -e 'print shuffle(<>);' \"$@\";\n}\n\nnormalize_text() {\n  tr '[:upper:]' '[:lower:]' | sed -e 's/^/__label__/g' | \\\n    sed -e \"s/'/ ' /g\" -e 's/\"//g' -e 's/\\./ \\. /g' -e 's/<br \\/>/ /g' \\\n        -e 's/,/ , /g' -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/\\!/ \\! /g' \\\n        -e 's/\\?/ \\? /g' -e 's/\\;/ /g' -e 's/\\:/ /g' | tr -s \" \" | myshuf\n}\n\nRESULTDIR=result\nDATADIR=data\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nif [ ! -f \"${DATADIR}/dbpedia.train\" ]\nthen\n  wget -c \"https://drive.google.com/uc?export=download&id=0Bz8a_Dbh9QhbQ2Vic1kxMmZZQ1k\" -O \"${DATADIR}/dbpedia_csv.tar.gz\"\n  tar -xzvf \"${DATADIR}/dbpedia_csv.tar.gz\" -C \"${DATADIR}\"\n  cat \"${DATADIR}/dbpedia_csv/train.csv\" | normalize_text > \"${DATADIR}/dbpedia.train\"\n  cat \"${DATADIR}/dbpedia_csv/test.csv\" | normalize_text > \"${DATADIR}/dbpedia.test\"\nfi\n\nmake\n\necho \"Training...\"\n./fasttext supervised -input \"${DATADIR}/dbpedia.train\" -output \"${RESULTDIR}/dbpedia\" -dim 10 -lr 0.1 -wordNgrams 2 -minCount 1 -bucket 10000000 -epoch 5 -thread 4\n\necho \"Quantizing...\"\n./fasttext quantize -output \"${RESULTDIR}/dbpedia\" -input \"${DATADIR}/dbpedia.train\" -qnorm -retrain -epoch 1 -cutoff 100000\n\necho \"Testing original model...\"\n./fasttext test \"${RESULTDIR}/dbpedia.bin\" \"${DATADIR}/dbpedia.test\"\necho \"Testing quantized model...\"\n./fasttext test \"${RESULTDIR}/dbpedia.ftz\" \"${DATADIR}/dbpedia.test\"\n\nwc -c < \"${RESULTDIR}/dbpedia.bin\" | awk '{print \"Size of the original model:\\t\",$1;}'\nwc -c < \"${RESULTDIR}/dbpedia.ftz\" | awk '{print \"Size of the quantized model:\\t\",$1;}'\n"
  },
  {
    "path": "reduce_model.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nimport argparse\nimport os\nimport re\nimport sys\n\nimport fasttext\nimport fasttext.util\n\nargs = None\n\n\ndef eprint(*args, **kwargs):\n    print(*args, file=sys.stderr, **kwargs)\n\n\ndef guess_target_name(model_file, initial_dim, target_dim):\n    \"\"\"\n    Given a model name with the convention a.<dim>.b, this function\n    returns the model's name with `target_dim` value.\n    For example model_file name `cc.en.300.bin` with initial dim 300 becomes\n    `cc.en.100.bin` when the `target_dim` is 100.\n    \"\"\"\n    prg = re.compile(\"(.*).%s.(.*)\" % initial_dim)\n    m = prg.match(model_file)\n    if m:\n        return \"%s.%d.%s\" % (m.group(1), target_dim, m.group(2))\n\n    sp_ext = os.path.splitext(model_file)\n    return \"%s.%d%s\" % (sp_ext[0], target_dim, sp_ext[1])\n\n\ndef command_reduce(model_file, target_dim, if_exists):\n    \"\"\"\n    Given a `model_file`, this function reduces its dimension to `target_dim`\n    by applying a PCA.\n    \"\"\"\n    eprint(\"Loading model\")\n\n    ft = fasttext.load_model(model_file)\n    initial_dim = ft.get_dimension()\n    if target_dim >= initial_dim:\n        raise Exception(\"Target dimension (%d) should be less than initial dimension (%d).\" % (\n            target_dim, initial_dim))\n\n    result_filename = guess_target_name(model_file, initial_dim, target_dim)\n    if os.path.isfile(result_filename):\n        if if_exists == 'overwrite':\n            pass\n        elif if_exists == 'strict':\n            raise Exception(\n                \"File already exists. Use --overwrite to overwrite.\")\n        elif if_exists == 'ignore':\n            return result_filename\n\n    eprint(\"Reducing matrix dimensions\")\n    fasttext.util.reduce_model(ft, target_dim)\n\n    eprint(\"Saving model\")\n    ft.save_model(result_filename)\n    eprint(\"%s saved\" % result_filename)\n\n    return result_filename\n\n\ndef main():\n    global args\n\n    parser = argparse.ArgumentParser(\n        description='fastText helper tool to reduce model dimensions.')\n    parser.add_argument(\"model\", type=str,\n                        help=\"model file to reduce. model.bin\")\n    parser.add_argument(\"dim\", type=int,\n                        help=\"targeted dimension of word vectors.\")\n    parser.add_argument(\"--overwrite\", action=\"store_true\",\n                        help=\"overwrite if file exists.\")\n\n    args = parser.parse_args()\n\n    command_reduce(args.model, args.dim, if_exists=(\n        'overwrite' if args.overwrite else 'strict'))\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "runtests.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\n# To run the integration tests you must first fetch all the required test data.\n# Have a look at tests/fetch_test_data.sh\n# You will then need to point this script to the corresponding folder\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nimport unittest\nimport argparse\nfrom fasttext.tests import gen_tests\nfrom fasttext.tests import gen_unit_tests\n\n\ndef run_tests(tests):\n    suite = unittest.TestLoader().loadTestsFromTestCase(tests)\n    unittest.TextTestRunner(verbosity=3).run(suite)\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"-u\", \"--unit-tests\", help=\"run unit tests\", action=\"store_true\"\n    )\n    parser.add_argument(\n        \"-i\",\n        \"--integration-tests\",\n        help=\"run integration tests\",\n        action=\"store_true\"\n    )\n    parser.add_argument(\n        \"-v\",\n        \"--verbose\",\n        default=1,\n        help=\"verbosity level (default 1)\",\n        type=int,\n    )\n    parser.add_argument(\"--data-dir\", help=\"Full path to data directory\")\n    args = parser.parse_args()\n    if args.unit_tests:\n        run_tests(gen_unit_tests(verbose=args.verbose))\n    if args.integration_tests:\n        if args.data_dir is None:\n            raise ValueError(\n                \"Need data directory! Consult tests/fetch_test_data.sh\"\n            )\n        run_tests(gen_tests(args.data_dir, verbose=args.verbose))\n    if not args.unit_tests and not args.integration_tests:\n        print(\"Ran no tests\")\n"
  },
  {
    "path": "scripts/kbcompletion/README.md",
    "content": "# Fast Linear Model for Knowledge Graph Embeddings\n\n## Knowledge base completion\n\nThese scripts require the [fastText library](https://github.com/facebookresearch/fastText).\n\nRun the data.sh script to download and format the datasets. Then run any of the scripts to train and test on a given dataset.\n\n## Reference\n\nIf you use this code please cite:\n\n@article{joulin2017fast,\n  title={Fast Linear Model for Knowledge Graph Embeddings},\n  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Nickel, Maximilian and Mikolov, Tomas},\n  journal={arXiv preprint arXiv:1710.10881},\n  year={2017}\n}\n\n"
  },
  {
    "path": "scripts/kbcompletion/data.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\nset -e\nDATADIR=data/\n\nif [ ! -d \"$DATADIR\" ]; then\n  mkdir $DATADIR\nfi\n\ncd $DATADIR\necho \"preparing WN18\"\n#wget -P . https://everest.hds.utc.fr/lib/exe/fetch.php?media=en:wordnet-mlj12.tar.gz\n#mv fetch.php\\?media\\=en\\:wordnet-mlj12.tar.gz wordnet-mlj12.tar.gz\nwget -P . https://github.com/mana-ysh/knowledge-graph-embeddings/raw/master/dat/wordnet-mlj12.tar.gz\ntar -xzvf wordnet-mlj12.tar.gz\nDIR=wordnet-mlj12\nfor f in ${DIR}/wordnet-ml*.txt;\ndo\n  fn=${DIR}/ft_$(basename $f)\n  awk '{print \"__label__\"$1,\"0_\"$2, $3;print $1,\"1_\"$2,\" __label__\"$3}' < ${f} > ${fn};\ndone\ncat ${DIR}/ft_* > ${DIR}/ft_wordnet-mlj12-full.txt\ncat ${DIR}/ft_*train.txt ${DIR}/ft_*valid.txt > ${DIR}/ft_wordnet-mlj12-valid+train.txt\n\necho \"preparing FB15K\"\n#wget https://everest.hds.utc.fr/lib/exe/fetch.php?media=en:fb15k.tgz\n#mv fetch.php\\?media\\=en\\:fb15k.tgz fb15k.tgz\nwget https://github.com/mana-ysh/knowledge-graph-embeddings/raw/master/dat/fb15k.tgz\ntar -xzvf fb15k.tgz\nDIR=FB15k/\nfor f in ${DIR}/freebase*.txt;\ndo\n  fn=${DIR}/ft_$(basename $f)\n  echo $f \" --> \" $fn\n  awk '{print \"__label__\"$1,\"0_\"$2, $3;print $1,\"1_\"$2,\" __label__\"$3}' < ${f} > ${fn};\ndone\ncat ${DIR}/ft_* > ${DIR}/ft_freebase_mtr100_mte100-full.txt\ncat ${DIR}/ft_*train.txt ${DIR}/ft_*valid.txt > ${DIR}/ft_freebase_mtr100_mte100-valid+train.txt\n\necho \"preparing FB15K-237\"\nwget https://download.microsoft.com/download/8/7/0/8700516A-AB3D-4850-B4BB-805C515AECE1/FB15K-237.2.zip\nunzip FB15K-237.2.zip\nDIR=Release/\nfor f in train.txt test.txt valid.txt\ndo\n  fn=${DIR}/ft_$(basename $f)\n  echo $f \" --> \" $fn\n  awk -F \"\\t\" '{print \"__label__\"$1,\"0_\"$2, $3;print $1,\"1_\"$2,\" __label__\"$3}' < ${DIR}/${f} > ${fn};\ndone\ncat ${DIR}/ft_*.txt > ${DIR}/ft_full.txt\ncat ${DIR}/ft_train.txt ${DIR}/ft_valid.txt > ${DIR}/ft_valid+train.txt\n\necho \"preparing SVO\"\nwget . https://everest.hds.utc.fr/lib/exe/fetch.php?media=en:svo-tensor-dataset.tar.gz\nmv fetch.php?media=en:svo-tensor-dataset.tar.gz svo-tensor-dataset.tar.gz\ntar -xzvf svo-tensor-dataset.tar.gz\nDIR=SVO-tensor-dataset\nfor f in ${DIR}/svo_data*.dat;\ndo\n  fn=${DIR}/ft_$(basename $f)\n  awk '{print \"0_\"$1,\"1_\"$3,\"__label__\"$2;}' < ${f} > ${fn};\ndone\ncat ${DIR}/ft_*train*.dat ${DIR}/ft_*valid*.dat > ${DIR}/ft_svo_data-valid+train.dat\n"
  },
  {
    "path": "scripts/kbcompletion/eval.cpp",
    "content": "/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include <unordered_map>\n#include <iostream>\n#include <fstream>\n#include <string>\n#include <vector>\n\nstd::string EOS = \"</s>\";\n\nbool readWord(std::istream& in, std::string& word)\n{\n  char c;\n  std::streambuf& sb = *in.rdbuf();\n  word.clear();\n  while ((c = sb.sbumpc()) != EOF) {\n    if (c == ' ' || c == '\\n' || c == '\\r' || c == '\\t' || c == '\\v' ||\n        c == '\\f' || c == '\\0') {\n      if (word.empty()) {\n        if (c == '\\n') {\n          word += EOS;\n          return true;\n        }\n        continue;\n      } else {\n        if (c == '\\n')\n          sb.sungetc();\n        return true;\n      }\n    }\n    word.push_back(c);\n  }\n  in.get();\n  return !word.empty();\n}\n\nint main(int argc, char** argv) {\n  int k = 10;\n  if (argc < 4) {\n    std::cerr<<\"eval <pred> <gt> <kb> [<k>]\"<<std::endl;\n    exit(1);\n  }\n  if (argc == 5) { k = atoi(argv[4]);}\n\n  std::string predfn(argv[1]);\n  std::ifstream predf(predfn);\n  std::string gtfn(argv[2]);\n  std::ifstream gtf(gtfn);\n  std::string kbfn(argv[3]);\n  std::ifstream kbf(kbfn);\n\n  if (!predf.is_open() || !gtf.is_open() || !kbf.is_open()) {\n    std::cerr << \"Files cannot be opened!\" << std::endl;\n    exit(EXIT_FAILURE);\n  }\n\n  std::unordered_map< std::string,\n    std::unordered_map< std::string, bool > > KB;\n\n  while (kbf.peek() != EOF) {\n    std::string label, key, word;\n    while (readWord(kbf, word)) {\n      if (word == EOS) {break;}\n      if (word.find(\"__label__\") == 0) {label = word;}\n      else {key += \"|\" + word;}\n    }\n    KB[key][label] = true;\n  }\n  kbf.close();\n\n  double precision = 0.0;\n  int32_t nexamples = 0;\n  while (predf.peek() != EOF || gtf.peek() != EOF) {\n    if (predf.peek() == EOF || gtf.peek() == EOF) {\n      std::cerr<<\"pred / gt files have diff sizes\"<<std::endl;\n      exit(1);\n    }\n    std::string label, key, word;\n\n    while (readWord(gtf, word)) {\n      if (word == EOS) {break;}\n      if ( word.find(\"__label__\") == 0) {label = word;}\n      else {key += \"|\" + word;}\n    }\n    if (KB.find(key) == KB.end()) {\n      std::cerr<<\"empty key!\"<<std::endl; exit(1);\n    }\n\n    int count = 0;bool eval = true;\n    while (readWord(predf, word)) {\n      if (word == EOS) {break;}\n      if (!eval) {continue;}\n      if (label == word) {precision += 1.0; eval = false;}\n      else if (KB[key].find(word) == KB[key].end()) {count++;}\n      if (count == k) {eval = false;}\n    }\n    nexamples++;\n  }\n  predf.close(); gtf.close();\n  std::cout << \"N:\\t\" << nexamples << std::endl;\n  std::cout << \"R@\" << k << \"\\t\" << precision / nexamples << std::endl;\n}\n"
  },
  {
    "path": "scripts/kbcompletion/fb15k.sh",
    "content": "#!/usr/bin/env bash\n#\n# copyright (c) 2017-present, facebook, inc.\n# all rights reserved.\n#\n# this source code is licensed under the MIT license found in the\n# license file in the root directory of this source tree.\n#\n# script for FB15k\nDIR=data/FB15k/\nFASTTEXTDIR=../../\n\n# compile\npushd $FASTTEXTDIR\nmake opt\npopd\nft=${FASTTEXTDIR}/fasttext\n\ng++ -std=c++0x eval.cpp -o eval\n\n## Train model and test it on validation:\ndim=100\nepoch=100\nneg=100\nmodel=data/fb15\npred=data/fbpred\n\necho \"---- train ----\"\n$ft supervised -input $DIR/ft_freebase_mtr100_mte100-train.txt \\\n  -dim $dim -epoch $epoch -output ${model} -lr .2 -thread 20 -loss ns -neg $neg -minCount 0\n\necho \"computing raw hits@10...\"\n$ft test ${model}.bin $DIR/ft_freebase_mtr100_mte100-test.txt 10 2> /dev/null | awk '{if(NR==3) print \"raw hit@10=\"$2}'\n\necho \"computing filtered hit@10...\"\n$ft predict ${model}.bin $DIR/ft_freebase_mtr100_mte100-test.txt 20000 > $pred\n./eval $pred ${DIR}/ft_freebase_mtr100_mte100-test.txt $DIR/ft_freebase_mtr100_mte100-full.txt 10 | awk '{if(NR==2) print \"filtered hit@10=\"$2}'\n\necho  \"---- train+val ----\"\n\n$ft supervised -input $DIR/ft_freebase_mtr100_mte100-valid+train.txt \\\n  -dim ${dim} -epoch ${dim} -output ${model} -lr .2 -thread 20 -loss ns -neg ${neg} -minCount 0\n\necho \"computing raw hits@10...\"\n$ft test ${model}.bin $DIR/ft_freebase_mtr100_mte100-test.txt 10  2> /dev/null | awk '{if(NR==3) print \"raw hit@10=\"$2}'\n\necho \"computing filtered hit@10...\"\n$ft predict ${model}.bin $DIR/ft_freebase_mtr100_mte100-test.txt 20000 > $pred\n./eval $pred ${DIR}/ft_freebase_mtr100_mte100-test.txt $DIR/ft_freebase_mtr100_mte100-full.txt 10 | awk '{if(NR==2) print \"filtered hit@10=\"$2}'\n"
  },
  {
    "path": "scripts/kbcompletion/fb15k237.sh",
    "content": "#!/usr/bin/env bash\n#\n# copyright (c) 2017-present, facebook, inc.\n# all rights reserved.\n#\n# this source code is licensed under the MIT license found in the\n# license file in the root directory of this source tree.\n#\n# script for FB15k237\nDIR=data/Release/\nFASTTEXTDIR=../../\n\n# compile\n\npushd $FASTTEXTDIR\nmake opt\npopd\nft=${FASTTEXTDIR}/fasttext\n\ng++ -std=c++0x eval.cpp -o eval\n\n## Train model and test it on validation:\n\npred=data/fb237pred\nmodel=data/fb15k237\ndim=50\nepoch=10\nneg=500\n\necho \"---- train ----\"\n$ft supervised -input $DIR/ft_train.txt \\\n  -dim $dim -epoch $epoch -output ${model} -lr .2 -thread 20 -loss ns -neg $neg -minCount 0\n\necho \"computing filtered hit@10...\"\n$ft predict ${model}.bin $DIR/ft_test.txt 20000 > $pred\n./eval $pred ${DIR}/ft_test.txt $DIR/ft_full.txt 10 | awk '{if(NR==2) print \"filtered hit@10=\"$2}'\n\necho  \"---- train+val ----\"\n\n$ft supervised -input $DIR/ft_valid+train.txt \\\n  -dim ${dim} -epoch ${dim} -output ${model} -lr .2 -thread 20 -loss ns -neg ${neg} -minCount 0\n\necho \"computing filtered hit@10...\"\n$ft predict ${model}.bin $DIR/ft_test.txt 20000 > $pred\n./eval $pred ${DIR}/ft_test.txt $DIR/ft_full.txt 10 | awk '{if(NR==2) print \"filtered hit@10=\"$2}'\n"
  },
  {
    "path": "scripts/kbcompletion/svo.sh",
    "content": "#!/usr/bin/env bash\n#\n# copyright (c) 2017-present, facebook, inc.\n# all rights reserved.\n#\n# this source code is licensed under the MIT license found in the\n# license file in the root directory of this source tree.\n#\n# script for SVO\nDIR=data/SVO-tensor-dataset\nFASTTEXTDIR=../../\n\n# compile\npushd $FASTTEXTDIR\nmake opt\npopd\nft=${FASTTEXTDIR}/fasttext\n\n## Train model and test it on validation:\n\ndim=200\nepoch=3\nmodel=svo\n\necho  \"---- train ----\"\ntime $ft supervised -input ${DIR}/ft_svo_data_train_1000000.dat  \\\n  -dim $dim -epoch $epoch -output ${model} -lr .2 -thread 20\n\necho \"computing raw hit@5%...\"\n$ft test ${model}.bin ${DIR}/ft_svo_data_test_250000.dat 227 2> /dev/null | awk '{if(NR==3) print \"raw hit@5%=\"$2}'\n\n\necho  \"---- train + valid ----\"\ntime $ft supervised -input ${DIR}/ft_svo_data-valid+train.dat  \\\n  -dim $dim -epoch $epoch -output ${model} -lr .2 -thread 20\n\necho \"computing raw hit@5%...\"\n$ft test ${model}.bin ${DIR}/ft_svo_data_test_250000.dat 227 2> /dev/null | awk '{if(NR==3) print \"raw hit@5%=\"$2}'\n"
  },
  {
    "path": "scripts/kbcompletion/wn18.sh",
    "content": "#!/usr/bin/env bash\n#\n# copyright (c) 2017-present, facebook, inc.\n# all rights reserved.\n#\n# this source code is licensed under the MIT license found in the\n# license file in the root directory of this source tree.\n#\n# script for WN11\nDIR=data/wordnet-mlj12/\nFASTTEXTDIR=../../\n\n# compile\n\npushd $FASTTEXTDIR\nmake opt\npopd\nft=${FASTTEXTDIR}/fasttext\n\ng++ -std=c++0x eval.cpp -o eval\n\n# Train model and test it:\ndim=100\nepoch=100\nneg=500\nmodel=data/wn\npred=data/wnpred\n\necho  \"---- train ----\"\n$ft supervised -input ${DIR}/ft_wordnet-mlj12-train.txt  \\\n  -dim $dim -epoch $epoch -output ${model} -lr .2 -thread 20 -loss ns -neg $neg\n\necho \"computing raw hits@10...\"\n$ft test ${model}.bin ${DIR}/ft_wordnet-mlj12-test.txt 10 2> /dev/null | awk '{if(NR==3) print \"raw hit@10 = \"$2}'\n\necho \"computing filtered hit@10...\"\n$ft predict ${model}.bin ${DIR}/ft_wordnet-mlj12-test.txt 20000 > $pred\n./eval $pred ${DIR}/ft_wordnet-mlj12-test.txt $DIR/ft_wordnet-mlj12-full.txt 10 | awk '{if(NR==2) print \"filtered hit@10 = \"$2}'\n\necho  \"---- train+val ----\"\n$ft supervised -input ${DIR}/ft_wordnet-mlj12-valid+train.txt \\\n  -dim $dim -epoch $epoch -output ${model} -lr .2 -thread 20 -loss ns -neg $neg\n\necho \"computing raw hits@10...\"\n$ft test ${model}.bin ${DIR}/ft_wordnet-mlj12-test.txt 10  2> /dev/null | awk '{if(NR==3) print \"raw hit@10 = \"$2}'\n\necho \"computing filtered hit@10...\"\n$ft predict ${model}.bin ${DIR}/ft_wordnet-mlj12-test.txt 20000 > $pred\n./eval $pred ${DIR}/ft_wordnet-mlj12-test.txt $DIR/ft_wordnet-mlj12-full.txt 10 | awk '{if(NR==2) print \"filtered hit@10 = \"$2}'\n"
  },
  {
    "path": "scripts/quantization/quantization-results.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\n# This script applies quantization to the models from Table 1 in:\n# Bag of Tricks for Efficient Text Classification, arXiv 1607.01759, 2016\n\nset -e\n\nDATASET=(\n  ag_news\n  sogou_news\n  dbpedia\n  yelp_review_polarity\n  yelp_review_full\n  yahoo_answers\n  amazon_review_full\n  amazon_review_polarity\n)\n\n# These learning rates were chosen by validation on a subset of the training set.\nLR=( 0.25 0.5 0.5 0.1 0.1 0.1 0.05 0.05 )\n\nRESULTDIR=result\nDATADIR=data\n\necho 'Warning! Make sure you run the classification-results.sh script before this one'\necho 'Otherwise you can expect the commands in this script to fail'\n\nfor i in {0..7}\ndo\n  echo \"Working on dataset ${DATASET[i]}\"\n  ../../fasttext quantize -input \"${DATADIR}/${DATASET[i]}.train\" \\\n    -output \"${RESULTDIR}/${DATASET[i]}\" -lr \"${LR[i]}\" \\\n    -thread 4 -qnorm -retrain -epoch 5 -cutoff 100000 > /dev/null\n  ../../fasttext test \"${RESULTDIR}/${DATASET[i]}.ftz\" \\\n    \"${DATADIR}/${DATASET[i]}.test\"\ndone\n"
  },
  {
    "path": "setup.cfg",
    "content": "[metadata]\ndescription-file = README.md\n"
  },
  {
    "path": "setup.py",
    "content": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nfrom setuptools import setup, Extension\nfrom setuptools.command.build_ext import build_ext\nimport sys\nimport setuptools\nimport os\nimport subprocess\nimport platform\nimport io\n\n__version__ = \"0.9.2\"\nFASTTEXT_SRC = \"src\"\n\n# Based on https://github.com/pybind/python_example\n\n\nclass get_pybind_include:\n    \"\"\"Helper class to determine the pybind11 include path\n\n    The purpose of this class is to postpone importing pybind11\n    until it is actually installed, so that the ``get_include()``\n    method can be invoked.\"\"\"\n\n    def __init__(self, user=False):\n        try:\n            pass\n        except ImportError:\n            if subprocess.call([sys.executable, \"-m\", \"pip\", \"install\", \"pybind11\"]):\n                raise RuntimeError(\"pybind11 install failed.\")\n\n        self.user = user\n\n    def __str__(self):\n        import pybind11\n\n        return pybind11.get_include(self.user)\n\n\ntry:\n    coverage_index = sys.argv.index(\"--coverage\")\nexcept ValueError:\n    coverage = False\nelse:\n    del sys.argv[coverage_index]\n    coverage = True\n\nfasttext_src_files = map(str, os.listdir(FASTTEXT_SRC))\nfasttext_src_cc = list(filter(lambda x: x.endswith(\".cc\"), fasttext_src_files))\n\nfasttext_src_cc = list(\n    map(lambda x: str(os.path.join(FASTTEXT_SRC, x)), fasttext_src_cc)\n)\n\next_modules = [\n    Extension(\n        str(\"fasttext_pybind\"),\n        [\n            str(\"python/fasttext_module/fasttext/pybind/fasttext_pybind.cc\"),\n        ]\n        + fasttext_src_cc,\n        include_dirs=[\n            # Path to pybind11 headers\n            get_pybind_include(),\n            get_pybind_include(user=True),\n            # Path to fasttext source code\n            FASTTEXT_SRC,\n        ],\n        language=\"c++\",\n        extra_compile_args=[\n            \"-O0 -fno-inline -fprofile-arcs -pthread -march=native\"\n            if coverage\n            else \"-O3 -funroll-loops -pthread -march=native\"\n        ],\n    ),\n]\n\n\n# As of Python 3.6, CCompiler has a `has_flag` method.\n# cf http://bugs.python.org/issue26689\ndef has_flag(compiler, flags):\n    \"\"\"Return a boolean indicating whether a flag name is supported on\n    the specified compiler.\n    \"\"\"\n    import tempfile\n\n    with tempfile.NamedTemporaryFile(\"w\", suffix=\".cpp\") as f:\n        f.write(\"int main (int argc, char **argv) { return 0; }\")\n        try:\n            compiler.compile([f.name], extra_postargs=flags)\n        except setuptools.distutils.errors.CompileError:\n            return False\n    return True\n\n\ndef cpp_flag(compiler):\n    \"\"\"Return the -std=c++17 compiler flag.\"\"\"\n    standards = [\"-std=c++17\"]\n    for standard in standards:\n        if has_flag(compiler, [standard]):\n            return standard\n    raise RuntimeError(\"Unsupported compiler -- at least C++17 support \" \"is needed!\")\n\n\nclass BuildExt(build_ext):\n    \"\"\"A custom build extension for adding compiler-specific options.\"\"\"\n\n    c_opts = {\n        \"msvc\": [\"/EHsc\"],\n        \"unix\": [],\n    }\n\n    def build_extensions(self):\n        if sys.platform == \"darwin\":\n            mac_osx_version = float(\".\".join(platform.mac_ver()[0].split(\".\")[:2]))\n            os.environ[\"MACOSX_DEPLOYMENT_TARGET\"] = str(mac_osx_version)\n            all_flags = [\"-stdlib=libc++\", \"-mmacosx-version-min=10.7\"]\n            if has_flag(self.compiler, [all_flags[0]]):\n                self.c_opts[\"unix\"] += [all_flags[0]]\n            elif has_flag(self.compiler, all_flags):\n                self.c_opts[\"unix\"] += all_flags\n            else:\n                raise RuntimeError(\n                    \"libc++ is needed! Failed to compile with {} and {}.\".format(\n                        \" \".join(all_flags), all_flags[0]\n                    )\n                )\n        ct = self.compiler.compiler_type\n        opts = self.c_opts.get(ct, [])\n        extra_link_args = []\n\n        if coverage:\n            coverage_option = \"--coverage\"\n            opts.append(coverage_option)\n            extra_link_args.append(coverage_option)\n\n        if ct == \"unix\":\n            opts.append('-DVERSION_INFO=\"%s\"' % self.distribution.get_version())\n            opts.append(cpp_flag(self.compiler))\n            if has_flag(self.compiler, [\"-fvisibility=hidden\"]):\n                opts.append(\"-fvisibility=hidden\")\n        elif ct == \"msvc\":\n            opts.append('/DVERSION_INFO=\\\\\"%s\\\\\"' % self.distribution.get_version())\n        for ext in self.extensions:\n            ext.extra_compile_args = opts\n            ext.extra_link_args = extra_link_args\n        build_ext.build_extensions(self)\n\n\ndef _get_readme():\n    \"\"\"\n    Use pandoc to generate rst from md.\n    pandoc --from=markdown --to=rst --output=python/README.rst python/README.md\n    \"\"\"\n    with io.open(\"python/README.rst\", encoding=\"utf-8\") as fid:\n        return fid.read()\n\n\nsetup(\n    name=\"fasttext\",\n    version=__version__,\n    author=\"Onur Celebi\",\n    author_email=\"celebio@fb.com\",\n    description=\"fasttext Python bindings\",\n    long_description=_get_readme(),\n    ext_modules=ext_modules,\n    url=\"https://github.com/facebookresearch/fastText\",\n    license=\"MIT\",\n    classifiers=[\n        \"Development Status :: 3 - Alpha\",\n        \"Intended Audience :: Developers\",\n        \"Intended Audience :: Science/Research\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Programming Language :: Python :: 2.7\",\n        \"Programming Language :: Python :: 3.4\",\n        \"Programming Language :: Python :: 3.5\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Topic :: Software Development\",\n        \"Topic :: Scientific/Engineering\",\n        \"Operating System :: Microsoft :: Windows\",\n        \"Operating System :: POSIX\",\n        \"Operating System :: Unix\",\n        \"Operating System :: MacOS\",\n    ],\n    install_requires=[\"pybind11>=2.2\", \"setuptools >= 0.7.0\", \"numpy\"],\n    cmdclass={\"build_ext\": BuildExt},\n    packages=[\n        str(\"fasttext\"),\n        str(\"fasttext.util\"),\n        str(\"fasttext.tests\"),\n    ],\n    package_dir={str(\"\"): str(\"python/fasttext_module\")},\n    zip_safe=False,\n)\n"
  },
  {
    "path": "src/aligned.h",
    "content": "#pragma once\n#include <cstdlib>\n#include <new>\n#ifdef _MSC_VER\n// Ensure _HAS_EXCEPTIONS is defined\n#include <vcruntime.h>\n#include <malloc.h>\n#endif\n\n#if !((defined(_MSC_VER) && !defined(__clang__)) ? (_HAS_EXCEPTIONS) : (__EXCEPTIONS))\n#include <cstdlib>\n#endif\n\n// Aligned simple vector.\n\nnamespace intgemm {\n\ntemplate <class T> class AlignedVector {\n  public:\n    AlignedVector() : mem_(nullptr), size_(0) {}\n\n    explicit AlignedVector(std::size_t size, std::size_t alignment = 64 /* CPU cares about this */)\n      : size_(size) {\n#ifdef _MSC_VER\n      mem_ = static_cast<T*>(_aligned_malloc(size * sizeof(T), alignment));\n      if (!mem_) {\n#  if (defined(_MSC_VER) && !defined(__clang__)) ? (_HAS_EXCEPTIONS) : (__EXCEPTIONS)\n        throw std::bad_alloc();\n#  else\n        std::abort();\n#  endif\n      }\n#else\n      if (posix_memalign(reinterpret_cast<void **>(&mem_), alignment, size * sizeof(T))) {\n#  if (defined(_MSC_VER) && !defined(__clang__)) ? (_HAS_EXCEPTIONS) : (__EXCEPTIONS)\n        throw std::bad_alloc();\n#  else\n        std::abort();\n#  endif\n      }\n#endif\n    }\n\n    template <class InputIt> AlignedVector(InputIt first, InputIt last) \n      : AlignedVector(last - first) {\n      std::copy(first, last, begin());\n    }\n\n    AlignedVector(AlignedVector &&from) noexcept : mem_(from.mem_), size_(from.size_) {\n      from.mem_ = nullptr;\n      from.size_ = 0;\n    }\n\n    AlignedVector &operator=(AlignedVector &&from) {\n      if (this == &from) return *this;\n      release();\n      mem_ = from.mem_;\n      size_ = from.size_;\n      from.mem_ = nullptr;\n      from.size_ = 0;\n      return *this;\n    }\n\n    AlignedVector(const AlignedVector&) = delete;\n    AlignedVector& operator=(const AlignedVector&) = delete;\n\n    ~AlignedVector() { release(); }\n\n    std::size_t size() const { return size_; }\n\n    T &operator[](std::size_t offset) { return mem_[offset]; }\n    const T &operator[](std::size_t offset) const { return mem_[offset]; }\n\n    T *begin() { return mem_; }\n    const T *begin() const { return mem_; }\n    T *end() { return mem_ + size_; }\n    const T *end() const { return mem_ + size_; }\n\n    T *data() { return mem_; }\n    const T *data() const { return mem_; }\n\n    template <typename ReturnType>\n    ReturnType *as() { return reinterpret_cast<ReturnType*>(mem_); }\n\n  private:\n    T *mem_;\n    std::size_t size_;\n\n    void release() {\n#ifdef _MSC_VER\n      _aligned_free(mem_);\n#else\n      std::free(mem_);\n#endif\n    }\n};\n\n} // namespace intgemm\n"
  },
  {
    "path": "src/args.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"args.h\"\n\n#include <cstdlib>\n#include <cstdint>\n\n#include <iostream>\n#include <stdexcept>\n#include <string>\n#include <unordered_map>\n\nnamespace fasttext {\n\nArgs::Args() {\n  lr = 0.05;\n  dim = 100;\n  ws = 5;\n  epoch = 5;\n  minCount = 5;\n  minCountLabel = 0;\n  neg = 5;\n  wordNgrams = 1;\n  loss = loss_name::ns;\n  model = model_name::sg;\n  bucket = 2000000;\n  minn = 3;\n  maxn = 6;\n  thread = 12;\n  lrUpdateRate = 100;\n  t = 1e-4;\n  label = \"__label__\";\n  verbose = 2;\n  pretrainedVectors = \"\";\n  saveOutput = false;\n  seed = 0;\n\n  qout = false;\n  retrain = false;\n  qnorm = false;\n  cutoff = 0;\n  dsub = 2;\n\n  autotuneValidationFile = \"\";\n  autotuneMetric = \"f1\";\n  autotunePredictions = 1;\n  autotuneDuration = 60 * 5; // 5 minutes\n  autotuneModelSize = \"\";\n}\n\nstd::string Args::lossToString(loss_name ln) const {\n  switch (ln) {\n    case loss_name::hs:\n      return \"hs\";\n    case loss_name::ns:\n      return \"ns\";\n    case loss_name::softmax:\n      return \"softmax\";\n    case loss_name::ova:\n      return \"one-vs-all\";\n  }\n  return \"Unknown loss!\"; // should never happen\n}\n\nstd::string Args::boolToString(bool b) const {\n  if (b) {\n    return \"true\";\n  } else {\n    return \"false\";\n  }\n}\n\nstd::string Args::modelToString(model_name mn) const {\n  switch (mn) {\n    case model_name::cbow:\n      return \"cbow\";\n    case model_name::sg:\n      return \"sg\";\n    case model_name::sup:\n      return \"sup\";\n  }\n  return \"Unknown model name!\"; // should never happen\n}\n\nstd::string Args::metricToString(metric_name mn) const {\n  switch (mn) {\n    case metric_name::f1score:\n      return \"f1score\";\n    case metric_name::f1scoreLabel:\n      return \"f1scoreLabel\";\n    case metric_name::precisionAtRecall:\n      return \"precisionAtRecall\";\n    case metric_name::precisionAtRecallLabel:\n      return \"precisionAtRecallLabel\";\n    case metric_name::recallAtPrecision:\n      return \"recallAtPrecision\";\n    case metric_name::recallAtPrecisionLabel:\n      return \"recallAtPrecisionLabel\";\n  }\n  return \"Unknown metric name!\"; // should never happen\n}\n\nvoid Args::parseArgs(const std::vector<std::string>& args) {\n  const std::string& command(args[1]);\n  if (command == \"supervised\") {\n    model = model_name::sup;\n    loss = loss_name::softmax;\n    minCount = 1;\n    minn = 0;\n    maxn = 0;\n    lr = 0.1;\n  } else if (command == \"cbow\") {\n    model = model_name::cbow;\n  }\n  for (int ai = 2; ai < args.size(); ai += 2) {\n    if (args[ai][0] != '-') {\n      std::cerr << \"Provided argument without a dash! Usage:\" << std::endl;\n      printHelp();\n      exit(EXIT_FAILURE);\n    }\n    try {\n      setManual(args[ai].substr(1));\n\n      if (args[ai] == \"-h\") {\n        std::cerr << \"Here is the help! Usage:\" << std::endl;\n        printHelp();\n        exit(EXIT_FAILURE);\n      } else if (args[ai] == \"-input\") {\n        input = std::string(args.at(ai + 1));\n      } else if (args[ai] == \"-output\") {\n        output = std::string(args.at(ai + 1));\n      } else if (args[ai] == \"-lr\") {\n        lr = std::stof(args.at(ai + 1));\n      } else if (args[ai] == \"-lrUpdateRate\") {\n        lrUpdateRate = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-dim\") {\n        dim = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-ws\") {\n        ws = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-epoch\") {\n        epoch = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-minCount\") {\n        minCount = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-minCountLabel\") {\n        minCountLabel = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-neg\") {\n        neg = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-wordNgrams\") {\n        wordNgrams = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-loss\") {\n        if (args.at(ai + 1) == \"hs\") {\n          loss = loss_name::hs;\n        } else if (args.at(ai + 1) == \"ns\") {\n          loss = loss_name::ns;\n        } else if (args.at(ai + 1) == \"softmax\") {\n          loss = loss_name::softmax;\n        } else if (\n            args.at(ai + 1) == \"one-vs-all\" || args.at(ai + 1) == \"ova\") {\n          loss = loss_name::ova;\n        } else {\n          std::cerr << \"Unknown loss: \" << args.at(ai + 1) << std::endl;\n          printHelp();\n          exit(EXIT_FAILURE);\n        }\n      } else if (args[ai] == \"-bucket\") {\n        bucket = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-minn\") {\n        minn = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-maxn\") {\n        maxn = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-thread\") {\n        thread = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-t\") {\n        t = std::stof(args.at(ai + 1));\n      } else if (args[ai] == \"-label\") {\n        label = std::string(args.at(ai + 1));\n      } else if (args[ai] == \"-verbose\") {\n        verbose = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-pretrainedVectors\") {\n        pretrainedVectors = std::string(args.at(ai + 1));\n      } else if (args[ai] == \"-saveOutput\") {\n        saveOutput = true;\n        ai--;\n      } else if (args[ai] == \"-seed\") {\n        seed = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-qnorm\") {\n        qnorm = true;\n        ai--;\n      } else if (args[ai] == \"-retrain\") {\n        retrain = true;\n        ai--;\n      } else if (args[ai] == \"-qout\") {\n        qout = true;\n        ai--;\n      } else if (args[ai] == \"-cutoff\") {\n        cutoff = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-dsub\") {\n        dsub = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-autotune-validation\") {\n        autotuneValidationFile = std::string(args.at(ai + 1));\n      } else if (args[ai] == \"-autotune-metric\") {\n        autotuneMetric = std::string(args.at(ai + 1));\n        getAutotuneMetric(); // throws exception if not able to parse\n        getAutotuneMetricLabel(); // throws exception if not able to parse\n      } else if (args[ai] == \"-autotune-predictions\") {\n        autotunePredictions = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-autotune-duration\") {\n        autotuneDuration = std::stoi(args.at(ai + 1));\n      } else if (args[ai] == \"-autotune-modelsize\") {\n        autotuneModelSize = std::string(args.at(ai + 1));\n      } else {\n        std::cerr << \"Unknown argument: \" << args[ai] << std::endl;\n        printHelp();\n        exit(EXIT_FAILURE);\n      }\n    } catch (std::out_of_range) {\n      std::cerr << args[ai] << \" is missing an argument\" << std::endl;\n      printHelp();\n      exit(EXIT_FAILURE);\n    }\n  }\n  if (input.empty() || output.empty()) {\n    std::cerr << \"Empty input or output path.\" << std::endl;\n    printHelp();\n    exit(EXIT_FAILURE);\n  }\n  if (wordNgrams <= 1 && maxn == 0 && !hasAutotune()) {\n    bucket = 0;\n  }\n}\n\nvoid Args::printHelp() {\n  printBasicHelp();\n  printDictionaryHelp();\n  printTrainingHelp();\n  printAutotuneHelp();\n  printQuantizationHelp();\n}\n\nvoid Args::printBasicHelp() {\n  std::cerr << \"\\nThe following arguments are mandatory:\\n\"\n            << \"  -input              training file path\\n\"\n            << \"  -output             output file path\\n\"\n            << \"\\nThe following arguments are optional:\\n\"\n            << \"  -verbose            verbosity level [\" << verbose << \"]\\n\";\n}\n\nvoid Args::printDictionaryHelp() {\n  std::cerr << \"\\nThe following arguments for the dictionary are optional:\\n\"\n            << \"  -minCount           minimal number of word occurences [\"\n            << minCount << \"]\\n\"\n            << \"  -minCountLabel      minimal number of label occurences [\"\n            << minCountLabel << \"]\\n\"\n            << \"  -wordNgrams         max length of word ngram [\" << wordNgrams\n            << \"]\\n\"\n            << \"  -bucket             number of buckets [\" << bucket << \"]\\n\"\n            << \"  -minn               min length of char ngram [\" << minn\n            << \"]\\n\"\n            << \"  -maxn               max length of char ngram [\" << maxn\n            << \"]\\n\"\n            << \"  -t                  sampling threshold [\" << t << \"]\\n\"\n            << \"  -label              labels prefix [\" << label << \"]\\n\";\n}\n\nvoid Args::printTrainingHelp() {\n  std::cerr\n      << \"\\nThe following arguments for training are optional:\\n\"\n      << \"  -lr                 learning rate [\" << lr << \"]\\n\"\n      << \"  -lrUpdateRate       change the rate of updates for the learning \"\n         \"rate [\"\n      << lrUpdateRate << \"]\\n\"\n      << \"  -dim                size of word vectors [\" << dim << \"]\\n\"\n      << \"  -ws                 size of the context window [\" << ws << \"]\\n\"\n      << \"  -epoch              number of epochs [\" << epoch << \"]\\n\"\n      << \"  -neg                number of negatives sampled [\" << neg << \"]\\n\"\n      << \"  -loss               loss function {ns, hs, softmax, one-vs-all} [\"\n      << lossToString(loss) << \"]\\n\"\n      << \"  -thread             number of threads (set to 1 to ensure \"\n         \"reproducible results) [\"\n      << thread << \"]\\n\"\n      << \"  -pretrainedVectors  pretrained word vectors for supervised \"\n         \"learning [\"\n      << pretrainedVectors << \"]\\n\"\n      << \"  -saveOutput         whether output params should be saved [\"\n      << boolToString(saveOutput) << \"]\\n\"\n      << \"  -seed               random generator seed  [\" << seed << \"]\\n\";\n}\n\nvoid Args::printAutotuneHelp() {\n  std::cerr << \"\\nThe following arguments are for autotune:\\n\"\n            << \"  -autotune-validation            validation file to be used \"\n               \"for evaluation\\n\"\n            << \"  -autotune-metric                metric objective {f1, \"\n               \"f1:labelname} [\"\n            << autotuneMetric << \"]\\n\"\n            << \"  -autotune-predictions           number of predictions used \"\n               \"for evaluation  [\"\n            << autotunePredictions << \"]\\n\"\n            << \"  -autotune-duration              maximum duration in seconds [\"\n            << autotuneDuration << \"]\\n\"\n            << \"  -autotune-modelsize             constraint model file size [\"\n            << autotuneModelSize << \"] (empty = do not quantize)\\n\";\n}\n\nvoid Args::printQuantizationHelp() {\n  std::cerr\n      << \"\\nThe following arguments for quantization are optional:\\n\"\n      << \"  -cutoff             number of words and ngrams to retain [\"\n      << cutoff << \"]\\n\"\n      << \"  -retrain            whether embeddings are finetuned if a cutoff \"\n         \"is applied [\"\n      << boolToString(retrain) << \"]\\n\"\n      << \"  -qnorm              whether the norm is quantized separately [\"\n      << boolToString(qnorm) << \"]\\n\"\n      << \"  -qout               whether the classifier is quantized [\"\n      << boolToString(qout) << \"]\\n\"\n      << \"  -dsub               size of each sub-vector [\" << dsub << \"]\\n\";\n}\n\nvoid Args::save(std::ostream& out) {\n  out.write((char*)&(dim), sizeof(int));\n  out.write((char*)&(ws), sizeof(int));\n  out.write((char*)&(epoch), sizeof(int));\n  out.write((char*)&(minCount), sizeof(int));\n  out.write((char*)&(neg), sizeof(int));\n  out.write((char*)&(wordNgrams), sizeof(int));\n  out.write((char*)&(loss), sizeof(loss_name));\n  out.write((char*)&(model), sizeof(model_name));\n  out.write((char*)&(bucket), sizeof(int));\n  out.write((char*)&(minn), sizeof(int));\n  out.write((char*)&(maxn), sizeof(int));\n  out.write((char*)&(lrUpdateRate), sizeof(int));\n  out.write((char*)&(t), sizeof(double));\n}\n\nvoid Args::load(std::istream& in) {\n  in.read((char*)&(dim), sizeof(int));\n  in.read((char*)&(ws), sizeof(int));\n  in.read((char*)&(epoch), sizeof(int));\n  in.read((char*)&(minCount), sizeof(int));\n  in.read((char*)&(neg), sizeof(int));\n  in.read((char*)&(wordNgrams), sizeof(int));\n  in.read((char*)&(loss), sizeof(loss_name));\n  in.read((char*)&(model), sizeof(model_name));\n  in.read((char*)&(bucket), sizeof(int));\n  in.read((char*)&(minn), sizeof(int));\n  in.read((char*)&(maxn), sizeof(int));\n  in.read((char*)&(lrUpdateRate), sizeof(int));\n  in.read((char*)&(t), sizeof(double));\n}\n\nvoid Args::dump(std::ostream& out) const {\n  out << \"dim\"\n      << \" \" << dim << std::endl;\n  out << \"ws\"\n      << \" \" << ws << std::endl;\n  out << \"epoch\"\n      << \" \" << epoch << std::endl;\n  out << \"minCount\"\n      << \" \" << minCount << std::endl;\n  out << \"neg\"\n      << \" \" << neg << std::endl;\n  out << \"wordNgrams\"\n      << \" \" << wordNgrams << std::endl;\n  out << \"loss\"\n      << \" \" << lossToString(loss) << std::endl;\n  out << \"model\"\n      << \" \" << modelToString(model) << std::endl;\n  out << \"bucket\"\n      << \" \" << bucket << std::endl;\n  out << \"minn\"\n      << \" \" << minn << std::endl;\n  out << \"maxn\"\n      << \" \" << maxn << std::endl;\n  out << \"lrUpdateRate\"\n      << \" \" << lrUpdateRate << std::endl;\n  out << \"t\"\n      << \" \" << t << std::endl;\n}\n\nbool Args::hasAutotune() const {\n  return !autotuneValidationFile.empty();\n}\n\nbool Args::isManual(const std::string& argName) const {\n  return (manualArgs_.count(argName) != 0);\n}\n\nvoid Args::setManual(const std::string& argName) {\n  manualArgs_.emplace(argName);\n}\n\nmetric_name Args::getAutotuneMetric() const {\n  if (autotuneMetric.substr(0, 3) == \"f1:\") {\n    return metric_name::f1scoreLabel;\n  } else if (autotuneMetric == \"f1\") {\n    return metric_name::f1score;\n  } else if (autotuneMetric.substr(0, 18) == \"precisionAtRecall:\") {\n    size_t semicolon = autotuneMetric.find(':', 18);\n    if (semicolon != std::string::npos) {\n      return metric_name::precisionAtRecallLabel;\n    }\n    return metric_name::precisionAtRecall;\n  } else if (autotuneMetric.substr(0, 18) == \"recallAtPrecision:\") {\n    size_t semicolon = autotuneMetric.find(':', 18);\n    if (semicolon != std::string::npos) {\n      return metric_name::recallAtPrecisionLabel;\n    }\n    return metric_name::recallAtPrecision;\n  }\n  throw std::runtime_error(\"Unknown metric : \" + autotuneMetric);\n}\n\nstd::string Args::getAutotuneMetricLabel() const {\n  metric_name metric = getAutotuneMetric();\n  std::string label;\n  if (metric == metric_name::f1scoreLabel) {\n    label = autotuneMetric.substr(3);\n  } else if (\n      metric == metric_name::precisionAtRecallLabel ||\n      metric == metric_name::recallAtPrecisionLabel) {\n    size_t semicolon = autotuneMetric.find(':', 18);\n    label = autotuneMetric.substr(semicolon + 1);\n  } else {\n    return label;\n  }\n\n  if (label.empty()) {\n    throw std::runtime_error(\"Empty metric label : \" + autotuneMetric);\n  }\n  return label;\n}\n\ndouble Args::getAutotuneMetricValue() const {\n  metric_name metric = getAutotuneMetric();\n  double value = 0.0;\n  if (metric == metric_name::precisionAtRecallLabel ||\n      metric == metric_name::precisionAtRecall ||\n      metric == metric_name::recallAtPrecisionLabel ||\n      metric == metric_name::recallAtPrecision) {\n    size_t firstSemicolon = 18; // semicolon position in \"precisionAtRecall:\"\n    size_t secondSemicolon = autotuneMetric.find(':', firstSemicolon);\n    const std::string valueStr =\n        autotuneMetric.substr(firstSemicolon, secondSemicolon - firstSemicolon);\n    value = std::stof(valueStr) / 100.0;\n  }\n  return value;\n}\n\nint64_t Args::getAutotuneModelSize() const {\n  std::string modelSize = autotuneModelSize;\n  if (modelSize.empty()) {\n    return Args::kUnlimitedModelSize;\n  }\n  std::unordered_map<char, int> units = {\n      {'k', 1000},\n      {'K', 1000},\n      {'m', 1000000},\n      {'M', 1000000},\n      {'g', 1000000000},\n      {'G', 1000000000},\n  };\n  uint64_t multiplier = 1;\n  char lastCharacter = modelSize.back();\n  if (units.count(lastCharacter)) {\n    multiplier = units[lastCharacter];\n    modelSize = modelSize.substr(0, modelSize.size() - 1);\n  }\n  uint64_t size = 0;\n  size_t nonNumericCharacter = 0;\n  bool parseError = false;\n  try {\n    size = std::stol(modelSize, &nonNumericCharacter);\n  } catch (std::invalid_argument&) {\n    parseError = true;\n  }\n  if (!parseError && nonNumericCharacter != modelSize.size()) {\n    parseError = true;\n  }\n  if (parseError) {\n    throw std::invalid_argument(\n        \"Unable to parse model size \" + autotuneModelSize);\n  }\n\n  return size * multiplier;\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/args.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <istream>\n#include <ostream>\n#include <string>\n#include <unordered_set>\n#include <vector>\n\nnamespace fasttext {\n\nenum class model_name : int { cbow = 1, sg, sup };\nenum class loss_name : int { hs = 1, ns, softmax, ova };\nenum class metric_name : int {\n  f1score = 1,\n  f1scoreLabel,\n  precisionAtRecall,\n  precisionAtRecallLabel,\n  recallAtPrecision,\n  recallAtPrecisionLabel\n};\n\nclass Args {\n protected:\n  std::string boolToString(bool) const;\n  std::string modelToString(model_name) const;\n  std::string metricToString(metric_name) const;\n  std::unordered_set<std::string> manualArgs_;\n\n public:\n  Args();\n  std::string input;\n  std::string output;\n  double lr;\n  int lrUpdateRate;\n  int dim;\n  int ws;\n  int epoch;\n  int minCount;\n  int minCountLabel;\n  int neg;\n  int wordNgrams;\n  loss_name loss;\n  model_name model;\n  int bucket;\n  int minn;\n  int maxn;\n  int thread;\n  double t;\n  std::string label;\n  int verbose;\n  std::string pretrainedVectors;\n  bool saveOutput;\n  int seed;\n\n  bool qout;\n  bool retrain;\n  bool qnorm;\n  size_t cutoff;\n  size_t dsub;\n\n  std::string autotuneValidationFile;\n  std::string autotuneMetric;\n  int autotunePredictions;\n  int autotuneDuration;\n  std::string autotuneModelSize;\n\n  void parseArgs(const std::vector<std::string>& args);\n  void printHelp();\n  void printBasicHelp();\n  void printDictionaryHelp();\n  void printTrainingHelp();\n  void printAutotuneHelp();\n  void printQuantizationHelp();\n  void save(std::ostream&);\n  void load(std::istream&);\n  void dump(std::ostream&) const;\n  bool hasAutotune() const;\n  bool isManual(const std::string& argName) const;\n  void setManual(const std::string& argName);\n  std::string lossToString(loss_name) const;\n  metric_name getAutotuneMetric() const;\n  std::string getAutotuneMetricLabel() const;\n  double getAutotuneMetricValue() const;\n  int64_t getAutotuneModelSize() const;\n\n  static constexpr double kUnlimitedModelSize = -1.0;\n};\n} // namespace fasttext\n"
  },
  {
    "path": "src/autotune.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"autotune.h\"\n\n#include <algorithm>\n#include <csignal>\n#include <functional>\n#include <iomanip>\n#include <iostream>\n#include <random>\n#include <thread>\n\n#define LOG_VAL(name, val)                        \\\n  if (autotuneArgs.verbose > 2) {                 \\\n    std::cout << #name \" = \" << val << std::endl; \\\n  }\n#define LOG_VAL_NAN(name, val)                      \\\n  if (autotuneArgs.verbose > 2) {                   \\\n    if (std::isnan(val)) {                          \\\n      std::cout << #name \" = NaN\" << std::endl;     \\\n    } else {                                        \\\n      std::cout << #name \" = \" << val << std::endl; \\\n    }                                               \\\n  }\n\nnamespace {\n\nstd::function<void()> interruptSignalHandler;\n\nvoid signalHandler(int signal) {\n  if (signal == SIGINT) {\n    interruptSignalHandler();\n  }\n}\n\nclass ElapsedTimeMarker {\n  std::chrono::steady_clock::time_point start_;\n\n public:\n  ElapsedTimeMarker() {\n    start_ = std::chrono::steady_clock::now();\n  }\n  double getElapsed() {\n    return fasttext::utils::getDuration(\n        start_, std::chrono::steady_clock::now());\n  }\n};\n\n} // namespace\n\nnamespace fasttext {\n\nconstexpr double kUnknownBestScore = -1.0;\nconstexpr int kCutoffLimit = 256;\n\ntemplate <typename T>\nT getArgGauss(\n    T val,\n    std::minstd_rand& rng,\n    double startSigma,\n    double endSigma,\n    double t,\n    bool linear) {\n  T returnValue;\n  const double stddev = startSigma -\n      ((startSigma - endSigma) / 0.5) *\n          std::min(0.5, std::max((t - 0.25), 0.0));\n\n  std::normal_distribution<double> normal(0.0, stddev);\n\n  const double coeff = normal(rng);\n  double updateCoeff = 0.0;\n\n  if (linear) {\n    updateCoeff = coeff;\n    returnValue = static_cast<T>(updateCoeff + val);\n  } else {\n    updateCoeff = std::pow(2.0, coeff);\n    returnValue = static_cast<T>(updateCoeff * val);\n  }\n\n  return returnValue;\n}\n\ntemplate <typename T>\nT updateArgGauss(\n    T val,\n    T min,\n    T max,\n    double startSigma,\n    double endSigma,\n    double t,\n    bool linear,\n    std::minstd_rand& rng) {\n  T retVal = getArgGauss(val, rng, startSigma, endSigma, t, linear);\n  if (retVal > max) {\n    retVal = max;\n  }\n  if (retVal < min) {\n    retVal = min;\n  }\n  return retVal;\n}\n\nAutotuneStrategy::AutotuneStrategy(\n    const Args& originalArgs,\n    std::minstd_rand::result_type seed)\n    : bestArgs_(),\n      maxDuration_(originalArgs.autotuneDuration),\n      rng_(seed),\n      trials_(0),\n      bestMinnIndex_(0),\n      bestDsubExponent_(1),\n      bestNonzeroBucket_(2000000),\n      originalBucket_(originalArgs.bucket) {\n  minnChoices_ = {0, 2, 3};\n  updateBest(originalArgs);\n}\n\nArgs AutotuneStrategy::ask(double elapsed) {\n  const double t = std::min(1.0, elapsed / maxDuration_);\n  trials_++;\n\n  if (trials_ == 1) {\n    return bestArgs_;\n  }\n\n  Args args = bestArgs_;\n\n  if (!args.isManual(\"epoch\")) {\n    args.epoch = updateArgGauss(args.epoch, 1, 100, 2.8, 2.5, t, false, rng_);\n  }\n  if (!args.isManual(\"lr\")) {\n    args.lr = updateArgGauss(args.lr, 0.01, 5.0, 1.9, 1.0, t, false, rng_);\n  };\n  if (!args.isManual(\"dim\")) {\n    args.dim = updateArgGauss(args.dim, 1, 1000, 1.4, 0.3, t, false, rng_);\n  }\n  if (!args.isManual(\"wordNgrams\")) {\n    args.wordNgrams =\n        updateArgGauss(args.wordNgrams, 1, 5, 4.3, 2.4, t, true, rng_);\n  }\n  if (!args.isManual(\"dsub\")) {\n    int dsubExponent =\n        updateArgGauss(bestDsubExponent_, 1, 4, 2.0, 1.0, t, true, rng_);\n    args.dsub = (1 << dsubExponent);\n  }\n  if (!args.isManual(\"minn\")) {\n    int minnIndex = updateArgGauss(\n        bestMinnIndex_,\n        0,\n        static_cast<int>(minnChoices_.size() - 1),\n        4.0,\n        1.4,\n        t,\n        true,\n        rng_);\n    args.minn = minnChoices_[minnIndex];\n  }\n  if (!args.isManual(\"maxn\")) {\n    if (args.minn == 0) {\n      args.maxn = 0;\n    } else {\n      args.maxn = args.minn + 3;\n    }\n  }\n  if (!args.isManual(\"bucket\")) {\n    int nonZeroBucket = updateArgGauss(\n        bestNonzeroBucket_, 10000, 10000000, 2.0, 1.5, t, false, rng_);\n    args.bucket = nonZeroBucket;\n  } else {\n    args.bucket = originalBucket_;\n  }\n  if (args.wordNgrams <= 1 && args.maxn == 0) {\n    args.bucket = 0;\n  }\n  if (!args.isManual(\"loss\")) {\n    args.loss = loss_name::softmax;\n  }\n\n  return args;\n}\n\nint AutotuneStrategy::getIndex(int val, const std::vector<int>& choices) {\n  auto found = std::find(choices.begin(), choices.end(), val);\n  int ind = 0;\n  if (found != choices.end()) {\n    ind = std::distance(choices.begin(), found);\n  }\n  return ind;\n}\n\nvoid AutotuneStrategy::updateBest(const Args& args) {\n  bestArgs_ = args;\n  bestMinnIndex_ = getIndex(args.minn, minnChoices_);\n  bestDsubExponent_ = log2(args.dsub);\n  if (args.bucket != 0) {\n    bestNonzeroBucket_ = args.bucket;\n  }\n}\n\nAutotune::Autotune(const std::shared_ptr<FastText>& fastText)\n    : fastText_(fastText),\n      elapsed_(0.),\n      bestScore_(0.),\n      trials_(0),\n      sizeConstraintFailed_(0),\n      continueTraining_(false),\n      strategy_(),\n      timer_() {}\n\nvoid Autotune::printInfo(double maxDuration) {\n  double progress = elapsed_ * 100 / maxDuration;\n  progress = std::min(progress, 100.0);\n\n  std::cerr << \"\\r\";\n  std::cerr << std::fixed;\n  std::cerr << \"Progress: \";\n  std::cerr << std::setprecision(1) << std::setw(5) << progress << \"%\";\n  std::cerr << \" Trials: \" << std::setw(4) << trials_;\n  std::cerr << \" Best score: \" << std::setw(9) << std::setprecision(6);\n  if (bestScore_ == kUnknownBestScore) {\n    std::cerr << \"unknown\";\n  } else {\n    std::cerr << bestScore_;\n  }\n  std::cerr << \" ETA: \"\n            << utils::ClockPrint(std::max(maxDuration - elapsed_, 0.0));\n  std::cerr << std::flush;\n}\n\nvoid Autotune::timer(\n    const std::chrono::steady_clock::time_point& start,\n    double maxDuration) {\n  elapsed_ = 0.0;\n  while (keepTraining(maxDuration)) {\n    std::this_thread::sleep_for(std::chrono::milliseconds(500));\n    elapsed_ = utils::getDuration(start, std::chrono::steady_clock::now());\n    printInfo(maxDuration);\n  }\n  abort();\n}\n\nbool Autotune::keepTraining(double maxDuration) const {\n  return continueTraining_ && elapsed_ < maxDuration;\n}\n\nvoid Autotune::abort() {\n  if (continueTraining_) {\n    continueTraining_ = false;\n    fastText_->abort();\n  }\n}\n\nvoid Autotune::startTimer(const Args& args) {\n  std::chrono::steady_clock::time_point start =\n      std::chrono::steady_clock::now();\n  timer_ = std::thread([=]() { timer(start, args.autotuneDuration); });\n  bestScore_ = kUnknownBestScore;\n  trials_ = 0;\n  continueTraining_ = true;\n\n  auto previousSignalHandler = std::signal(SIGINT, signalHandler);\n  interruptSignalHandler = [&]() {\n    std::signal(SIGINT, previousSignalHandler);\n    std::cerr << std::endl << \"Aborting autotune...\" << std::endl;\n    abort();\n  };\n}\n\ndouble Autotune::getMetricScore(\n    Meter& meter,\n    const metric_name& metricName,\n    const double metricValue,\n    const std::string& metricLabel) const {\n  double score = 0.0;\n  int32_t labelId = -1;\n  if (!metricLabel.empty()) {\n    labelId = fastText_->getLabelId(metricLabel);\n    if (labelId == -1) {\n      throw std::runtime_error(\"Unknown autotune metric label\");\n    }\n  }\n  if (metricName == metric_name::f1score) {\n    score = meter.f1Score();\n  } else if (metricName == metric_name::f1scoreLabel) {\n    score = meter.f1Score(labelId);\n  } else if (metricName == metric_name::precisionAtRecall) {\n    score = meter.precisionAtRecall(metricValue);\n  } else if (metricName == metric_name::precisionAtRecallLabel) {\n    score = meter.precisionAtRecall(labelId, metricValue);\n  } else if (metricName == metric_name::recallAtPrecision) {\n    score = meter.recallAtPrecision(metricValue);\n  } else if (metricName == metric_name::recallAtPrecisionLabel) {\n    score = meter.recallAtPrecision(labelId, metricValue);\n  } else {\n    throw std::runtime_error(\"Unknown metric\");\n  }\n  return score;\n}\n\nvoid Autotune::printArgs(const Args& args, const Args& autotuneArgs) {\n  LOG_VAL(epoch, args.epoch)\n  LOG_VAL(lr, args.lr)\n  LOG_VAL(dim, args.dim)\n  LOG_VAL(minCount, args.minCount)\n  LOG_VAL(wordNgrams, args.wordNgrams)\n  LOG_VAL(minn, args.minn)\n  LOG_VAL(maxn, args.maxn)\n  LOG_VAL(bucket, args.bucket)\n  LOG_VAL(dsub, args.dsub)\n  LOG_VAL(loss, args.lossToString(args.loss))\n}\n\nint Autotune::getCutoffForFileSize(\n    bool qout,\n    bool qnorm,\n    int dsub,\n    int64_t fileSize) const {\n  int64_t outModelSize = 0;\n  const int64_t outM = fastText_->getOutputMatrix()->size(0);\n  const int64_t outN = fastText_->getOutputMatrix()->size(1);\n  if (qout) {\n    const int64_t outputPqSize = 16 + 4 * (outN * (1 << 8));\n    outModelSize =\n        21 + (outM * ((outN + 2 - 1) / 2)) + outputPqSize + (qnorm ? outM : 0);\n  } else {\n    outModelSize = 16 + 4 * (outM * outN);\n  }\n  const int64_t dim = fastText_->getInputMatrix()->size(1);\n\n  int target = (fileSize - (107) - 4 * (1 << 8) * dim - outModelSize);\n  int cutoff = target / ((dim + dsub - 1) / dsub + (qnorm ? 1 : 0) + 10);\n\n  return std::max(cutoff, kCutoffLimit);\n}\n\nbool Autotune::quantize(Args& args, const Args& autotuneArgs) {\n  if (autotuneArgs.getAutotuneModelSize() == Args::kUnlimitedModelSize) {\n    return true;\n  }\n  auto outputSize = fastText_->getOutputMatrix()->size(0);\n\n  args.qnorm = true;\n  args.qout = (outputSize >= kCutoffLimit);\n  args.retrain = true;\n  args.cutoff = getCutoffForFileSize(\n      args.qout, args.qnorm, args.dsub, autotuneArgs.getAutotuneModelSize());\n  LOG_VAL(cutoff, args.cutoff);\n  if (args.cutoff == kCutoffLimit) {\n    return false;\n  }\n  fastText_->quantize(args);\n\n  return true;\n}\n\nvoid Autotune::printSkippedArgs(const Args& autotuneArgs) {\n  std::unordered_set<std::string> argsToCheck = {\"epoch\",\n                                                 \"lr\",\n                                                 \"dim\",\n                                                 \"wordNgrams\",\n                                                 \"loss\",\n                                                 \"bucket\",\n                                                 \"minn\",\n                                                 \"maxn\",\n                                                 \"dsub\"};\n  for (const auto& arg : argsToCheck) {\n    if (autotuneArgs.isManual(arg)) {\n      std::cerr << \"Warning : \" << arg\n                << \" is manually set to a specific value. \"\n                << \"It will not be automatically optimized.\" << std::endl;\n    }\n  }\n}\n\nvoid Autotune::train(const Args& autotuneArgs) {\n  std::ifstream validationFileStream(autotuneArgs.autotuneValidationFile);\n  if (!validationFileStream.is_open()) {\n    throw std::invalid_argument(\"Validation file cannot be opened!\");\n  }\n  printSkippedArgs(autotuneArgs);\n\n  bool sizeConstraintWarning = false;\n  int verbose = autotuneArgs.verbose;\n  Args bestTrainArgs(autotuneArgs);\n  Args trainArgs(autotuneArgs);\n  trainArgs.verbose = 0;\n  strategy_ = std::unique_ptr<AutotuneStrategy>(\n      new AutotuneStrategy(trainArgs, autotuneArgs.seed));\n  startTimer(autotuneArgs);\n\n  while (keepTraining(autotuneArgs.autotuneDuration)) {\n    trials_++;\n\n    trainArgs = strategy_->ask(elapsed_);\n    LOG_VAL(Trial, trials_)\n    printArgs(trainArgs, autotuneArgs);\n    ElapsedTimeMarker elapsedTimeMarker;\n    double currentScore = std::numeric_limits<double>::quiet_NaN();\n    try {\n      fastText_->train(trainArgs);\n      bool sizeConstraintOK = quantize(trainArgs, autotuneArgs);\n      if (sizeConstraintOK) {\n        const auto& metricLabel = autotuneArgs.getAutotuneMetricLabel();\n        Meter meter(!metricLabel.empty());\n        fastText_->test(\n            validationFileStream, autotuneArgs.autotunePredictions, 0.0, meter);\n\n        currentScore = getMetricScore(\n            meter,\n            autotuneArgs.getAutotuneMetric(),\n            autotuneArgs.getAutotuneMetricValue(),\n            metricLabel);\n\n        if (bestScore_ == kUnknownBestScore || (currentScore > bestScore_)) {\n          bestTrainArgs = trainArgs;\n          bestScore_ = currentScore;\n          strategy_->updateBest(bestTrainArgs);\n        }\n      } else {\n        sizeConstraintFailed_++;\n        if (!sizeConstraintWarning && trials_ > 10 &&\n            sizeConstraintFailed_ > (trials_ / 2)) {\n          sizeConstraintWarning = true;\n          std::cerr << std::endl\n                    << \"Warning : requested model size is probably too small. \"\n                       \"You may want to increase `autotune-modelsize`.\"\n                    << std::endl;\n        }\n      }\n    } catch (DenseMatrix::EncounteredNaNError&) {\n      // ignore diverging loss and go on\n    } catch (std::bad_alloc&) {\n      // ignore parameter samples asking too much memory\n    } catch (TimeoutError&) {\n      break;\n    } catch (FastText::AbortError&) {\n      break;\n    }\n    LOG_VAL_NAN(currentScore, currentScore)\n    LOG_VAL(train took, elapsedTimeMarker.getElapsed())\n  }\n  if (timer_.joinable()) {\n    timer_.join();\n  }\n\n  if (bestScore_ == kUnknownBestScore) {\n    std::string errorMessage;\n    if (sizeConstraintWarning) {\n      errorMessage =\n          \"Couldn't fulfil model size constraint: please increase \"\n          \"`autotune-modelsize`.\";\n    } else {\n      errorMessage =\n          \"Didn't have enough time to train once: please increase \"\n          \"`autotune-duration`.\";\n    }\n    throw std::runtime_error(errorMessage);\n  } else {\n    std::cerr << std::endl;\n    std::cerr << \"Training again with best arguments\" << std::endl;\n    bestTrainArgs.verbose = verbose;\n    LOG_VAL(Best selected args, 0)\n    printArgs(bestTrainArgs, autotuneArgs);\n    fastText_->train(bestTrainArgs);\n    quantize(bestTrainArgs, autotuneArgs);\n  }\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/autotune.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <istream>\n#include <memory>\n#include <random>\n#include <thread>\n#include <vector>\n\n#include \"args.h\"\n#include \"fasttext.h\"\n\nnamespace fasttext {\n\nclass AutotuneStrategy {\n private:\n  Args bestArgs_;\n  int maxDuration_;\n  std::minstd_rand rng_;\n  int trials_;\n  int bestMinnIndex_;\n  int bestDsubExponent_;\n  int bestNonzeroBucket_;\n  int originalBucket_;\n  std::vector<int> minnChoices_;\n  int getIndex(int val, const std::vector<int>& choices);\n\n public:\n  explicit AutotuneStrategy(\n      const Args& args,\n      std::minstd_rand::result_type seed);\n  Args ask(double elapsed);\n  void updateBest(const Args& args);\n};\n\nclass Autotune {\n protected:\n  std::shared_ptr<FastText> fastText_;\n  double elapsed_;\n  double bestScore_;\n  int32_t trials_;\n  int32_t sizeConstraintFailed_;\n  std::atomic<bool> continueTraining_;\n  std::unique_ptr<AutotuneStrategy> strategy_;\n  std::thread timer_;\n\n  bool keepTraining(double maxDuration) const;\n  void printInfo(double maxDuration);\n  void timer(\n      const std::chrono::steady_clock::time_point& start,\n      double maxDuration);\n  void abort();\n  void startTimer(const Args& args);\n  double getMetricScore(\n      Meter& meter,\n      const metric_name& metricName,\n      const double metricValue,\n      const std::string& metricLabel) const;\n  void printArgs(const Args& args, const Args& autotuneArgs);\n  void printSkippedArgs(const Args& autotuneArgs);\n  bool quantize(Args& args, const Args& autotuneArgs);\n  int getCutoffForFileSize(bool qout, bool qnorm, int dsub, int64_t fileSize)\n      const;\n\n  class TimeoutError : public std::runtime_error {\n   public:\n    TimeoutError() : std::runtime_error(\"Autotune timed out.\") {}\n  };\n\n public:\n  Autotune() = delete;\n  explicit Autotune(const std::shared_ptr<FastText>& fastText);\n  Autotune(const Autotune&) = delete;\n  Autotune(Autotune&&) = delete;\n  Autotune& operator=(const Autotune&) = delete;\n  Autotune& operator=(Autotune&&) = delete;\n  ~Autotune() noexcept = default;\n\n  void train(const Args& args);\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/densematrix.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"densematrix.h\"\n\n#include <random>\n#include <stdexcept>\n#include <thread>\n#include <utility>\n#include \"utils.h\"\n#include \"vector.h\"\n\n#if defined(__AVX512F__) || defined(__AVX__) || defined(__SSE__)\n#include <immintrin.h>\n#endif\n\nnamespace fasttext {\n\nDenseMatrix::DenseMatrix() : DenseMatrix(0, 0) {}\n\nDenseMatrix::DenseMatrix(int64_t m, int64_t n) : Matrix(m, n), data_(m * n) {}\n\nDenseMatrix::DenseMatrix(DenseMatrix&& other) noexcept\n    : Matrix(other.m_, other.n_), data_(std::move(other.data_)) {}\n\nDenseMatrix::DenseMatrix(int64_t m, int64_t n, real* dataPtr)\n    : Matrix(m, n), data_(dataPtr, dataPtr + (m * n)) {}\n\nvoid DenseMatrix::zero() {\n  std::fill(data_.begin(), data_.end(), 0.0);\n}\n\nvoid DenseMatrix::uniformThread(real a, int block, int32_t seed) {\n  std::minstd_rand rng(block + seed);\n  std::uniform_real_distribution<> uniform(-a, a);\n  int64_t blockSize = (m_ * n_) / 10;\n  for (int64_t i = blockSize * block;\n       i < (m_ * n_) && i < blockSize * (block + 1);\n       i++) {\n    data_[i] = uniform(rng);\n  }\n}\n\nvoid DenseMatrix::uniform(real a, unsigned int thread, int32_t seed) {\n  if (thread > 1) {\n    std::vector<std::thread> threads;\n    for (int i = 0; i < thread; i++) {\n      threads.push_back(std::thread([=]() { uniformThread(a, i, seed); }));\n    }\n    for (int32_t i = 0; i < threads.size(); i++) {\n      threads[i].join();\n    }\n  } else {\n    // webassembly can't instantiate `std::thread`\n    uniformThread(a, 0, seed);\n  }\n}\n\nvoid DenseMatrix::multiplyRow(const Vector& nums, int64_t ib, int64_t ie) {\n  if (ie == -1) {\n    ie = m_;\n  }\n  assert(ie <= nums.size());\n  for (auto i = ib; i < ie; i++) {\n    real n = nums[i - ib];\n    if (n != 0) {\n      for (auto j = 0; j < n_; j++) {\n        at(i, j) *= n;\n      }\n    }\n  }\n}\n\nvoid DenseMatrix::divideRow(const Vector& denoms, int64_t ib, int64_t ie) {\n  if (ie == -1) {\n    ie = m_;\n  }\n  assert(ie <= denoms.size());\n  for (auto i = ib; i < ie; i++) {\n    real n = denoms[i - ib];\n    if (n != 0) {\n      for (auto j = 0; j < n_; j++) {\n        at(i, j) /= n;\n      }\n    }\n  }\n}\n\nreal DenseMatrix::l2NormRow(int64_t i) const {\n  auto norm = 0.0;\n  for (auto j = 0; j < n_; j++) {\n    norm += at(i, j) * at(i, j);\n  }\n  if (std::isnan(norm)) {\n    throw EncounteredNaNError();\n  }\n  return std::sqrt(norm);\n}\n\nvoid DenseMatrix::l2NormRow(Vector& norms) const {\n  assert(norms.size() == m_);\n  for (auto i = 0; i < m_; i++) {\n    norms[i] = l2NormRow(i);\n  }\n}\n\nreal DenseMatrix::dotRow(const Vector& vec, int64_t i) const {\n  assert(i >= 0);\n  assert(i < m_);\n  assert(vec.size() == n_);\n  real d = 0.0;\n  for (int64_t j = 0; j < n_; j++) {\n    d += at(i, j) * vec[j];\n  }\n  if (std::isnan(d)) {\n    throw EncounteredNaNError();\n  }\n  return d;\n}\n\nvoid DenseMatrix::addVectorToRow(const Vector& vec, int64_t i, real a) {\n  assert(i >= 0);\n  assert(i < m_);\n  assert(vec.size() == n_);\n  for (int64_t j = 0; j < n_; j++) {\n    data_[i * n_ + j] += a * vec[j];\n  }\n}\n\nvoid DenseMatrix::addRowToVector(Vector& x, int32_t i) const {\n  assert(i >= 0);\n  assert(i < this->size(0));\n  assert(x.size() == this->size(1));\n  for (int64_t j = 0; j < n_; j++) {\n    x[j] += at(i, j);\n  }\n}\n\nvoid DenseMatrix::addRowToVector(Vector& x, int32_t i, real a) const {\n  assert(i >= 0);\n  assert(i < this->size(0));\n  assert(x.size() == this->size(1));\n  for (int64_t j = 0; j < n_; j++) {\n    x[j] += a * at(i, j);\n  }\n}\n\n/* Abstract over AVX512F, AVX, and SSE intrinsics, using the one available on this machine. */\n#if defined(__AVX512F__)\nusing Register = __m512;\ninline Register Add(Register first, Register second) { return _mm512_add_ps(first, second); }\ninline Register Set1(float to) { return _mm512_set1_ps(to); }\ninline Register Multiply(Register first, Register second) { return _mm512_mul_ps(first, second); }\n#elif defined(__AVX__)\nusing Register = __m256;\ninline Register Add(Register first, Register second) { return _mm256_add_ps(first, second); }\ninline Register Set1(float to) { return _mm256_set1_ps(to); }\ninline Register Multiply(Register first, Register second) { return _mm256_mul_ps(first, second); }\n#elif defined(__SSE__)\nusing Register = __m128;\ninline Register Add(Register first, Register second) { return _mm_add_ps(first, second); }\ninline Register Set1(float to) { return _mm_set1_ps(to); }\ninline Register Multiply(Register first, Register second) { return _mm_mul_ps(first, second); }\n#endif\n\n/* Faster routine for averaging rows of a matrix on x86.\n * The idea here is to keep the accumulators in registers if possible. */\n#if defined(__AVX512F__) || defined(__AVX__) || defined(__SSE__)\ntemplate <unsigned Cols> void averageRowsFast(Vector& x, const std::vector<int32_t>& rows, const DenseMatrix &matrix) {\n  // Columns must be a multiple of how many floats fit in a register.\n  static_assert(Cols % (sizeof(Register) / 4) == 0);\n  constexpr unsigned RegisterCount = Cols / (sizeof(Register) / 4);\n  // These should be aligned by aligned.h\n  assert(reinterpret_cast<uintptr_t>(x.data()) % sizeof(Register) == 0);\n  assert(reinterpret_cast<uintptr_t>(matrix.data()) % sizeof(Register) == 0);\n\n  // Guard against empty list of rows with default NaN behavior.\n  if (rows.empty()) {\n    x.zero();\n    x.mul(1.0 / rows.size());\n    return;\n  }\n\n  // Copy the first row to accumulation registers.\n  Register accum[RegisterCount];\n  auto row = rows.cbegin();\n  const Register *base = reinterpret_cast<const Register*>(matrix.data() + matrix.cols() * *row);\n  for (unsigned i = 0; i < RegisterCount; ++i) {\n    accum[i] = base[i];\n  }\n  // Add the rows after the first.\n  for (++row; row != rows.cend(); ++row) {\n    base = reinterpret_cast<const Register*>(matrix.data() + matrix.cols() * *row);\n    for (unsigned i = 0; i < RegisterCount; ++i) {\n      accum[i] = Add(accum[i], base[i]);\n    }\n  }\n  // Multiply by (1.0 / rows.size()) and write to x.\n  Register mul = Set1(1.0 / rows.size());\n  for (unsigned i = 0; i < RegisterCount; ++i) {\n    reinterpret_cast<Register*>(x.data())[i] = Multiply(accum[i], mul);\n  }\n}\n#endif\n\nvoid DenseMatrix::averageRowsToVector(Vector& x, const std::vector<int32_t>& rows) const {\n#if defined(__AVX512F__) || defined(__AVX__) || defined(__SSE__)\n  switch (cols()) {\n    case 512:\n      // Maximum number that can fit all in registers on AVX512F.\n      averageRowsFast<512>(x, rows, *this);\n      return;\n    case 256:\n      averageRowsFast<256>(x, rows, *this);\n      return;\n    case 64:\n      averageRowsFast<64>(x, rows, *this);\n      return;\n    case 32:\n      averageRowsFast<32>(x, rows, *this);\n      return;\n    case 16:\n      averageRowsFast<16>(x, rows, *this);\n      return;\n  }\n#endif\n  x.zero();\n  for (auto it = rows.cbegin(); it != rows.cend(); ++it) {\n    addRowToVector(x, *it);\n  }\n  x.mul(1.0 / rows.size());\n}\n\nvoid DenseMatrix::save(std::ostream& out) const {\n  out.write((char*)&m_, sizeof(int64_t));\n  out.write((char*)&n_, sizeof(int64_t));\n  out.write((char*)data_.data(), m_ * n_ * sizeof(real));\n}\n\nvoid DenseMatrix::load(std::istream& in) {\n  in.read((char*)&m_, sizeof(int64_t));\n  in.read((char*)&n_, sizeof(int64_t));\n  data_ = intgemm::AlignedVector<real>(m_ * n_);\n  in.read((char*)data_.data(), m_ * n_ * sizeof(real));\n}\n\nvoid DenseMatrix::dump(std::ostream& out) const {\n  out << m_ << \" \" << n_ << std::endl;\n  for (int64_t i = 0; i < m_; i++) {\n    for (int64_t j = 0; j < n_; j++) {\n      if (j > 0) {\n        out << \" \";\n      }\n      out << at(i, j);\n    }\n    out << std::endl;\n  }\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/densematrix.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <assert.h>\n#include <cstdint>\n#include <istream>\n#include <ostream>\n#include <stdexcept>\n#include <vector>\n\n#include \"aligned.h\"\n#include \"matrix.h\"\n#include \"real.h\"\n\nnamespace fasttext {\n\nclass Vector;\n\nclass DenseMatrix : public Matrix {\n protected:\n  intgemm::AlignedVector<real> data_;\n  void uniformThread(real, int, int32_t);\n\n public:\n  DenseMatrix();\n  explicit DenseMatrix(int64_t, int64_t);\n  explicit DenseMatrix(int64_t m, int64_t n, real* dataPtr);\n  DenseMatrix(const DenseMatrix&) = default;\n  DenseMatrix(DenseMatrix&&) noexcept;\n  DenseMatrix& operator=(const DenseMatrix&) = delete;\n  DenseMatrix& operator=(DenseMatrix&&) = delete;\n  virtual ~DenseMatrix() noexcept override = default;\n\n  inline real* data() {\n    return data_.data();\n  }\n  inline const real* data() const {\n    return data_.data();\n  }\n\n  inline const real& at(int64_t i, int64_t j) const {\n    assert(i * n_ + j < data_.size());\n    return data_[i * n_ + j];\n  };\n  inline real& at(int64_t i, int64_t j) {\n    return data_[i * n_ + j];\n  };\n\n  inline int64_t rows() const {\n    return m_;\n  }\n  inline int64_t cols() const {\n    return n_;\n  }\n  void zero();\n  void uniform(real, unsigned int, int32_t);\n\n  void multiplyRow(const Vector& nums, int64_t ib = 0, int64_t ie = -1);\n  void divideRow(const Vector& denoms, int64_t ib = 0, int64_t ie = -1);\n\n  real l2NormRow(int64_t i) const;\n  void l2NormRow(Vector& norms) const;\n\n  real dotRow(const Vector&, int64_t) const override;\n  void addVectorToRow(const Vector&, int64_t, real) override;\n  void addRowToVector(Vector& x, int32_t i) const override;\n  void addRowToVector(Vector& x, int32_t i, real a) const override;\n  void averageRowsToVector(Vector& x, const std::vector<int32_t>& rows) const override;\n  void save(std::ostream&) const override;\n  void load(std::istream&) override;\n  void dump(std::ostream&) const override;\n\n  class EncounteredNaNError : public std::runtime_error {\n   public:\n    EncounteredNaNError() : std::runtime_error(\"Encountered NaN.\") {}\n  };\n};\n} // namespace fasttext\n"
  },
  {
    "path": "src/dictionary.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"dictionary.h\"\n\n#include <assert.h>\n\n#include <algorithm>\n#include <cmath>\n#include <fstream>\n#include <iostream>\n#include <iterator>\n#include <stdexcept>\n\nnamespace fasttext {\n\nconst std::string Dictionary::EOS = \"</s>\";\nconst std::string Dictionary::BOW = \"<\";\nconst std::string Dictionary::EOW = \">\";\n\nDictionary::Dictionary(std::shared_ptr<Args> args)\n    : args_(args),\n      word2int_(MAX_VOCAB_SIZE, -1),\n      size_(0),\n      nwords_(0),\n      nlabels_(0),\n      ntokens_(0),\n      pruneidx_size_(-1) {}\n\nDictionary::Dictionary(std::shared_ptr<Args> args, std::istream& in)\n    : args_(args),\n      size_(0),\n      nwords_(0),\n      nlabels_(0),\n      ntokens_(0),\n      pruneidx_size_(-1) {\n  load(in);\n}\n\nint32_t Dictionary::find(const std::string_view w) const {\n  return find(w, hash(w));\n}\n\nint32_t Dictionary::find(const std::string_view w, uint32_t h) const {\n  int32_t word2intsize = word2int_.size();\n  int32_t id = h % word2intsize;\n  while (word2int_[id] != -1 && words_[word2int_[id]].word != w) {\n    id = (id + 1) % word2intsize;\n  }\n  return id;\n}\n\nvoid Dictionary::add(const std::string& w) {\n  int32_t h = find(w);\n  ntokens_++;\n  if (word2int_[h] == -1) {\n    entry e;\n    e.word = w;\n    e.count = 1;\n    e.type = getType(w);\n    words_.push_back(e);\n    word2int_[h] = size_++;\n  } else {\n    words_[word2int_[h]].count++;\n  }\n}\n\nint32_t Dictionary::nwords() const {\n  return nwords_;\n}\n\nint32_t Dictionary::nlabels() const {\n  return nlabels_;\n}\n\nint64_t Dictionary::ntokens() const {\n  return ntokens_;\n}\n\nconst std::vector<int32_t>& Dictionary::getSubwords(int32_t i) const {\n  assert(i >= 0);\n  assert(i < nwords_);\n  return words_[i].subwords;\n}\n\nconst std::vector<int32_t> Dictionary::getSubwords(\n    const std::string& word) const {\n  int32_t i = getId(word);\n  if (i >= 0) {\n    return getSubwords(i);\n  }\n  std::vector<int32_t> ngrams;\n  if (word != EOS) {\n    computeSubwords(BOW + word + EOW, ngrams);\n  }\n  return ngrams;\n}\n\nvoid Dictionary::getSubwords(\n    const std::string& word,\n    std::vector<int32_t>& ngrams,\n    std::vector<std::string>& substrings) const {\n  int32_t i = getId(word);\n  ngrams.clear();\n  substrings.clear();\n  if (i >= 0) {\n    ngrams.push_back(i);\n    substrings.push_back(words_[i].word);\n  }\n  if (word != EOS) {\n    computeSubwords(BOW + word + EOW, ngrams, &substrings);\n  }\n}\n\nbool Dictionary::discard(int32_t id, real rand) const {\n  assert(id >= 0);\n  assert(id < nwords_);\n  if (args_->model == model_name::sup) {\n    return false;\n  }\n  return rand > pdiscard_[id];\n}\n\nint32_t Dictionary::getId(const std::string_view w, uint32_t h) const {\n  int32_t id = find(w, h);\n  return word2int_[id];\n}\n\nint32_t Dictionary::getId(const std::string_view w) const {\n  int32_t h = find(w);\n  return word2int_[h];\n}\n\nentry_type Dictionary::getType(int32_t id) const {\n  assert(id >= 0);\n  assert(id < size_);\n  return words_[id].type;\n}\n\nentry_type Dictionary::getType(const std::string_view w) const {\n  return (w.find(args_->label) == 0) ? entry_type::label : entry_type::word;\n}\n\nstd::string Dictionary::getWord(int32_t id) const {\n  assert(id >= 0);\n  assert(id < size_);\n  return words_[id].word;\n}\n\n// The correct implementation of fnv should be:\n// h = h ^ uint32_t(uint8_t(str[i]));\n// Unfortunately, earlier version of fasttext used\n// h = h ^ uint32_t(str[i]);\n// which is undefined behavior (as char can be signed or unsigned).\n// Since all fasttext models that were already released were trained\n// using signed char, we fixed the hash function to make models\n// compatible whatever compiler is used.\nuint32_t Dictionary::hash(const std::string_view str) const {\n  uint32_t h = 2166136261;\n  for (size_t i = 0; i < str.size(); i++) {\n    h = h ^ uint32_t(int8_t(str[i]));\n    h = h * 16777619;\n  }\n  return h;\n}\n\nvoid Dictionary::computeSubwords(\n    const std::string& word,\n    std::vector<int32_t>& ngrams,\n    std::vector<std::string>* substrings) const {\n  for (size_t i = 0; i < word.size(); i++) {\n    std::string ngram;\n    if ((word[i] & 0xC0) == 0x80) {\n      continue;\n    }\n    for (size_t j = i, n = 1; j < word.size() && n <= args_->maxn; n++) {\n      ngram.push_back(word[j++]);\n      while (j < word.size() && (word[j] & 0xC0) == 0x80) {\n        ngram.push_back(word[j++]);\n      }\n      if (n >= args_->minn && !(n == 1 && (i == 0 || j == word.size()))) {\n        int32_t h = hash(ngram) % args_->bucket;\n        pushHash(ngrams, h);\n        if (substrings) {\n          substrings->push_back(ngram);\n        }\n      }\n    }\n  }\n}\n\nvoid Dictionary::initNgrams() {\n  for (size_t i = 0; i < size_; i++) {\n    std::string word = BOW + words_[i].word + EOW;\n    words_[i].subwords.clear();\n    words_[i].subwords.push_back(i);\n    if (words_[i].word != EOS) {\n      computeSubwords(word, words_[i].subwords);\n    }\n  }\n}\n\nbool Dictionary::readWord(std::istream& in, std::string& word) const {\n  int c;\n  std::streambuf& sb = *in.rdbuf();\n  word.clear();\n  while ((c = sb.sbumpc()) != EOF) {\n    if (c == ' ' || c == '\\n' || c == '\\r' || c == '\\t' || c == '\\v' ||\n        c == '\\f' || c == '\\0') {\n      if (word.empty()) {\n        if (c == '\\n') {\n          word += EOS;\n          return true;\n        }\n        continue;\n      } else {\n        if (c == '\\n')\n          sb.sungetc();\n        return true;\n      }\n    }\n    word.push_back(c);\n  }\n  // trigger eofbit\n  in.get();\n  return !word.empty();\n}\n\nvoid Dictionary::readFromFile(std::istream& in) {\n  std::string word;\n  int64_t minThreshold = 1;\n  while (readWord(in, word)) {\n    add(word);\n    if (ntokens_ % 1000000 == 0 && args_->verbose > 1) {\n      std::cerr << \"\\rRead \" << ntokens_ / 1000000 << \"M words\" << std::flush;\n    }\n    if (size_ > 0.75 * MAX_VOCAB_SIZE) {\n      minThreshold++;\n      threshold(minThreshold, minThreshold);\n    }\n  }\n  threshold(args_->minCount, args_->minCountLabel);\n  initTableDiscard();\n  initNgrams();\n  if (args_->verbose > 0) {\n    std::cerr << \"\\rRead \" << ntokens_ / 1000000 << \"M words\" << std::endl;\n    std::cerr << \"Number of words:  \" << nwords_ << std::endl;\n    std::cerr << \"Number of labels: \" << nlabels_ << std::endl;\n  }\n  if (size_ == 0) {\n    throw std::invalid_argument(\n        \"Empty vocabulary. Try a smaller -minCount value.\");\n  }\n}\n\nvoid Dictionary::threshold(int64_t t, int64_t tl) {\n  sort(words_.begin(), words_.end(), [](const entry& e1, const entry& e2) {\n    if (e1.type != e2.type) {\n      return e1.type < e2.type;\n    }\n    return e1.count > e2.count;\n  });\n  words_.erase(\n      remove_if(\n          words_.begin(),\n          words_.end(),\n          [&](const entry& e) {\n            return (e.type == entry_type::word && e.count < t) ||\n                (e.type == entry_type::label && e.count < tl);\n          }),\n      words_.end());\n  words_.shrink_to_fit();\n  size_ = 0;\n  nwords_ = 0;\n  nlabels_ = 0;\n  std::fill(word2int_.begin(), word2int_.end(), -1);\n  for (auto it = words_.begin(); it != words_.end(); ++it) {\n    int32_t h = find(it->word);\n    word2int_[h] = size_++;\n    if (it->type == entry_type::word) {\n      nwords_++;\n    }\n    if (it->type == entry_type::label) {\n      nlabels_++;\n    }\n  }\n}\n\nvoid Dictionary::initTableDiscard() {\n  pdiscard_.resize(size_);\n  for (size_t i = 0; i < size_; i++) {\n    real f = real(words_[i].count) / real(ntokens_);\n    pdiscard_[i] = std::sqrt(args_->t / f) + args_->t / f;\n  }\n}\n\nstd::vector<int64_t> Dictionary::getCounts(entry_type type) const {\n  std::vector<int64_t> counts;\n  for (auto& w : words_) {\n    if (w.type == type) {\n      counts.push_back(w.count);\n    }\n  }\n  return counts;\n}\n\nvoid Dictionary::addWordNgrams(\n    std::vector<int32_t>& line,\n    const std::vector<int32_t>& hashes,\n    int32_t n) const {\n  for (int32_t i = 0; i < hashes.size(); i++) {\n    uint64_t h = hashes[i];\n    for (int32_t j = i + 1; j < hashes.size() && j < i + n; j++) {\n      h = h * 116049371 + hashes[j];\n      pushHash(line, h % args_->bucket);\n    }\n  }\n}\n\nvoid Dictionary::addSubwords(\n    std::vector<int32_t>& line,\n    const std::string_view token,\n    int32_t wid) const {\n  if (wid < 0) { // out of vocab\n    if (token != EOS) {\n      std::string concat;\n      concat.reserve(BOW.size() + token.size() + EOW.size());\n      concat += BOW;\n      concat.append(token.data(), token.size());\n      concat += EOW;\n      computeSubwords(concat, line);\n    }\n  } else {\n    if (args_->maxn <= 0) { // in vocab w/o subwords\n      line.push_back(wid);\n    } else { // in vocab w/ subwords\n      const std::vector<int32_t>& ngrams = getSubwords(wid);\n      line.insert(line.end(), ngrams.cbegin(), ngrams.cend());\n    }\n  }\n}\n\nvoid Dictionary::reset(std::istream& in) const {\n  if (in.eof()) {\n    in.clear();\n    in.seekg(std::streampos(0));\n  }\n}\n\nint32_t Dictionary::getLine(\n    std::istream& in,\n    std::vector<int32_t>& words,\n    std::minstd_rand& rng) const {\n  std::uniform_real_distribution<> uniform(0, 1);\n  std::string token;\n  int32_t ntokens = 0;\n\n  reset(in);\n  words.clear();\n  while (readWord(in, token)) {\n    int32_t h = find(token);\n    int32_t wid = word2int_[h];\n    if (wid < 0) {\n      continue;\n    }\n\n    ntokens++;\n    if (getType(wid) == entry_type::word && !discard(wid, uniform(rng))) {\n      words.push_back(wid);\n    }\n    if (ntokens > MAX_LINE_SIZE || token == EOS) {\n      break;\n    }\n  }\n  return ntokens;\n}\n\nint32_t Dictionary::getLine(\n    std::istream& in,\n    std::vector<int32_t>& words,\n    std::vector<int32_t>& labels) const {\n  std::vector<int32_t> word_hashes;\n  std::string token;\n  int32_t ntokens = 0;\n\n  reset(in);\n  words.clear();\n  labels.clear();\n  while (readWord(in, token)) {\n    uint32_t h = hash(token);\n    int32_t wid = getId(token, h);\n    entry_type type = wid < 0 ? getType(token) : getType(wid);\n\n    ntokens++;\n    if (type == entry_type::word) {\n      addSubwords(words, token, wid);\n      word_hashes.push_back(h);\n    } else if (type == entry_type::label && wid >= 0) {\n      labels.push_back(wid - nwords_);\n    }\n    if (token == EOS) {\n      break;\n    }\n  }\n  addWordNgrams(words, word_hashes, args_->wordNgrams);\n  return ntokens;\n}\n\nnamespace {\nbool readWordNoNewline(std::string_view& in, std::string_view& word) {\n  const std::string_view spaces(\" \\n\\r\\t\\v\\f\\0\");\n  std::string_view::size_type begin = in.find_first_not_of(spaces);\n  if (begin == std::string_view::npos) {\n    in.remove_prefix(in.size());\n    return false;\n  }\n  in.remove_prefix(begin);\n  word = in.substr(0, in.find_first_of(spaces));\n  in.remove_prefix(word.size());\n  return true;\n}\n} // namespace\n\nint32_t Dictionary::getStringNoNewline(\n    std::string_view in,\n    std::vector<int32_t>& words,\n    std::vector<int32_t>& labels) const {\n  std::vector<int32_t> word_hashes;\n  std::string_view token;\n  int32_t ntokens = 0;\n\n  words.clear();\n  labels.clear();\n  while (readWordNoNewline(in, token)) {\n    uint32_t h = hash(token);\n    int32_t wid = getId(token, h);\n    entry_type type = wid < 0 ? getType(token) : getType(wid);\n\n    ntokens++;\n    if (type == entry_type::word) {\n      addSubwords(words, token, wid);\n      word_hashes.push_back(h);\n    } else if (type == entry_type::label && wid >= 0) {\n      labels.push_back(wid - nwords_);\n    }\n    if (token == EOS) {\n      break;\n    }\n  }\n  addWordNgrams(words, word_hashes, args_->wordNgrams);\n  return ntokens;\n}\n\nvoid Dictionary::pushHash(std::vector<int32_t>& hashes, int32_t id) const {\n  if (pruneidx_size_ == 0 || id < 0) {\n    return;\n  }\n  if (pruneidx_size_ > 0) {\n    if (pruneidx_.count(id)) {\n      id = pruneidx_.at(id);\n    } else {\n      return;\n    }\n  }\n  hashes.push_back(nwords_ + id);\n}\n\nstd::string Dictionary::getLabel(int32_t lid) const {\n  if (lid < 0 || lid >= nlabels_) {\n    throw std::invalid_argument(\n        \"Label id is out of range [0, \" + std::to_string(nlabels_) + \"]\");\n  }\n  return words_[lid + nwords_].word;\n}\n\nvoid Dictionary::save(std::ostream& out) const {\n  out.write((char*)&size_, sizeof(int32_t));\n  out.write((char*)&nwords_, sizeof(int32_t));\n  out.write((char*)&nlabels_, sizeof(int32_t));\n  out.write((char*)&ntokens_, sizeof(int64_t));\n  out.write((char*)&pruneidx_size_, sizeof(int64_t));\n  for (int32_t i = 0; i < size_; i++) {\n    entry e = words_[i];\n    out.write(e.word.data(), e.word.size() * sizeof(char));\n    out.put(0);\n    out.write((char*)&(e.count), sizeof(int64_t));\n    out.write((char*)&(e.type), sizeof(entry_type));\n  }\n  for (const auto pair : pruneidx_) {\n    out.write((char*)&(pair.first), sizeof(int32_t));\n    out.write((char*)&(pair.second), sizeof(int32_t));\n  }\n}\n\nvoid Dictionary::load(std::istream& in) {\n  words_.clear();\n  in.read((char*)&size_, sizeof(int32_t));\n  in.read((char*)&nwords_, sizeof(int32_t));\n  in.read((char*)&nlabels_, sizeof(int32_t));\n  in.read((char*)&ntokens_, sizeof(int64_t));\n  in.read((char*)&pruneidx_size_, sizeof(int64_t));\n  for (int32_t i = 0; i < size_; i++) {\n    char c;\n    entry e;\n    while ((c = in.get()) != 0) {\n      e.word.push_back(c);\n    }\n    in.read((char*)&e.count, sizeof(int64_t));\n    in.read((char*)&e.type, sizeof(entry_type));\n    words_.push_back(e);\n  }\n  pruneidx_.clear();\n  for (int32_t i = 0; i < pruneidx_size_; i++) {\n    int32_t first;\n    int32_t second;\n    in.read((char*)&first, sizeof(int32_t));\n    in.read((char*)&second, sizeof(int32_t));\n    pruneidx_[first] = second;\n  }\n  initTableDiscard();\n  initNgrams();\n\n  int32_t word2intsize = std::ceil(size_ / 0.7);\n  word2int_.assign(word2intsize, -1);\n  for (int32_t i = 0; i < size_; i++) {\n    word2int_[find(words_[i].word)] = i;\n  }\n}\n\nvoid Dictionary::init() {\n  initTableDiscard();\n  initNgrams();\n}\n\nvoid Dictionary::prune(std::vector<int32_t>& idx) {\n  std::vector<int32_t> words, ngrams;\n  for (auto it = idx.cbegin(); it != idx.cend(); ++it) {\n    if (*it < nwords_) {\n      words.push_back(*it);\n    } else {\n      ngrams.push_back(*it);\n    }\n  }\n  std::sort(words.begin(), words.end());\n  idx = words;\n\n  if (ngrams.size() != 0) {\n    int32_t j = 0;\n    for (const auto ngram : ngrams) {\n      pruneidx_[ngram - nwords_] = j;\n      j++;\n    }\n    idx.insert(idx.end(), ngrams.begin(), ngrams.end());\n  }\n  pruneidx_size_ = pruneidx_.size();\n\n  std::fill(word2int_.begin(), word2int_.end(), -1);\n\n  int32_t j = 0;\n  for (int32_t i = 0; i < words_.size(); i++) {\n    if (getType(i) == entry_type::label ||\n        (j < words.size() && words[j] == i)) {\n      words_[j] = words_[i];\n      word2int_[find(words_[j].word)] = j;\n      j++;\n    }\n  }\n  nwords_ = words.size();\n  size_ = nwords_ + nlabels_;\n  words_.erase(words_.begin() + size_, words_.end());\n  initNgrams();\n}\n\nvoid Dictionary::dump(std::ostream& out) const {\n  out << words_.size() << std::endl;\n  for (auto it : words_) {\n    std::string entryType = \"word\";\n    if (it.type == entry_type::label) {\n      entryType = \"label\";\n    }\n    out << it.word << \" \" << it.count << \" \" << entryType << std::endl;\n  }\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/dictionary.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <istream>\n#include <memory>\n#include <ostream>\n#include <random>\n#include <string>\n#include <string_view>\n#include <unordered_map>\n#include <vector>\n\n#include \"args.h\"\n#include \"real.h\"\n\nnamespace fasttext {\n\ntypedef int32_t id_type;\nenum class entry_type : int8_t { word = 0, label = 1 };\n\nstruct entry {\n  std::string word;\n  int64_t count;\n  entry_type type;\n  std::vector<int32_t> subwords;\n};\n\nclass Dictionary {\n protected:\n  static const int32_t MAX_VOCAB_SIZE = 30000000;\n  static const int32_t MAX_LINE_SIZE = 1024;\n\n  int32_t find(const std::string_view) const;\n  int32_t find(const std::string_view, uint32_t h) const;\n  void initTableDiscard();\n  void initNgrams();\n  void reset(std::istream&) const;\n  void pushHash(std::vector<int32_t>&, int32_t) const;\n  void addSubwords(std::vector<int32_t>&, const std::string_view, int32_t) const;\n\n  std::shared_ptr<Args> args_;\n  std::vector<int32_t> word2int_;\n  std::vector<entry> words_;\n\n  std::vector<real> pdiscard_;\n  int32_t size_;\n  int32_t nwords_;\n  int32_t nlabels_;\n  int64_t ntokens_;\n\n  int64_t pruneidx_size_;\n  std::unordered_map<int32_t, int32_t> pruneidx_;\n  void addWordNgrams(\n      std::vector<int32_t>& line,\n      const std::vector<int32_t>& hashes,\n      int32_t n) const;\n\n public:\n  static const std::string EOS;\n  static const std::string BOW;\n  static const std::string EOW;\n\n  explicit Dictionary(std::shared_ptr<Args>);\n  explicit Dictionary(std::shared_ptr<Args>, std::istream&);\n  int32_t nwords() const;\n  int32_t nlabels() const;\n  int64_t ntokens() const;\n  int32_t getId(const std::string_view) const;\n  int32_t getId(const std::string_view, uint32_t h) const;\n  entry_type getType(int32_t) const;\n  entry_type getType(const std::string_view) const;\n  bool discard(int32_t, real) const;\n  std::string getWord(int32_t) const;\n  const std::vector<int32_t>& getSubwords(int32_t) const;\n  const std::vector<int32_t> getSubwords(const std::string&) const;\n  void getSubwords(\n      const std::string&,\n      std::vector<int32_t>&,\n      std::vector<std::string>&) const;\n  void computeSubwords(\n      const std::string&,\n      std::vector<int32_t>&,\n      std::vector<std::string>* substrings = nullptr) const;\n  uint32_t hash(const std::string_view str) const;\n  void add(const std::string&);\n  bool readWord(std::istream&, std::string&) const;\n  void readFromFile(std::istream&);\n  std::string getLabel(int32_t) const;\n  void save(std::ostream&) const;\n  void load(std::istream&);\n  std::vector<int64_t> getCounts(entry_type) const;\n  int32_t getLine(std::istream&, std::vector<int32_t>&, std::vector<int32_t>&)\n      const;\n  int32_t getLine(std::istream&, std::vector<int32_t>&, std::minstd_rand&)\n      const;\n  int32_t getStringNoNewline(std::string_view, std::vector<int32_t>&,\n      std::vector<int32_t>&) const;\n  void threshold(int64_t, int64_t);\n  void prune(std::vector<int32_t>&);\n  bool isPruned() {\n    return pruneidx_size_ >= 0;\n  }\n  void dump(std::ostream&) const;\n  void init();\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/fasttext.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"fasttext.h\"\n#include \"loss.h\"\n#include \"quantmatrix.h\"\n\n#include <algorithm>\n#include <iomanip>\n#include <iostream>\n#include <numeric>\n#include <sstream>\n#include <stdexcept>\n#include <string>\n#include <thread>\n#include <vector>\n\nnamespace fasttext {\n\nconstexpr int32_t FASTTEXT_VERSION = 12; /* Version 1b */\nconstexpr int32_t FASTTEXT_FILEFORMAT_MAGIC_INT32 = 793712314;\n\nbool comparePairs(\n    const std::pair<real, std::string>& l,\n    const std::pair<real, std::string>& r);\n\nstd::shared_ptr<Loss> FastText::createLoss(std::shared_ptr<Matrix>& output) {\n  loss_name lossName = args_->loss;\n  switch (lossName) {\n    case loss_name::hs:\n      return std::make_shared<HierarchicalSoftmaxLoss>(\n          output, getTargetCounts());\n    case loss_name::ns:\n      return std::make_shared<NegativeSamplingLoss>(\n          output, args_->neg, getTargetCounts());\n    case loss_name::softmax:\n      return std::make_shared<SoftmaxLoss>(output);\n    case loss_name::ova:\n      return std::make_shared<OneVsAllLoss>(output);\n    default:\n      throw std::runtime_error(\"Unknown loss\");\n  }\n}\n\nFastText::FastText()\n    : quant_(false), wordVectors_(nullptr), trainException_(nullptr) {}\n\nvoid FastText::addInputVector(Vector& vec, int32_t ind) const {\n  vec.addRow(*input_, ind);\n}\n\nstd::shared_ptr<const Dictionary> FastText::getDictionary() const {\n  return dict_;\n}\n\nconst Args FastText::getArgs() const {\n  return *args_.get();\n}\n\nstd::shared_ptr<const DenseMatrix> FastText::getInputMatrix() const {\n  if (quant_) {\n    throw std::runtime_error(\"Can't export quantized matrix\");\n  }\n  assert(input_.get());\n  return std::dynamic_pointer_cast<DenseMatrix>(input_);\n}\n\nvoid FastText::setMatrices(\n    const std::shared_ptr<DenseMatrix>& inputMatrix,\n    const std::shared_ptr<DenseMatrix>& outputMatrix) {\n  assert(input_->size(1) == output_->size(1));\n\n  input_ = std::dynamic_pointer_cast<Matrix>(inputMatrix);\n  output_ = std::dynamic_pointer_cast<Matrix>(outputMatrix);\n  wordVectors_.reset();\n  args_->dim = input_->size(1);\n\n  buildModel();\n}\n\nstd::shared_ptr<const DenseMatrix> FastText::getOutputMatrix() const {\n  if (quant_ && args_->qout) {\n    throw std::runtime_error(\"Can't export quantized matrix\");\n  }\n  assert(output_.get());\n  return std::dynamic_pointer_cast<DenseMatrix>(output_);\n}\n\nint32_t FastText::getWordId(const std::string& word) const {\n  return dict_->getId(word);\n}\n\nint32_t FastText::getSubwordId(const std::string& subword) const {\n  int32_t h = dict_->hash(subword) % args_->bucket;\n  return dict_->nwords() + h;\n}\n\nint32_t FastText::getLabelId(const std::string& label) const {\n  int32_t labelId = dict_->getId(label);\n  if (labelId != -1) {\n    labelId -= dict_->nwords();\n  }\n  return labelId;\n}\n\nvoid FastText::getWordVector(Vector& vec, const std::string& word) const {\n  const std::vector<int32_t>& ngrams = dict_->getSubwords(word);\n  vec.zero();\n  for (int i = 0; i < ngrams.size(); i++) {\n    addInputVector(vec, ngrams[i]);\n  }\n  if (ngrams.size() > 0) {\n    vec.mul(1.0 / ngrams.size());\n  }\n}\n\nvoid FastText::getSubwordVector(Vector& vec, const std::string& subword) const {\n  vec.zero();\n  int32_t h = dict_->hash(subword) % args_->bucket;\n  h = h + dict_->nwords();\n  addInputVector(vec, h);\n}\n\nvoid FastText::saveVectors(const std::string& filename) {\n  if (!input_ || !output_) {\n    throw std::runtime_error(\"Model never trained\");\n  }\n  std::ofstream ofs(filename);\n  if (!ofs.is_open()) {\n    throw std::invalid_argument(\n        filename + \" cannot be opened for saving vectors!\");\n  }\n  ofs << dict_->nwords() << \" \" << args_->dim << std::endl;\n  Vector vec(args_->dim);\n  for (int32_t i = 0; i < dict_->nwords(); i++) {\n    std::string word = dict_->getWord(i);\n    getWordVector(vec, word);\n    ofs << word << \" \" << vec << std::endl;\n  }\n  ofs.close();\n}\n\nvoid FastText::saveOutput(const std::string& filename) {\n  std::ofstream ofs(filename);\n  if (!ofs.is_open()) {\n    throw std::invalid_argument(\n        filename + \" cannot be opened for saving vectors!\");\n  }\n  if (quant_) {\n    throw std::invalid_argument(\n        \"Option -saveOutput is not supported for quantized models.\");\n  }\n  int32_t n =\n      (args_->model == model_name::sup) ? dict_->nlabels() : dict_->nwords();\n  ofs << n << \" \" << args_->dim << std::endl;\n  Vector vec(args_->dim);\n  for (int32_t i = 0; i < n; i++) {\n    std::string word = (args_->model == model_name::sup) ? dict_->getLabel(i)\n                                                         : dict_->getWord(i);\n    vec.zero();\n    vec.addRow(*output_, i);\n    ofs << word << \" \" << vec << std::endl;\n  }\n  ofs.close();\n}\n\nbool FastText::checkModel(std::istream& in) {\n  int32_t magic;\n  in.read((char*)&(magic), sizeof(int32_t));\n  if (magic != FASTTEXT_FILEFORMAT_MAGIC_INT32) {\n    return false;\n  }\n  in.read((char*)&(version), sizeof(int32_t));\n  if (version > FASTTEXT_VERSION) {\n    return false;\n  }\n  return true;\n}\n\nvoid FastText::signModel(std::ostream& out) {\n  const int32_t magic = FASTTEXT_FILEFORMAT_MAGIC_INT32;\n  const int32_t version = FASTTEXT_VERSION;\n  out.write((char*)&(magic), sizeof(int32_t));\n  out.write((char*)&(version), sizeof(int32_t));\n}\n\nvoid FastText::saveModel(const std::string& filename) {\n  std::ofstream ofs(filename, std::ofstream::binary);\n  if (!ofs.is_open()) {\n    throw std::invalid_argument(filename + \" cannot be opened for saving!\");\n  }\n  if (!input_ || !output_) {\n    throw std::runtime_error(\"Model never trained\");\n  }\n  signModel(ofs);\n  args_->save(ofs);\n  dict_->save(ofs);\n\n  ofs.write((char*)&(quant_), sizeof(bool));\n  input_->save(ofs);\n\n  ofs.write((char*)&(args_->qout), sizeof(bool));\n  output_->save(ofs);\n\n  ofs.close();\n}\n\nvoid FastText::loadModel(const std::string& filename) {\n  std::ifstream ifs(filename, std::ifstream::binary);\n  if (!ifs.is_open()) {\n    throw std::invalid_argument(filename + \" cannot be opened for loading!\");\n  }\n  if (!checkModel(ifs)) {\n    throw std::invalid_argument(filename + \" has wrong file format!\");\n  }\n  loadModel(ifs);\n  ifs.close();\n}\n\nstd::vector<int64_t> FastText::getTargetCounts() const {\n  if (args_->model == model_name::sup) {\n    return dict_->getCounts(entry_type::label);\n  } else {\n    return dict_->getCounts(entry_type::word);\n  }\n}\n\nvoid FastText::buildModel() {\n  auto loss = createLoss(output_);\n  bool normalizeGradient = (args_->model == model_name::sup);\n  model_ = std::make_shared<Model>(input_, output_, loss, normalizeGradient);\n}\n\nvoid FastText::loadModel(std::istream& in) {\n  args_ = std::make_shared<Args>();\n  input_ = std::make_shared<DenseMatrix>();\n  output_ = std::make_shared<DenseMatrix>();\n  args_->load(in);\n  if (version == 11 && args_->model == model_name::sup) {\n    // backward compatibility: old supervised models do not use char ngrams.\n    args_->maxn = 0;\n  }\n  dict_ = std::make_shared<Dictionary>(args_, in);\n\n  bool quant_input;\n  in.read((char*)&quant_input, sizeof(bool));\n  if (quant_input) {\n    quant_ = true;\n    input_ = std::make_shared<QuantMatrix>();\n  }\n  input_->load(in);\n\n  if (!quant_input && dict_->isPruned()) {\n    throw std::invalid_argument(\n        \"Invalid model file.\\n\"\n        \"Please download the updated model from www.fasttext.cc.\\n\"\n        \"See issue #332 on Github for more information.\\n\");\n  }\n\n  in.read((char*)&args_->qout, sizeof(bool));\n  if (quant_ && args_->qout) {\n    output_ = std::make_shared<QuantMatrix>();\n  }\n  output_->load(in);\n\n  buildModel();\n}\n\nstd::tuple<int64_t, double, double> FastText::progressInfo(real progress) {\n  double t = utils::getDuration(start_, std::chrono::steady_clock::now());\n  double lr = args_->lr * (1.0 - progress);\n  double wst = 0;\n\n  int64_t eta = 2592000; // Default to one month in seconds (720 * 3600)\n\n  if (progress > 0 && t >= 0) {\n    eta = t * (1 - progress) / progress;\n    wst = double(tokenCount_) / t / args_->thread;\n  }\n\n  return std::tuple<double, double, int64_t>(wst, lr, eta);\n}\n\nvoid FastText::printInfo(real progress, real loss, std::ostream& log_stream) {\n  double wst;\n  double lr;\n  int64_t eta;\n  std::tie<double, double, int64_t>(wst, lr, eta) = progressInfo(progress);\n\n  log_stream << std::fixed;\n  log_stream << \"Progress: \";\n  log_stream << std::setprecision(1) << std::setw(5) << (progress * 100) << \"%\";\n  log_stream << \" words/sec/thread: \" << std::setw(7) << int64_t(wst);\n  log_stream << \" lr: \" << std::setw(9) << std::setprecision(6) << lr;\n  log_stream << \" avg.loss: \" << std::setw(9) << std::setprecision(6) << loss;\n  log_stream << \" ETA: \" << utils::ClockPrint(eta);\n  log_stream << std::flush;\n}\n\nstd::vector<int32_t> FastText::selectEmbeddings(int32_t cutoff) const {\n  std::shared_ptr<DenseMatrix> input =\n      std::dynamic_pointer_cast<DenseMatrix>(input_);\n  Vector norms(input->size(0));\n  input->l2NormRow(norms);\n  std::vector<int32_t> idx(input->size(0), 0);\n  std::iota(idx.begin(), idx.end(), 0);\n  auto eosid = dict_->getId(Dictionary::EOS);\n  std::sort(idx.begin(), idx.end(), [&norms, eosid](size_t i1, size_t i2) {\n    if (i1 == eosid && i2 == eosid) { // satisfy strict weak ordering\n      return false;\n    }\n    return eosid == i1 || (eosid != i2 && norms[i1] > norms[i2]);\n  });\n  idx.erase(idx.begin() + cutoff, idx.end());\n  return idx;\n}\n\nvoid FastText::quantize(const Args& qargs, const TrainCallback& callback) {\n  if (args_->model != model_name::sup) {\n    throw std::invalid_argument(\n        \"For now we only support quantization of supervised models\");\n  }\n  args_->input = qargs.input;\n  args_->qout = qargs.qout;\n  args_->output = qargs.output;\n  std::shared_ptr<DenseMatrix> input =\n      std::dynamic_pointer_cast<DenseMatrix>(input_);\n  std::shared_ptr<DenseMatrix> output =\n      std::dynamic_pointer_cast<DenseMatrix>(output_);\n  bool normalizeGradient = (args_->model == model_name::sup);\n\n  if (qargs.cutoff > 0 && qargs.cutoff < input->size(0)) {\n    auto idx = selectEmbeddings(qargs.cutoff);\n    dict_->prune(idx);\n    std::shared_ptr<DenseMatrix> ninput =\n        std::make_shared<DenseMatrix>(idx.size(), args_->dim);\n    for (auto i = 0; i < idx.size(); i++) {\n      for (auto j = 0; j < args_->dim; j++) {\n        ninput->at(i, j) = input->at(idx[i], j);\n      }\n    }\n    input = ninput;\n    if (qargs.retrain) {\n      args_->epoch = qargs.epoch;\n      args_->lr = qargs.lr;\n      args_->thread = qargs.thread;\n      args_->verbose = qargs.verbose;\n      auto loss = createLoss(output_);\n      model_ = std::make_shared<Model>(input, output, loss, normalizeGradient);\n      startThreads(callback);\n    }\n  }\n  input_ = std::make_shared<QuantMatrix>(\n      std::move(*(input.get())), qargs.dsub, qargs.qnorm);\n\n  if (args_->qout) {\n    output_ = std::make_shared<QuantMatrix>(\n        std::move(*(output.get())), 2, qargs.qnorm);\n  }\n  quant_ = true;\n  auto loss = createLoss(output_);\n  model_ = std::make_shared<Model>(input_, output_, loss, normalizeGradient);\n}\n\nvoid FastText::supervised(\n    Model::State& state,\n    real lr,\n    const std::vector<int32_t>& line,\n    const std::vector<int32_t>& labels) {\n  if (labels.size() == 0 || line.size() == 0) {\n    return;\n  }\n  if (args_->loss == loss_name::ova) {\n    model_->update(line, labels, Model::kAllLabelsAsTarget, lr, state);\n  } else {\n    std::uniform_int_distribution<> uniform(0, labels.size() - 1);\n    int32_t i = uniform(state.rng);\n    model_->update(line, labels, i, lr, state);\n  }\n}\n\nvoid FastText::cbow(\n    Model::State& state,\n    real lr,\n    const std::vector<int32_t>& line) {\n  std::vector<int32_t> bow;\n  std::uniform_int_distribution<> uniform(1, args_->ws);\n  for (int32_t w = 0; w < line.size(); w++) {\n    int32_t boundary = uniform(state.rng);\n    bow.clear();\n    for (int32_t c = -boundary; c <= boundary; c++) {\n      if (c != 0 && w + c >= 0 && w + c < line.size()) {\n        const std::vector<int32_t>& ngrams = dict_->getSubwords(line[w + c]);\n        bow.insert(bow.end(), ngrams.cbegin(), ngrams.cend());\n      }\n    }\n    model_->update(bow, line, w, lr, state);\n  }\n}\n\nvoid FastText::skipgram(\n    Model::State& state,\n    real lr,\n    const std::vector<int32_t>& line) {\n  std::uniform_int_distribution<> uniform(1, args_->ws);\n  for (int32_t w = 0; w < line.size(); w++) {\n    int32_t boundary = uniform(state.rng);\n    const std::vector<int32_t>& ngrams = dict_->getSubwords(line[w]);\n    for (int32_t c = -boundary; c <= boundary; c++) {\n      if (c != 0 && w + c >= 0 && w + c < line.size()) {\n        model_->update(ngrams, line, w + c, lr, state);\n      }\n    }\n  }\n}\n\nstd::tuple<int64_t, double, double>\nFastText::test(std::istream& in, int32_t k, real threshold) {\n  Meter meter(false);\n  test(in, k, threshold, meter);\n\n  return std::tuple<int64_t, double, double>(\n      meter.nexamples(), meter.precision(), meter.recall());\n}\n\nvoid FastText::test(std::istream& in, int32_t k, real threshold, Meter& meter)\n    const {\n  std::vector<int32_t> line;\n  std::vector<int32_t> labels;\n  Predictions predictions;\n  Model::State state(args_->dim, dict_->nlabels(), 0);\n  in.clear();\n  in.seekg(0, std::ios_base::beg);\n\n  while (in.peek() != EOF) {\n    line.clear();\n    labels.clear();\n    dict_->getLine(in, line, labels);\n\n    if (!labels.empty() && !line.empty()) {\n      predictions.clear();\n      predict(k, line, predictions, threshold);\n      meter.log(labels, predictions);\n    }\n  }\n}\n\nvoid FastText::predict(\n    int32_t k,\n    const std::vector<int32_t>& words,\n    Predictions& predictions,\n    real threshold) const {\n  if (words.empty()) {\n    return;\n  }\n  Model::State state(args_->dim, dict_->nlabels(), 0);\n  if (args_->model != model_name::sup) {\n    throw std::invalid_argument(\"Model needs to be supervised for prediction!\");\n  }\n  model_->predict(words, k, threshold, predictions, state);\n}\n\nbool FastText::predictLine(\n    std::istream& in,\n    std::vector<std::pair<real, std::string>>& predictions,\n    int32_t k,\n    real threshold) const {\n  predictions.clear();\n  if (in.peek() == EOF) {\n    return false;\n  }\n\n  std::vector<int32_t> words, labels;\n  dict_->getLine(in, words, labels);\n  Predictions linePredictions;\n  predict(k, words, linePredictions, threshold);\n  for (const auto& p : linePredictions) {\n    predictions.push_back(\n        std::make_pair(std::exp(p.first), dict_->getLabel(p.second)));\n  }\n\n  return true;\n}\n\nvoid FastText::getSentenceVector(std::istream& in, fasttext::Vector& svec) {\n  svec.zero();\n  if (args_->model == model_name::sup) {\n    std::vector<int32_t> line, labels;\n    dict_->getLine(in, line, labels);\n    for (int32_t i = 0; i < line.size(); i++) {\n      addInputVector(svec, line[i]);\n    }\n    if (!line.empty()) {\n      svec.mul(1.0 / line.size());\n    }\n  } else {\n    Vector vec(args_->dim);\n    std::string sentence;\n    std::getline(in, sentence);\n    std::istringstream iss(sentence);\n    std::string word;\n    int32_t count = 0;\n    while (iss >> word) {\n      getWordVector(vec, word);\n      real norm = vec.norm();\n      if (norm > 0) {\n        vec.mul(1.0 / norm);\n        svec.addVector(vec);\n        count++;\n      }\n    }\n    if (count > 0) {\n      svec.mul(1.0 / count);\n    }\n  }\n}\n\nstd::vector<std::pair<std::string, Vector>> FastText::getNgramVectors(\n    const std::string& word) const {\n  std::vector<std::pair<std::string, Vector>> result;\n  std::vector<int32_t> ngrams;\n  std::vector<std::string> substrings;\n  dict_->getSubwords(word, ngrams, substrings);\n  assert(ngrams.size() <= substrings.size());\n  for (int32_t i = 0; i < ngrams.size(); i++) {\n    Vector vec(args_->dim);\n    if (ngrams[i] >= 0) {\n      vec.addRow(*input_, ngrams[i]);\n    }\n    result.emplace_back(substrings[i], std::move(vec));\n  }\n  return result;\n}\n\nvoid FastText::precomputeWordVectors(DenseMatrix& wordVectors) {\n  Vector vec(args_->dim);\n  wordVectors.zero();\n  for (int32_t i = 0; i < dict_->nwords(); i++) {\n    std::string word = dict_->getWord(i);\n    getWordVector(vec, word);\n    real norm = vec.norm();\n    if (norm > 0) {\n      wordVectors.addVectorToRow(vec, i, 1.0 / norm);\n    }\n  }\n}\n\nvoid FastText::lazyComputeWordVectors() {\n  if (!wordVectors_) {\n    wordVectors_ = std::unique_ptr<DenseMatrix>(\n        new DenseMatrix(dict_->nwords(), args_->dim));\n    precomputeWordVectors(*wordVectors_);\n  }\n}\n\nstd::vector<std::pair<real, std::string>> FastText::getNN(\n    const std::string& word,\n    int32_t k) {\n  Vector query(args_->dim);\n\n  getWordVector(query, word);\n\n  lazyComputeWordVectors();\n  assert(wordVectors_);\n  return getNN(*wordVectors_, query, k, {word});\n}\n\nstd::vector<std::pair<real, std::string>> FastText::getNN(\n    const DenseMatrix& wordVectors,\n    const Vector& query,\n    int32_t k,\n    const std::set<std::string>& banSet) {\n  std::vector<std::pair<real, std::string>> heap;\n\n  real queryNorm = query.norm();\n  if (std::abs(queryNorm) < 1e-8) {\n    queryNorm = 1;\n  }\n\n  for (int32_t i = 0; i < dict_->nwords(); i++) {\n    std::string word = dict_->getWord(i);\n    if (banSet.find(word) == banSet.end()) {\n      real dp = wordVectors.dotRow(query, i);\n      real similarity = dp / queryNorm;\n\n      if (heap.size() == k && similarity < heap.front().first) {\n        continue;\n      }\n      heap.push_back(std::make_pair(similarity, word));\n      std::push_heap(heap.begin(), heap.end(), comparePairs);\n      if (heap.size() > k) {\n        std::pop_heap(heap.begin(), heap.end(), comparePairs);\n        heap.pop_back();\n      }\n    }\n  }\n  std::sort_heap(heap.begin(), heap.end(), comparePairs);\n\n  return heap;\n}\n\nstd::vector<std::pair<real, std::string>> FastText::getAnalogies(\n    int32_t k,\n    const std::string& wordA,\n    const std::string& wordB,\n    const std::string& wordC) {\n  Vector query(args_->dim);\n  query.zero();\n\n  Vector buffer(args_->dim);\n  getWordVector(buffer, wordA);\n  query.addVector(buffer, 1.0 / (buffer.norm() + 1e-8));\n  getWordVector(buffer, wordB);\n  query.addVector(buffer, -1.0 / (buffer.norm() + 1e-8));\n  getWordVector(buffer, wordC);\n  query.addVector(buffer, 1.0 / (buffer.norm() + 1e-8));\n\n  lazyComputeWordVectors();\n  assert(wordVectors_);\n  return getNN(*wordVectors_, query, k, {wordA, wordB, wordC});\n}\n\nbool FastText::keepTraining(const int64_t ntokens) const {\n  return tokenCount_ < args_->epoch * ntokens && !trainException_;\n}\n\nvoid FastText::trainThread(int32_t threadId, const TrainCallback& callback) {\n  std::ifstream ifs(args_->input);\n  utils::seek(ifs, threadId * utils::size(ifs) / args_->thread);\n\n  Model::State state(args_->dim, output_->size(0), threadId + args_->seed);\n\n  const int64_t ntokens = dict_->ntokens();\n  int64_t localTokenCount = 0;\n  std::vector<int32_t> line, labels;\n  uint64_t callbackCounter = 0;\n  try {\n    while (keepTraining(ntokens)) {\n      real progress = real(tokenCount_) / (args_->epoch * ntokens);\n      if (callback && ((callbackCounter++ % 64) == 0)) {\n        double wst;\n        double lr;\n        int64_t eta;\n        std::tie<double, double, int64_t>(wst, lr, eta) =\n            progressInfo(progress);\n        callback(progress, loss_, wst, lr, eta);\n      }\n      real lr = args_->lr * (1.0 - progress);\n      if (args_->model == model_name::sup) {\n        localTokenCount += dict_->getLine(ifs, line, labels);\n        supervised(state, lr, line, labels);\n      } else if (args_->model == model_name::cbow) {\n        localTokenCount += dict_->getLine(ifs, line, state.rng);\n        cbow(state, lr, line);\n      } else if (args_->model == model_name::sg) {\n        localTokenCount += dict_->getLine(ifs, line, state.rng);\n        skipgram(state, lr, line);\n      }\n      if (localTokenCount > args_->lrUpdateRate) {\n        tokenCount_ += localTokenCount;\n        localTokenCount = 0;\n        if (threadId == 0 && args_->verbose > 1) {\n          loss_ = state.getLoss();\n        }\n      }\n    }\n  } catch (DenseMatrix::EncounteredNaNError&) {\n    trainException_ = std::current_exception();\n  }\n  if (threadId == 0)\n    loss_ = state.getLoss();\n  ifs.close();\n}\n\nstd::shared_ptr<Matrix> FastText::getInputMatrixFromFile(\n    const std::string& filename) const {\n  std::ifstream in(filename);\n  std::vector<std::string> words;\n  std::shared_ptr<DenseMatrix> mat; // temp. matrix for pretrained vectors\n  int64_t n, dim;\n  if (!in.is_open()) {\n    throw std::invalid_argument(filename + \" cannot be opened for loading!\");\n  }\n  in >> n >> dim;\n  if (dim != args_->dim) {\n    throw std::invalid_argument(\n        \"Dimension of pretrained vectors (\" + std::to_string(dim) +\n        \") does not match dimension (\" + std::to_string(args_->dim) + \")!\");\n  }\n  mat = std::make_shared<DenseMatrix>(n, dim);\n  for (size_t i = 0; i < n; i++) {\n    std::string word;\n    in >> word;\n    words.push_back(word);\n    dict_->add(word);\n    for (size_t j = 0; j < dim; j++) {\n      in >> mat->at(i, j);\n    }\n  }\n  in.close();\n\n  dict_->threshold(1, 0);\n  dict_->init();\n  std::shared_ptr<DenseMatrix> input = std::make_shared<DenseMatrix>(\n      dict_->nwords() + args_->bucket, args_->dim);\n  input->uniform(1.0 / args_->dim, args_->thread, args_->seed);\n\n  for (size_t i = 0; i < n; i++) {\n    int32_t idx = dict_->getId(words[i]);\n    if (idx < 0 || idx >= dict_->nwords()) {\n      continue;\n    }\n    for (size_t j = 0; j < dim; j++) {\n      input->at(idx, j) = mat->at(i, j);\n    }\n  }\n  return input;\n}\n\nstd::shared_ptr<Matrix> FastText::createRandomMatrix() const {\n  std::shared_ptr<DenseMatrix> input = std::make_shared<DenseMatrix>(\n      dict_->nwords() + args_->bucket, args_->dim);\n  input->uniform(1.0 / args_->dim, args_->thread, args_->seed);\n\n  return input;\n}\n\nstd::shared_ptr<Matrix> FastText::createTrainOutputMatrix() const {\n  int64_t m =\n      (args_->model == model_name::sup) ? dict_->nlabels() : dict_->nwords();\n  std::shared_ptr<DenseMatrix> output =\n      std::make_shared<DenseMatrix>(m, args_->dim);\n  output->zero();\n\n  return output;\n}\n\nvoid FastText::train(const Args& args, const TrainCallback& callback) {\n  args_ = std::make_shared<Args>(args);\n  dict_ = std::make_shared<Dictionary>(args_);\n  if (args_->input == \"-\") {\n    // manage expectations\n    throw std::invalid_argument(\"Cannot use stdin for training!\");\n  }\n  std::ifstream ifs(args_->input);\n  if (!ifs.is_open()) {\n    throw std::invalid_argument(\n        args_->input + \" cannot be opened for training!\");\n  }\n  dict_->readFromFile(ifs);\n  ifs.close();\n\n  if (!args_->pretrainedVectors.empty()) {\n    input_ = getInputMatrixFromFile(args_->pretrainedVectors);\n  } else {\n    input_ = createRandomMatrix();\n  }\n  output_ = createTrainOutputMatrix();\n  quant_ = false;\n  auto loss = createLoss(output_);\n  bool normalizeGradient = (args_->model == model_name::sup);\n  model_ = std::make_shared<Model>(input_, output_, loss, normalizeGradient);\n  startThreads(callback);\n}\n\nvoid FastText::abort() {\n  try {\n    throw AbortError();\n  } catch (AbortError&) {\n    trainException_ = std::current_exception();\n  }\n}\n\nvoid FastText::startThreads(const TrainCallback& callback) {\n  start_ = std::chrono::steady_clock::now();\n  tokenCount_ = 0;\n  loss_ = -1;\n  trainException_ = nullptr;\n  std::vector<std::thread> threads;\n  if (args_->thread > 1) {\n    for (int32_t i = 0; i < args_->thread; i++) {\n      threads.push_back(std::thread([=]() { trainThread(i, callback); }));\n    }\n  } else {\n    // webassembly can't instantiate `std::thread`\n    trainThread(0, callback);\n  }\n  const int64_t ntokens = dict_->ntokens();\n  // Same condition as trainThread\n  while (keepTraining(ntokens)) {\n    std::this_thread::sleep_for(std::chrono::milliseconds(100));\n    if (loss_ >= 0 && args_->verbose > 1) {\n      real progress = real(tokenCount_) / (args_->epoch * ntokens);\n      std::cerr << \"\\r\";\n      printInfo(progress, loss_, std::cerr);\n    }\n  }\n  for (int32_t i = 0; i < threads.size(); i++) {\n    threads[i].join();\n  }\n  if (trainException_) {\n    std::exception_ptr exception = trainException_;\n    trainException_ = nullptr;\n    std::rethrow_exception(exception);\n  }\n  if (args_->verbose > 0) {\n    std::cerr << \"\\r\";\n    printInfo(1.0, loss_, std::cerr);\n    std::cerr << std::endl;\n  }\n}\n\nint FastText::getDimension() const {\n  return args_->dim;\n}\n\nbool FastText::isQuant() const {\n  return quant_;\n}\n\nbool comparePairs(\n    const std::pair<real, std::string>& l,\n    const std::pair<real, std::string>& r) {\n  return l.first > r.first;\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/fasttext.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <time.h>\n\n#include <atomic>\n#include <chrono>\n#include <functional>\n#include <iostream>\n#include <memory>\n#include <queue>\n#include <set>\n#include <tuple>\n\n#include \"args.h\"\n#include \"densematrix.h\"\n#include \"dictionary.h\"\n#include \"matrix.h\"\n#include \"meter.h\"\n#include \"model.h\"\n#include \"real.h\"\n#include \"utils.h\"\n#include \"vector.h\"\n\nnamespace fasttext {\n\nclass FastText {\n public:\n  using TrainCallback =\n      std::function<void(float, float, double, double, int64_t)>;\n\n protected:\n  std::shared_ptr<Args> args_;\n  std::shared_ptr<Dictionary> dict_;\n  std::shared_ptr<Matrix> input_;\n  std::shared_ptr<Matrix> output_;\n  std::shared_ptr<Model> model_;\n  std::atomic<int64_t> tokenCount_{};\n  std::atomic<real> loss_{};\n  std::chrono::steady_clock::time_point start_;\n  bool quant_;\n  int32_t version;\n  std::unique_ptr<DenseMatrix> wordVectors_;\n  std::exception_ptr trainException_;\n\n  void signModel(std::ostream&);\n  bool checkModel(std::istream&);\n  void startThreads(const TrainCallback& callback = {});\n  void addInputVector(Vector&, int32_t) const;\n  void trainThread(int32_t, const TrainCallback& callback);\n  std::vector<std::pair<real, std::string>> getNN(\n      const DenseMatrix& wordVectors,\n      const Vector& queryVec,\n      int32_t k,\n      const std::set<std::string>& banSet);\n  void lazyComputeWordVectors();\n  void printInfo(real, real, std::ostream&);\n  std::shared_ptr<Matrix> getInputMatrixFromFile(const std::string&) const;\n  std::shared_ptr<Matrix> createRandomMatrix() const;\n  std::shared_ptr<Matrix> createTrainOutputMatrix() const;\n  std::vector<int64_t> getTargetCounts() const;\n  std::shared_ptr<Loss> createLoss(std::shared_ptr<Matrix>& output);\n  void supervised(\n      Model::State& state,\n      real lr,\n      const std::vector<int32_t>& line,\n      const std::vector<int32_t>& labels);\n  void cbow(Model::State& state, real lr, const std::vector<int32_t>& line);\n  void skipgram(Model::State& state, real lr, const std::vector<int32_t>& line);\n  std::vector<int32_t> selectEmbeddings(int32_t cutoff) const;\n  void precomputeWordVectors(DenseMatrix& wordVectors);\n  bool keepTraining(const int64_t ntokens) const;\n  void buildModel();\n  std::tuple<int64_t, double, double> progressInfo(real progress);\n\n public:\n  FastText();\n\n  int32_t getWordId(const std::string& word) const;\n\n  int32_t getSubwordId(const std::string& subword) const;\n\n  int32_t getLabelId(const std::string& label) const;\n\n  void getWordVector(Vector& vec, const std::string& word) const;\n\n  void getSubwordVector(Vector& vec, const std::string& subword) const;\n\n  inline void getInputVector(Vector& vec, int32_t ind) {\n    vec.zero();\n    addInputVector(vec, ind);\n  }\n\n  const Args getArgs() const;\n\n  std::shared_ptr<const Dictionary> getDictionary() const;\n\n  std::shared_ptr<const DenseMatrix> getInputMatrix() const;\n\n  void setMatrices(\n      const std::shared_ptr<DenseMatrix>& inputMatrix,\n      const std::shared_ptr<DenseMatrix>& outputMatrix);\n\n  std::shared_ptr<const DenseMatrix> getOutputMatrix() const;\n\n  void saveVectors(const std::string& filename);\n\n  void saveModel(const std::string& filename);\n\n  void saveOutput(const std::string& filename);\n\n  void loadModel(std::istream& in);\n\n  void loadModel(const std::string& filename);\n\n  void getSentenceVector(std::istream& in, Vector& vec);\n\n  void quantize(const Args& qargs, const TrainCallback& callback = {});\n\n  std::tuple<int64_t, double, double>\n  test(std::istream& in, int32_t k, real threshold = 0.0);\n\n  void test(std::istream& in, int32_t k, real threshold, Meter& meter) const;\n\n  void predict(\n      int32_t k,\n      const std::vector<int32_t>& words,\n      Predictions& predictions,\n      real threshold = 0.0) const;\n\n  bool predictLine(\n      std::istream& in,\n      std::vector<std::pair<real, std::string>>& predictions,\n      int32_t k,\n      real threshold) const;\n\n  std::vector<std::pair<std::string, Vector>> getNgramVectors(\n      const std::string& word) const;\n\n  std::vector<std::pair<real, std::string>> getNN(\n      const std::string& word,\n      int32_t k);\n\n  std::vector<std::pair<real, std::string>> getAnalogies(\n      int32_t k,\n      const std::string& wordA,\n      const std::string& wordB,\n      const std::string& wordC);\n\n  void train(const Args& args, const TrainCallback& callback = {});\n\n  void abort();\n\n  int getDimension() const;\n\n  bool isQuant() const;\n\n  class AbortError : public std::runtime_error {\n   public:\n    AbortError() : std::runtime_error(\"Aborted.\") {}\n  };\n};\n} // namespace fasttext\n"
  },
  {
    "path": "src/loss.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"loss.h\"\n#include \"utils.h\"\n\n#include <cmath>\n\nnamespace fasttext {\n\nconstexpr int64_t SIGMOID_TABLE_SIZE = 512;\nconstexpr int64_t MAX_SIGMOID = 8;\nconstexpr int64_t LOG_TABLE_SIZE = 512;\n\nbool comparePairs(\n    const std::pair<real, int32_t>& l,\n    const std::pair<real, int32_t>& r) {\n  return l.first > r.first;\n}\n\nreal std_log(real x) {\n  return std::log(x + 1e-5);\n}\n\nLoss::Loss(std::shared_ptr<Matrix>& wo) : wo_(wo) {\n  t_sigmoid_.reserve(SIGMOID_TABLE_SIZE + 1);\n  for (int i = 0; i < SIGMOID_TABLE_SIZE + 1; i++) {\n    real x = real(i * 2 * MAX_SIGMOID) / SIGMOID_TABLE_SIZE - MAX_SIGMOID;\n    t_sigmoid_.push_back(1.0 / (1.0 + std::exp(-x)));\n  }\n\n  t_log_.reserve(LOG_TABLE_SIZE + 1);\n  for (int i = 0; i < LOG_TABLE_SIZE + 1; i++) {\n    real x = (real(i) + 1e-5) / LOG_TABLE_SIZE;\n    t_log_.push_back(std::log(x));\n  }\n}\n\nreal Loss::log(real x) const {\n  if (x > 1.0) {\n    return 0.0;\n  }\n  int64_t i = int64_t(x * LOG_TABLE_SIZE);\n  return t_log_[i];\n}\n\nreal Loss::sigmoid(real x) const {\n  if (x < -MAX_SIGMOID) {\n    return 0.0;\n  } else if (x > MAX_SIGMOID) {\n    return 1.0;\n  } else {\n    int64_t i =\n        int64_t((x + MAX_SIGMOID) * SIGMOID_TABLE_SIZE / MAX_SIGMOID / 2);\n    return t_sigmoid_[i];\n  }\n}\n\nvoid Loss::predict(\n    int32_t k,\n    real threshold,\n    Predictions& heap,\n    Model::State& state) const {\n  computeOutput(state);\n  findKBest(k, threshold, heap, state.output);\n  std::sort_heap(heap.begin(), heap.end(), comparePairs);\n}\n\nvoid Loss::findKBest(\n    int32_t k,\n    real threshold,\n    Predictions& heap,\n    const Vector& output) const {\n  for (int32_t i = 0; i < output.size(); i++) {\n    if (output[i] < threshold) {\n      continue;\n    }\n    if (heap.size() == k && std_log(output[i]) < heap.front().first) {\n      continue;\n    }\n    heap.push_back(std::make_pair(std_log(output[i]), i));\n    std::push_heap(heap.begin(), heap.end(), comparePairs);\n    if (heap.size() > k) {\n      std::pop_heap(heap.begin(), heap.end(), comparePairs);\n      heap.pop_back();\n    }\n  }\n}\n\nBinaryLogisticLoss::BinaryLogisticLoss(std::shared_ptr<Matrix>& wo)\n    : Loss(wo) {}\n\nreal BinaryLogisticLoss::binaryLogistic(\n    int32_t target,\n    Model::State& state,\n    bool labelIsPositive,\n    real lr,\n    bool backprop) const {\n  real score = sigmoid(wo_->dotRow(state.hidden, target));\n  if (backprop) {\n    real alpha = lr * (real(labelIsPositive) - score);\n    state.grad.addRow(*wo_, target, alpha);\n    wo_->addVectorToRow(state.hidden, target, alpha);\n  }\n  if (labelIsPositive) {\n    return -log(score);\n  } else {\n    return -log(1.0 - score);\n  }\n}\n\nvoid BinaryLogisticLoss::computeOutput(Model::State& state) const {\n  Vector& output = state.output;\n  output.mul(*wo_, state.hidden);\n  int32_t osz = output.size();\n  for (int32_t i = 0; i < osz; i++) {\n    output[i] = sigmoid(output[i]);\n  }\n}\n\nOneVsAllLoss::OneVsAllLoss(std::shared_ptr<Matrix>& wo)\n    : BinaryLogisticLoss(wo) {}\n\nreal OneVsAllLoss::forward(\n    const std::vector<int32_t>& targets,\n    int32_t /* we take all targets here */,\n    Model::State& state,\n    real lr,\n    bool backprop) {\n  real loss = 0.0;\n  int32_t osz = state.output.size();\n  for (int32_t i = 0; i < osz; i++) {\n    bool isMatch = utils::contains(targets, i);\n    loss += binaryLogistic(i, state, isMatch, lr, backprop);\n  }\n\n  return loss;\n}\n\nNegativeSamplingLoss::NegativeSamplingLoss(\n    std::shared_ptr<Matrix>& wo,\n    int neg,\n    const std::vector<int64_t>& targetCounts)\n    : BinaryLogisticLoss(wo), neg_(neg), negatives_(), uniform_() {\n  real z = 0.0;\n  for (size_t i = 0; i < targetCounts.size(); i++) {\n    z += pow(targetCounts[i], 0.5);\n  }\n  for (size_t i = 0; i < targetCounts.size(); i++) {\n    real c = pow(targetCounts[i], 0.5);\n    for (size_t j = 0; j < c * NegativeSamplingLoss::NEGATIVE_TABLE_SIZE / z;\n         j++) {\n      negatives_.push_back(i);\n    }\n  }\n  uniform_ = std::uniform_int_distribution<size_t>(0, negatives_.size() - 1);\n}\n\nreal NegativeSamplingLoss::forward(\n    const std::vector<int32_t>& targets,\n    int32_t targetIndex,\n    Model::State& state,\n    real lr,\n    bool backprop) {\n  assert(targetIndex >= 0);\n  assert(targetIndex < targets.size());\n  int32_t target = targets[targetIndex];\n  real loss = binaryLogistic(target, state, true, lr, backprop);\n\n  for (int32_t n = 0; n < neg_; n++) {\n    auto negativeTarget = getNegative(target, state.rng);\n    loss += binaryLogistic(negativeTarget, state, false, lr, backprop);\n  }\n  return loss;\n}\n\nint32_t NegativeSamplingLoss::getNegative(\n    int32_t target,\n    std::minstd_rand& rng) {\n  int32_t negative;\n  do {\n    negative = negatives_[uniform_(rng)];\n  } while (target == negative);\n  return negative;\n}\n\nHierarchicalSoftmaxLoss::HierarchicalSoftmaxLoss(\n    std::shared_ptr<Matrix>& wo,\n    const std::vector<int64_t>& targetCounts)\n    : BinaryLogisticLoss(wo),\n      paths_(),\n      codes_(),\n      tree_(),\n      osz_(targetCounts.size()) {\n  buildTree(targetCounts);\n}\n\nvoid HierarchicalSoftmaxLoss::buildTree(const std::vector<int64_t>& counts) {\n  tree_.resize(2 * osz_ - 1);\n  for (int32_t i = 0; i < 2 * osz_ - 1; i++) {\n    tree_[i].parent = -1;\n    tree_[i].left = -1;\n    tree_[i].right = -1;\n    tree_[i].count = 1e15;\n    tree_[i].binary = false;\n  }\n  for (int32_t i = 0; i < osz_; i++) {\n    tree_[i].count = counts[i];\n  }\n  int32_t leaf = osz_ - 1;\n  int32_t node = osz_;\n  for (int32_t i = osz_; i < 2 * osz_ - 1; i++) {\n    int32_t mini[2] = {0};\n    for (int32_t j = 0; j < 2; j++) {\n      if (leaf >= 0 && tree_[leaf].count < tree_[node].count) {\n        mini[j] = leaf--;\n      } else {\n        mini[j] = node++;\n      }\n    }\n    tree_[i].left = mini[0];\n    tree_[i].right = mini[1];\n    tree_[i].count = tree_[mini[0]].count + tree_[mini[1]].count;\n    tree_[mini[0]].parent = i;\n    tree_[mini[1]].parent = i;\n    tree_[mini[1]].binary = true;\n  }\n  for (int32_t i = 0; i < osz_; i++) {\n    std::vector<int32_t> path;\n    std::vector<bool> code;\n    int32_t j = i;\n    while (tree_[j].parent != -1) {\n      path.push_back(tree_[j].parent - osz_);\n      code.push_back(tree_[j].binary);\n      j = tree_[j].parent;\n    }\n    paths_.push_back(path);\n    codes_.push_back(code);\n  }\n}\n\nreal HierarchicalSoftmaxLoss::forward(\n    const std::vector<int32_t>& targets,\n    int32_t targetIndex,\n    Model::State& state,\n    real lr,\n    bool backprop) {\n  real loss = 0.0;\n  int32_t target = targets[targetIndex];\n  const std::vector<bool>& binaryCode = codes_[target];\n  const std::vector<int32_t>& pathToRoot = paths_[target];\n  for (int32_t i = 0; i < pathToRoot.size(); i++) {\n    loss += binaryLogistic(pathToRoot[i], state, binaryCode[i], lr, backprop);\n  }\n  return loss;\n}\n\nvoid HierarchicalSoftmaxLoss::predict(\n    int32_t k,\n    real threshold,\n    Predictions& heap,\n    Model::State& state) const {\n  dfs(k, threshold, 2 * osz_ - 2, 0.0, heap, state.hidden);\n  std::sort_heap(heap.begin(), heap.end(), comparePairs);\n}\n\nvoid HierarchicalSoftmaxLoss::dfs(\n    int32_t k,\n    real threshold,\n    int32_t node,\n    real score,\n    Predictions& heap,\n    const Vector& hidden) const {\n  if (score < std_log(threshold)) {\n    return;\n  }\n  if (heap.size() == k && score < heap.front().first) {\n    return;\n  }\n\n  if (tree_[node].left == -1 && tree_[node].right == -1) {\n    heap.push_back(std::make_pair(score, node));\n    std::push_heap(heap.begin(), heap.end(), comparePairs);\n    if (heap.size() > k) {\n      std::pop_heap(heap.begin(), heap.end(), comparePairs);\n      heap.pop_back();\n    }\n    return;\n  }\n\n  real f = wo_->dotRow(hidden, node - osz_);\n  f = 1. / (1 + std::exp(-f));\n\n  dfs(k, threshold, tree_[node].left, score + std_log(1.0 - f), heap, hidden);\n  dfs(k, threshold, tree_[node].right, score + std_log(f), heap, hidden);\n}\n\nSoftmaxLoss::SoftmaxLoss(std::shared_ptr<Matrix>& wo) : Loss(wo) {}\n\nvoid SoftmaxLoss::computeOutput(Model::State& state) const {\n  Vector& output = state.output;\n  output.mul(*wo_, state.hidden);\n  real max = output[0], z = 0.0;\n  int32_t osz = output.size();\n  for (int32_t i = 0; i < osz; i++) {\n    max = std::max(output[i], max);\n  }\n  for (int32_t i = 0; i < osz; i++) {\n    output[i] = exp(output[i] - max);\n    z += output[i];\n  }\n  for (int32_t i = 0; i < osz; i++) {\n    output[i] /= z;\n  }\n}\n\nreal SoftmaxLoss::forward(\n    const std::vector<int32_t>& targets,\n    int32_t targetIndex,\n    Model::State& state,\n    real lr,\n    bool backprop) {\n  computeOutput(state);\n\n  assert(targetIndex >= 0);\n  assert(targetIndex < targets.size());\n  int32_t target = targets[targetIndex];\n\n  if (backprop) {\n    int32_t osz = wo_->size(0);\n    for (int32_t i = 0; i < osz; i++) {\n      real label = (i == target) ? 1.0 : 0.0;\n      real alpha = lr * (label - state.output[i]);\n      state.grad.addRow(*wo_, i, alpha);\n      wo_->addVectorToRow(state.hidden, i, alpha);\n    }\n  }\n  return -log(state.output[target]);\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/loss.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <memory>\n#include <random>\n#include <vector>\n\n#include \"matrix.h\"\n#include \"model.h\"\n#include \"real.h\"\n#include \"utils.h\"\n#include \"vector.h\"\n\nnamespace fasttext {\n\nclass Loss {\n private:\n  void findKBest(\n      int32_t k,\n      real threshold,\n      Predictions& heap,\n      const Vector& output) const;\n\n protected:\n  std::vector<real> t_sigmoid_;\n  std::vector<real> t_log_;\n  std::shared_ptr<Matrix>& wo_;\n\n  real log(real x) const;\n  real sigmoid(real x) const;\n\n public:\n  explicit Loss(std::shared_ptr<Matrix>& wo);\n  virtual ~Loss() = default;\n\n  virtual real forward(\n      const std::vector<int32_t>& targets,\n      int32_t targetIndex,\n      Model::State& state,\n      real lr,\n      bool backprop) = 0;\n  virtual void computeOutput(Model::State& state) const = 0;\n\n  virtual void predict(\n      int32_t /*k*/,\n      real /*threshold*/,\n      Predictions& /*heap*/,\n      Model::State& /*state*/) const;\n};\n\nclass BinaryLogisticLoss : public Loss {\n protected:\n  real binaryLogistic(\n      int32_t target,\n      Model::State& state,\n      bool labelIsPositive,\n      real lr,\n      bool backprop) const;\n\n public:\n  explicit BinaryLogisticLoss(std::shared_ptr<Matrix>& wo);\n  virtual ~BinaryLogisticLoss() noexcept override = default;\n  void computeOutput(Model::State& state) const override;\n};\n\nclass OneVsAllLoss : public BinaryLogisticLoss {\n public:\n  explicit OneVsAllLoss(std::shared_ptr<Matrix>& wo);\n  ~OneVsAllLoss() noexcept override = default;\n  real forward(\n      const std::vector<int32_t>& targets,\n      int32_t targetIndex,\n      Model::State& state,\n      real lr,\n      bool backprop) override;\n};\n\nclass NegativeSamplingLoss : public BinaryLogisticLoss {\n protected:\n  static const int32_t NEGATIVE_TABLE_SIZE = 10000000;\n\n  int neg_;\n  std::vector<int32_t> negatives_;\n  std::uniform_int_distribution<size_t> uniform_;\n  int32_t getNegative(int32_t target, std::minstd_rand& rng);\n\n public:\n  explicit NegativeSamplingLoss(\n      std::shared_ptr<Matrix>& wo,\n      int neg,\n      const std::vector<int64_t>& targetCounts);\n  ~NegativeSamplingLoss() noexcept override = default;\n\n  real forward(\n      const std::vector<int32_t>& targets,\n      int32_t targetIndex,\n      Model::State& state,\n      real lr,\n      bool backprop) override;\n};\n\nclass HierarchicalSoftmaxLoss : public BinaryLogisticLoss {\n protected:\n  struct Node {\n    int32_t parent;\n    int32_t left;\n    int32_t right;\n    int64_t count;\n    bool binary;\n  };\n\n  std::vector<std::vector<int32_t>> paths_;\n  std::vector<std::vector<bool>> codes_;\n  std::vector<Node> tree_;\n  int32_t osz_;\n  void buildTree(const std::vector<int64_t>& counts);\n  void dfs(\n      int32_t k,\n      real threshold,\n      int32_t node,\n      real score,\n      Predictions& heap,\n      const Vector& hidden) const;\n\n public:\n  explicit HierarchicalSoftmaxLoss(\n      std::shared_ptr<Matrix>& wo,\n      const std::vector<int64_t>& counts);\n  ~HierarchicalSoftmaxLoss() noexcept override = default;\n  real forward(\n      const std::vector<int32_t>& targets,\n      int32_t targetIndex,\n      Model::State& state,\n      real lr,\n      bool backprop) override;\n  void predict(\n      int32_t k,\n      real threshold,\n      Predictions& heap,\n      Model::State& state) const override;\n};\n\nclass SoftmaxLoss : public Loss {\n public:\n  explicit SoftmaxLoss(std::shared_ptr<Matrix>& wo);\n  ~SoftmaxLoss() noexcept override = default;\n  real forward(\n      const std::vector<int32_t>& targets,\n      int32_t targetIndex,\n      Model::State& state,\n      real lr,\n      bool backprop) override;\n  void computeOutput(Model::State& state) const override;\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/main.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include <iomanip>\n#include <iostream>\n#include <queue>\n#include <stdexcept>\n#include \"args.h\"\n#include \"autotune.h\"\n#include \"fasttext.h\"\n\nusing namespace fasttext;\n\nvoid printUsage() {\n  std::cerr\n      << \"usage: fasttext <command> <args>\\n\\n\"\n      << \"The commands supported by fasttext are:\\n\\n\"\n      << \"  supervised              train a supervised classifier\\n\"\n      << \"  quantize                quantize a model to reduce the memory \"\n         \"usage\\n\"\n      << \"  test                    evaluate a supervised classifier\\n\"\n      << \"  test-label              print labels with precision and recall \"\n         \"scores\\n\"\n      << \"  predict                 predict most likely labels\\n\"\n      << \"  predict-prob            predict most likely labels with \"\n         \"probabilities\\n\"\n      << \"  skipgram                train a skipgram model\\n\"\n      << \"  cbow                    train a cbow model\\n\"\n      << \"  print-word-vectors      print word vectors given a trained model\\n\"\n      << \"  print-sentence-vectors  print sentence vectors given a trained \"\n         \"model\\n\"\n      << \"  print-ngrams            print ngrams given a trained model and \"\n         \"word\\n\"\n      << \"  nn                      query for nearest neighbors\\n\"\n      << \"  analogies               query for analogies\\n\"\n      << \"  dump                    dump arguments,dictionary,input/output \"\n         \"vectors\\n\"\n      << std::endl;\n}\n\nvoid printQuantizeUsage() {\n  std::cerr << \"usage: fasttext quantize <args>\" << std::endl;\n}\n\nvoid printTestUsage() {\n  std::cerr\n      << \"usage: fasttext test <model> <test-data> [<k>] [<th>]\\n\\n\"\n      << \"  <model>      model filename\\n\"\n      << \"  <test-data>  test data filename (if -, read from stdin)\\n\"\n      << \"  <k>          (optional; 1 by default) predict top k labels\\n\"\n      << \"  <th>         (optional; 0.0 by default) probability threshold\\n\"\n      << std::endl;\n}\n\nvoid printPredictUsage() {\n  std::cerr\n      << \"usage: fasttext predict[-prob] <model> <test-data> [<k>] [<th>]\\n\\n\"\n      << \"  <model>      model filename\\n\"\n      << \"  <test-data>  test data filename (if -, read from stdin)\\n\"\n      << \"  <k>          (optional; 1 by default) predict top k labels\\n\"\n      << \"  <th>         (optional; 0.0 by default) probability threshold\\n\"\n      << std::endl;\n}\n\nvoid printTestLabelUsage() {\n  std::cerr\n      << \"usage: fasttext test-label <model> <test-data> [<k>] [<th>]\\n\\n\"\n      << \"  <model>      model filename\\n\"\n      << \"  <test-data>  test data filename\\n\"\n      << \"  <k>          (optional; 1 by default) predict top k labels\\n\"\n      << \"  <th>         (optional; 0.0 by default) probability threshold\\n\"\n      << std::endl;\n}\n\nvoid printPrintWordVectorsUsage() {\n  std::cerr << \"usage: fasttext print-word-vectors <model>\\n\\n\"\n            << \"  <model>      model filename\\n\"\n            << std::endl;\n}\n\nvoid printPrintSentenceVectorsUsage() {\n  std::cerr << \"usage: fasttext print-sentence-vectors <model>\\n\\n\"\n            << \"  <model>      model filename\\n\"\n            << std::endl;\n}\n\nvoid printPrintNgramsUsage() {\n  std::cerr << \"usage: fasttext print-ngrams <model> <word>\\n\\n\"\n            << \"  <model>      model filename\\n\"\n            << \"  <word>       word to print\\n\"\n            << std::endl;\n}\n\nvoid quantize(const std::vector<std::string>& args) {\n  Args a = Args();\n  if (args.size() < 3) {\n    printQuantizeUsage();\n    a.printHelp();\n    exit(EXIT_FAILURE);\n  }\n  a.parseArgs(args);\n  FastText fasttext;\n  // parseArgs checks if a->output is given.\n  fasttext.loadModel(a.output + \".bin\");\n  fasttext.quantize(a);\n  fasttext.saveModel(a.output + \".ftz\");\n  exit(0);\n}\n\nvoid printNNUsage() {\n  std::cout << \"usage: fasttext nn <model> <k>\\n\\n\"\n            << \"  <model>      model filename\\n\"\n            << \"  <k>          (optional; 10 by default) predict top k labels\\n\"\n            << std::endl;\n}\n\nvoid printAnalogiesUsage() {\n  std::cout << \"usage: fasttext analogies <model> <k>\\n\\n\"\n            << \"  <model>      model filename\\n\"\n            << \"  <k>          (optional; 10 by default) predict top k labels\\n\"\n            << std::endl;\n}\n\nvoid printDumpUsage() {\n  std::cout << \"usage: fasttext dump <model> <option>\\n\\n\"\n            << \"  <model>      model filename\\n\"\n            << \"  <option>     option from args,dict,input,output\" << std::endl;\n}\n\nvoid test(const std::vector<std::string>& args) {\n  bool perLabel = args[1] == \"test-label\";\n\n  if (args.size() < 4 || args.size() > 6) {\n    perLabel ? printTestLabelUsage() : printTestUsage();\n    exit(EXIT_FAILURE);\n  }\n\n  const auto& model = args[2];\n  const auto& input = args[3];\n  int32_t k = args.size() > 4 ? std::stoi(args[4]) : 1;\n  real threshold = args.size() > 5 ? std::stof(args[5]) : 0.0;\n\n  FastText fasttext;\n  fasttext.loadModel(model);\n\n  Meter meter(false);\n\n  if (input == \"-\") {\n    fasttext.test(std::cin, k, threshold, meter);\n  } else {\n    std::ifstream ifs(input);\n    if (!ifs.is_open()) {\n      std::cerr << \"Test file cannot be opened!\" << std::endl;\n      exit(EXIT_FAILURE);\n    }\n    fasttext.test(ifs, k, threshold, meter);\n  }\n\n  if (perLabel) {\n    std::cout << std::fixed << std::setprecision(6);\n    auto writeMetric = [](const std::string& name, double value) {\n      std::cout << name << \" : \";\n      if (std::isfinite(value)) {\n        std::cout << value;\n      } else {\n        std::cout << \"--------\";\n      }\n      std::cout << \"  \";\n    };\n\n    std::shared_ptr<const Dictionary> dict = fasttext.getDictionary();\n    for (int32_t labelId = 0; labelId < dict->nlabels(); labelId++) {\n      writeMetric(\"F1-Score\", meter.f1Score(labelId));\n      writeMetric(\"Precision\", meter.precision(labelId));\n      writeMetric(\"Recall\", meter.recall(labelId));\n      std::cout << \" \" << dict->getLabel(labelId) << std::endl;\n    }\n  }\n  meter.writeGeneralMetrics(std::cout, k);\n\n  exit(0);\n}\n\nvoid printPredictions(\n    const std::vector<std::pair<real, std::string>>& predictions,\n    bool printProb,\n    bool multiline) {\n  bool first = true;\n  for (const auto& prediction : predictions) {\n    if (!first && !multiline) {\n      std::cout << \" \";\n    }\n    first = false;\n    std::cout << prediction.second;\n    if (printProb) {\n      std::cout << \" \" << prediction.first;\n    }\n    if (multiline) {\n      std::cout << std::endl;\n    }\n  }\n  if (!multiline) {\n    std::cout << std::endl;\n  }\n}\n\nvoid predict(const std::vector<std::string>& args) {\n  if (args.size() < 4 || args.size() > 6) {\n    printPredictUsage();\n    exit(EXIT_FAILURE);\n  }\n  int32_t k = 1;\n  real threshold = 0.0;\n  if (args.size() > 4) {\n    k = std::stoi(args[4]);\n    if (args.size() == 6) {\n      threshold = std::stof(args[5]);\n    }\n  }\n\n  bool printProb = args[1] == \"predict-prob\";\n  FastText fasttext;\n  fasttext.loadModel(std::string(args[2]));\n\n  std::ifstream ifs;\n  std::string infile(args[3]);\n  bool inputIsStdIn = infile == \"-\";\n  if (!inputIsStdIn) {\n    ifs.open(infile);\n    if (!inputIsStdIn && !ifs.is_open()) {\n      std::cerr << \"Input file cannot be opened!\" << std::endl;\n      exit(EXIT_FAILURE);\n    }\n  }\n  std::istream& in = inputIsStdIn ? std::cin : ifs;\n  std::vector<std::pair<real, std::string>> predictions;\n  while (fasttext.predictLine(in, predictions, k, threshold)) {\n    printPredictions(predictions, printProb, false);\n  }\n  if (ifs.is_open()) {\n    ifs.close();\n  }\n\n  exit(0);\n}\n\nvoid printWordVectors(const std::vector<std::string> args) {\n  if (args.size() != 3) {\n    printPrintWordVectorsUsage();\n    exit(EXIT_FAILURE);\n  }\n  FastText fasttext;\n  fasttext.loadModel(std::string(args[2]));\n  std::string word;\n  Vector vec(fasttext.getDimension());\n  while (std::cin >> word) {\n    fasttext.getWordVector(vec, word);\n    std::cout << word << \" \" << vec << std::endl;\n  }\n  exit(0);\n}\n\nvoid printSentenceVectors(const std::vector<std::string> args) {\n  if (args.size() != 3) {\n    printPrintSentenceVectorsUsage();\n    exit(EXIT_FAILURE);\n  }\n  FastText fasttext;\n  fasttext.loadModel(std::string(args[2]));\n  Vector svec(fasttext.getDimension());\n  while (std::cin.peek() != EOF) {\n    fasttext.getSentenceVector(std::cin, svec);\n    // Don't print sentence\n    std::cout << svec << std::endl;\n  }\n  exit(0);\n}\n\nvoid printNgrams(const std::vector<std::string> args) {\n  if (args.size() != 4) {\n    printPrintNgramsUsage();\n    exit(EXIT_FAILURE);\n  }\n  FastText fasttext;\n  fasttext.loadModel(std::string(args[2]));\n\n  std::string word(args[3]);\n  std::vector<std::pair<std::string, Vector>> ngramVectors =\n      fasttext.getNgramVectors(word);\n\n  for (const auto& ngramVector : ngramVectors) {\n    std::cout << ngramVector.first << \" \" << ngramVector.second << std::endl;\n  }\n\n  exit(0);\n}\n\nvoid nn(const std::vector<std::string> args) {\n  int32_t k;\n  if (args.size() == 3) {\n    k = 10;\n  } else if (args.size() == 4) {\n    k = std::stoi(args[3]);\n  } else {\n    printNNUsage();\n    exit(EXIT_FAILURE);\n  }\n  FastText fasttext;\n  fasttext.loadModel(std::string(args[2]));\n  std::string prompt(\"Query word? \");\n  std::cout << prompt;\n\n  std::string queryWord;\n  while (std::cin >> queryWord) {\n    printPredictions(fasttext.getNN(queryWord, k), true, true);\n    std::cout << prompt;\n  }\n  exit(0);\n}\n\nvoid analogies(const std::vector<std::string> args) {\n  int32_t k;\n  if (args.size() == 3) {\n    k = 10;\n  } else if (args.size() == 4) {\n    k = std::stoi(args[3]);\n  } else {\n    printAnalogiesUsage();\n    exit(EXIT_FAILURE);\n  }\n  if (k <= 0) {\n    throw std::invalid_argument(\"k needs to be 1 or higher!\");\n  }\n  FastText fasttext;\n  std::string model(args[2]);\n  std::cout << \"Loading model \" << model << std::endl;\n  fasttext.loadModel(model);\n\n  std::string prompt(\"Query triplet (A - B + C)? \");\n  std::string wordA, wordB, wordC;\n  std::cout << prompt;\n  while (true) {\n    std::cin >> wordA;\n    std::cin >> wordB;\n    std::cin >> wordC;\n    printPredictions(fasttext.getAnalogies(k, wordA, wordB, wordC), true, true);\n\n    std::cout << prompt;\n  }\n  exit(0);\n}\n\nvoid train(const std::vector<std::string> args) {\n  Args a = Args();\n  a.parseArgs(args);\n  std::shared_ptr<FastText> fasttext = std::make_shared<FastText>();\n  std::string outputFileName;\n\n  if (a.hasAutotune() &&\n      a.getAutotuneModelSize() != Args::kUnlimitedModelSize) {\n    outputFileName = a.output + \".ftz\";\n  } else {\n    outputFileName = a.output + \".bin\";\n  }\n  std::ofstream ofs(outputFileName);\n  if (!ofs.is_open()) {\n    throw std::invalid_argument(\n        outputFileName + \" cannot be opened for saving.\");\n  }\n  ofs.close();\n  if (a.hasAutotune()) {\n    Autotune autotune(fasttext);\n    autotune.train(a);\n  } else {\n    fasttext->train(a);\n  }\n  fasttext->saveModel(outputFileName);\n  fasttext->saveVectors(a.output + \".vec\");\n  if (a.saveOutput) {\n    fasttext->saveOutput(a.output + \".output\");\n  }\n}\n\nvoid dump(const std::vector<std::string>& args) {\n  if (args.size() < 4) {\n    printDumpUsage();\n    exit(EXIT_FAILURE);\n  }\n\n  std::string modelPath = args[2];\n  std::string option = args[3];\n\n  FastText fasttext;\n  fasttext.loadModel(modelPath);\n  if (option == \"args\") {\n    fasttext.getArgs().dump(std::cout);\n  } else if (option == \"dict\") {\n    fasttext.getDictionary()->dump(std::cout);\n  } else if (option == \"input\") {\n    if (fasttext.isQuant()) {\n      std::cerr << \"Not supported for quantized models.\" << std::endl;\n    } else {\n      fasttext.getInputMatrix()->dump(std::cout);\n    }\n  } else if (option == \"output\") {\n    if (fasttext.isQuant()) {\n      std::cerr << \"Not supported for quantized models.\" << std::endl;\n    } else {\n      fasttext.getOutputMatrix()->dump(std::cout);\n    }\n  } else {\n    printDumpUsage();\n    exit(EXIT_FAILURE);\n  }\n}\n\nint main(int argc, char** argv) {\n  std::vector<std::string> args(argv, argv + argc);\n  if (args.size() < 2) {\n    printUsage();\n    exit(EXIT_FAILURE);\n  }\n  std::string command(args[1]);\n  if (command == \"skipgram\" || command == \"cbow\" || command == \"supervised\") {\n    train(args);\n  } else if (command == \"test\" || command == \"test-label\") {\n    test(args);\n  } else if (command == \"quantize\") {\n    quantize(args);\n  } else if (command == \"print-word-vectors\") {\n    printWordVectors(args);\n  } else if (command == \"print-sentence-vectors\") {\n    printSentenceVectors(args);\n  } else if (command == \"print-ngrams\") {\n    printNgrams(args);\n  } else if (command == \"nn\") {\n    nn(args);\n  } else if (command == \"analogies\") {\n    analogies(args);\n  } else if (command == \"predict\" || command == \"predict-prob\") {\n    predict(args);\n  } else if (command == \"dump\") {\n    dump(args);\n  } else {\n    printUsage();\n    exit(EXIT_FAILURE);\n  }\n  return 0;\n}\n"
  },
  {
    "path": "src/matrix.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"matrix.h\"\n\nnamespace fasttext {\n\nMatrix::Matrix() : m_(0), n_(0) {}\n\nMatrix::Matrix(int64_t m, int64_t n) : m_(m), n_(n) {}\n\nint64_t Matrix::size(int64_t dim) const {\n  assert(dim == 0 || dim == 1);\n  if (dim == 0) {\n    return m_;\n  }\n  return n_;\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/matrix.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <cstdint>\n#include <istream>\n#include <ostream>\n#include <vector>\n\n#include <assert.h>\n#include \"real.h\"\n\nnamespace fasttext {\n\nclass Vector;\n\nclass Matrix {\n protected:\n  int64_t m_;\n  int64_t n_;\n\n public:\n  Matrix();\n  explicit Matrix(int64_t, int64_t);\n  virtual ~Matrix() = default;\n\n  int64_t size(int64_t dim) const;\n\n  virtual real dotRow(const Vector&, int64_t) const = 0;\n  virtual void addVectorToRow(const Vector&, int64_t, real) = 0;\n  virtual void addRowToVector(Vector& x, int32_t i) const = 0;\n  virtual void addRowToVector(Vector& x, int32_t i, real a) const = 0;\n  virtual void averageRowsToVector(Vector& x, const std::vector<int32_t>& rows) const = 0;\n  virtual void save(std::ostream&) const = 0;\n  virtual void load(std::istream&) = 0;\n  virtual void dump(std::ostream&) const = 0;\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/meter.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"meter.h\"\n#include \"utils.h\"\n\n#include <algorithm>\n#include <cmath>\n#include <iomanip>\n#include <limits>\n\nnamespace fasttext {\n\nconstexpr int32_t kAllLabels = -1;\nconstexpr real falseNegativeScore = -1.0;\n\nvoid Meter::log(\n    const std::vector<int32_t>& labels,\n    const Predictions& predictions) {\n  nexamples_++;\n  metrics_.gold += labels.size();\n  metrics_.predicted += predictions.size();\n\n  for (const auto& prediction : predictions) {\n    labelMetrics_[prediction.second].predicted++;\n\n    real score = std::min(std::exp(prediction.first), 1.0f);\n    real gold = 0.0;\n    if (utils::contains(labels, prediction.second)) {\n      labelMetrics_[prediction.second].predictedGold++;\n      metrics_.predictedGold++;\n      gold = 1.0;\n    }\n    labelMetrics_[prediction.second].scoreVsTrue.emplace_back(score, gold);\n  }\n\n  for (const auto& label : labels) {\n    labelMetrics_[label].gold++;\n    if (falseNegativeLabels_) {\n      if (!utils::containsSecond(predictions, label)) {\n        labelMetrics_[label].scoreVsTrue.emplace_back(falseNegativeScore, 1.0);\n      }\n    }\n  }\n}\n\ndouble Meter::precision(int32_t i) {\n  return labelMetrics_[i].precision();\n}\n\ndouble Meter::recall(int32_t i) {\n  return labelMetrics_[i].recall();\n}\n\ndouble Meter::f1Score(int32_t i) {\n  return labelMetrics_[i].f1Score();\n}\n\ndouble Meter::precision() const {\n  return metrics_.precision();\n}\n\ndouble Meter::recall() const {\n  return metrics_.recall();\n}\n\ndouble Meter::f1Score() const {\n  const double precision = this->precision();\n  const double recall = this->recall();\n  if (precision + recall != 0) {\n    return 2 * precision * recall / (precision + recall);\n  }\n  return std::numeric_limits<double>::quiet_NaN();\n}\n\nvoid Meter::writeGeneralMetrics(std::ostream& out, int32_t k) const {\n  out << \"N\"\n      << \"\\t\" << nexamples_ << std::endl;\n  out << std::setprecision(3);\n  out << \"P@\" << k << \"\\t\" << metrics_.precision() << std::endl;\n  out << \"R@\" << k << \"\\t\" << metrics_.recall() << std::endl;\n}\n\nstd::vector<std::pair<uint64_t, uint64_t>> Meter::getPositiveCounts(\n    int32_t labelId) const {\n  std::vector<std::pair<uint64_t, uint64_t>> positiveCounts;\n\n  const auto& v = scoreVsTrue(labelId);\n  uint64_t truePositives = 0;\n  uint64_t falsePositives = 0;\n  double lastScore = falseNegativeScore - 1.0;\n\n  for (auto it = v.rbegin(); it != v.rend(); ++it) {\n    double score = it->first;\n    double gold = it->second;\n    if (score < 0) { // only reachable recall\n      break;\n    }\n    if (gold == 1.0) {\n      truePositives++;\n    } else {\n      falsePositives++;\n    }\n    if (score == lastScore && positiveCounts.size()) { // squeeze tied scores\n      positiveCounts.back() = {truePositives, falsePositives};\n    } else {\n      positiveCounts.emplace_back(truePositives, falsePositives);\n    }\n    lastScore = score;\n  }\n\n  return positiveCounts;\n}\n\ndouble Meter::precisionAtRecall(double recallQuery) const {\n  return precisionAtRecall(kAllLabels, recallQuery);\n}\n\ndouble Meter::precisionAtRecall(int32_t labelId, double recallQuery) const {\n  const auto& precisionRecall = precisionRecallCurve(labelId);\n  double bestPrecision = 0.0;\n  std::for_each(\n      precisionRecall.begin(),\n      precisionRecall.end(),\n      [&bestPrecision, recallQuery](const std::pair<double, double>& element) {\n        if (element.second >= recallQuery) {\n          bestPrecision = std::max(bestPrecision, element.first);\n        };\n      });\n  return bestPrecision;\n}\n\ndouble Meter::recallAtPrecision(double precisionQuery) const {\n  return recallAtPrecision(kAllLabels, precisionQuery);\n}\n\ndouble Meter::recallAtPrecision(int32_t labelId, double precisionQuery) const {\n  const auto& precisionRecall = precisionRecallCurve(labelId);\n  double bestRecall = 0.0;\n  std::for_each(\n      precisionRecall.begin(),\n      precisionRecall.end(),\n      [&bestRecall, precisionQuery](const std::pair<double, double>& element) {\n        if (element.first >= precisionQuery) {\n          bestRecall = std::max(bestRecall, element.second);\n        };\n      });\n  return bestRecall;\n}\n\nstd::vector<std::pair<double, double>> Meter::precisionRecallCurve() const {\n  return precisionRecallCurve(kAllLabels);\n}\n\nstd::vector<std::pair<double, double>> Meter::precisionRecallCurve(\n    int32_t labelId) const {\n  std::vector<std::pair<double, double>> precisionRecallCurve;\n  const auto& positiveCounts = getPositiveCounts(labelId);\n  if (positiveCounts.empty()) {\n    return precisionRecallCurve;\n  }\n\n  uint64_t golds =\n      (labelId == kAllLabels) ? metrics_.gold : labelMetrics_.at(labelId).gold;\n\n  auto fullRecall = std::lower_bound(\n      positiveCounts.begin(),\n      positiveCounts.end(),\n      golds,\n      utils::compareFirstLess);\n\n  if (fullRecall != positiveCounts.end()) {\n    fullRecall = std::next(fullRecall);\n  }\n\n  for (auto it = positiveCounts.begin(); it != fullRecall; it++) {\n    double precision = 0.0;\n    double truePositives = it->first;\n    double falsePositives = it->second;\n    if (truePositives + falsePositives != 0.0) {\n      precision = truePositives / (truePositives + falsePositives);\n    }\n    double recall = golds != 0 ? (truePositives / double(golds))\n                               : std::numeric_limits<double>::quiet_NaN();\n    precisionRecallCurve.emplace_back(precision, recall);\n  }\n  precisionRecallCurve.emplace_back(1.0, 0.0);\n\n  return precisionRecallCurve;\n}\n\nstd::vector<std::pair<real, real>> Meter::scoreVsTrue(int32_t labelId) const {\n  std::vector<std::pair<real, real>> ret;\n  if (labelId == kAllLabels) {\n    for (const auto& k : labelMetrics_) {\n      auto& labelScoreVsTrue = labelMetrics_.at(k.first).scoreVsTrue;\n      ret.insert(ret.end(), labelScoreVsTrue.begin(), labelScoreVsTrue.end());\n    }\n  } else {\n    if (labelMetrics_.count(labelId)) {\n      ret = labelMetrics_.at(labelId).scoreVsTrue;\n    }\n  }\n  sort(ret.begin(), ret.end());\n\n  return ret;\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/meter.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <unordered_map>\n#include <vector>\n\n#include \"dictionary.h\"\n#include \"real.h\"\n#include \"utils.h\"\n\nnamespace fasttext {\n\nclass Meter {\n  struct Metrics {\n    uint64_t gold;\n    uint64_t predicted;\n    uint64_t predictedGold;\n    mutable std::vector<std::pair<real, real>> scoreVsTrue;\n\n    Metrics() : gold(0), predicted(0), predictedGold(0), scoreVsTrue() {}\n\n    double precision() const {\n      if (predicted == 0) {\n        return std::numeric_limits<double>::quiet_NaN();\n      }\n      return predictedGold / double(predicted);\n    }\n    double recall() const {\n      if (gold == 0) {\n        return std::numeric_limits<double>::quiet_NaN();\n      }\n      return predictedGold / double(gold);\n    }\n    double f1Score() const {\n      if (predicted + gold == 0) {\n        return std::numeric_limits<double>::quiet_NaN();\n      }\n      return 2 * predictedGold / double(predicted + gold);\n    }\n\n    std::vector<std::pair<real, real>> getScoreVsTrue() {\n      return scoreVsTrue;\n    }\n  };\n  std::vector<std::pair<uint64_t, uint64_t>> getPositiveCounts(\n      int32_t labelId) const;\n\n public:\n  Meter() = delete;\n  explicit Meter(bool falseNegativeLabels)\n      : metrics_(),\n        nexamples_(0),\n        labelMetrics_(),\n        falseNegativeLabels_(falseNegativeLabels) {}\n\n  void log(const std::vector<int32_t>& labels, const Predictions& predictions);\n\n  double precision(int32_t);\n  double recall(int32_t);\n  double f1Score(int32_t);\n  std::vector<std::pair<real, real>> scoreVsTrue(int32_t labelId) const;\n  double precisionAtRecall(int32_t labelId, double recall) const;\n  double precisionAtRecall(double recall) const;\n  double recallAtPrecision(int32_t labelId, double recall) const;\n  double recallAtPrecision(double recall) const;\n  std::vector<std::pair<double, double>> precisionRecallCurve(\n      int32_t labelId) const;\n  std::vector<std::pair<double, double>> precisionRecallCurve() const;\n  double precision() const;\n  double recall() const;\n  double f1Score() const;\n  uint64_t nexamples() const {\n    return nexamples_;\n  }\n  void writeGeneralMetrics(std::ostream& out, int32_t k) const;\n\n private:\n  Metrics metrics_{};\n  uint64_t nexamples_;\n  std::unordered_map<int32_t, Metrics> labelMetrics_;\n  bool falseNegativeLabels_;\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/model.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"model.h\"\n#include \"loss.h\"\n#include \"utils.h\"\n\n#include <algorithm>\n#include <stdexcept>\n\nnamespace fasttext {\n\nModel::State::State(int32_t hiddenSize, int32_t outputSize, int32_t seed)\n    : lossValue_(0.0),\n      nexamples_(0),\n      hidden(hiddenSize),\n      output(outputSize),\n      grad(hiddenSize),\n      rng(seed) {}\n\nreal Model::State::getLoss() const {\n  return lossValue_ / nexamples_;\n}\n\nvoid Model::State::incrementNExamples(real loss) {\n  lossValue_ += loss;\n  nexamples_++;\n}\n\nModel::Model(\n    std::shared_ptr<Matrix> wi,\n    std::shared_ptr<Matrix> wo,\n    std::shared_ptr<Loss> loss,\n    bool normalizeGradient)\n    : wi_(wi), wo_(wo), loss_(loss), normalizeGradient_(normalizeGradient) {}\n\nvoid Model::computeHidden(const std::vector<int32_t>& input, State& state)\n    const {\n  Vector& hidden = state.hidden;\n  wi_->averageRowsToVector(hidden, input);\n}\n\nvoid Model::predict(\n    const std::vector<int32_t>& input,\n    int32_t k,\n    real threshold,\n    Predictions& heap,\n    State& state) const {\n  if (k == Model::kUnlimitedPredictions) {\n    k = wo_->size(0); // output size\n  } else if (k <= 0) {\n    throw std::invalid_argument(\"k needs to be 1 or higher!\");\n  }\n  heap.reserve(k + 1);\n  computeHidden(input, state);\n\n  loss_->predict(k, threshold, heap, state);\n}\n\nvoid Model::update(\n    const std::vector<int32_t>& input,\n    const std::vector<int32_t>& targets,\n    int32_t targetIndex,\n    real lr,\n    State& state) {\n  if (input.size() == 0) {\n    return;\n  }\n  computeHidden(input, state);\n\n  Vector& grad = state.grad;\n  grad.zero();\n  real lossValue = loss_->forward(targets, targetIndex, state, lr, true);\n  state.incrementNExamples(lossValue);\n\n  if (normalizeGradient_) {\n    grad.mul(1.0 / input.size());\n  }\n  for (auto it = input.cbegin(); it != input.cend(); ++it) {\n    wi_->addVectorToRow(grad, *it, 1.0);\n  }\n}\n\nreal Model::std_log(real x) const {\n  return std::log(x + 1e-5);\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/model.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <memory>\n#include <random>\n#include <utility>\n#include <vector>\n\n#include \"matrix.h\"\n#include \"real.h\"\n#include \"utils.h\"\n#include \"vector.h\"\n\nnamespace fasttext {\n\nclass Loss;\n\nclass Model {\n protected:\n  std::shared_ptr<Matrix> wi_;\n  std::shared_ptr<Matrix> wo_;\n  std::shared_ptr<Loss> loss_;\n  bool normalizeGradient_;\n\n public:\n  Model(\n      std::shared_ptr<Matrix> wi,\n      std::shared_ptr<Matrix> wo,\n      std::shared_ptr<Loss> loss,\n      bool normalizeGradient);\n  Model(const Model& model) = delete;\n  Model(Model&& model) = delete;\n  Model& operator=(const Model& other) = delete;\n  Model& operator=(Model&& other) = delete;\n\n  class State {\n   private:\n    real lossValue_;\n    int64_t nexamples_;\n\n   public:\n    Vector hidden;\n    Vector output;\n    Vector grad;\n    std::minstd_rand rng;\n\n    State(int32_t hiddenSize, int32_t outputSize, int32_t seed);\n    real getLoss() const;\n    void incrementNExamples(real loss);\n  };\n\n  void predict(\n      const std::vector<int32_t>& input,\n      int32_t k,\n      real threshold,\n      Predictions& heap,\n      State& state) const;\n  void update(\n      const std::vector<int32_t>& input,\n      const std::vector<int32_t>& targets,\n      int32_t targetIndex,\n      real lr,\n      State& state);\n  void computeHidden(const std::vector<int32_t>& input, State& state) const;\n\n  real std_log(real) const;\n\n  static const int32_t kUnlimitedPredictions = -1;\n  static const int32_t kAllLabelsAsTarget = -1;\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/productquantizer.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"productquantizer.h\"\n\n#include <algorithm>\n#include <iostream>\n#include <numeric>\n#include <stdexcept>\n#include <string>\n\nnamespace fasttext {\n\nreal distL2(const real* x, const real* y, int32_t d) {\n  real dist = 0;\n  for (auto i = 0; i < d; i++) {\n    auto tmp = x[i] - y[i];\n    dist += tmp * tmp;\n  }\n  return dist;\n}\n\nProductQuantizer::ProductQuantizer(int32_t dim, int32_t dsub)\n    : dim_(dim),\n      nsubq_(dim / dsub),\n      dsub_(dsub),\n      centroids_(dim * ksub_),\n      rng(seed_) {\n  lastdsub_ = dim_ % dsub;\n  if (lastdsub_ == 0) {\n    lastdsub_ = dsub_;\n  } else {\n    nsubq_++;\n  }\n}\n\nconst real* ProductQuantizer::get_centroids(int32_t m, uint8_t i) const {\n  if (m == nsubq_ - 1) {\n    return &centroids_[m * ksub_ * dsub_ + i * lastdsub_];\n  }\n  return &centroids_[(m * ksub_ + i) * dsub_];\n}\n\nreal* ProductQuantizer::get_centroids(int32_t m, uint8_t i) {\n  if (m == nsubq_ - 1) {\n    return &centroids_[m * ksub_ * dsub_ + i * lastdsub_];\n  }\n  return &centroids_[(m * ksub_ + i) * dsub_];\n}\n\nreal ProductQuantizer::assign_centroid(\n    const real* x,\n    const real* c0,\n    uint8_t* code,\n    int32_t d) const {\n  const real* c = c0;\n  real dis = distL2(x, c, d);\n  code[0] = 0;\n  for (auto j = 1; j < ksub_; j++) {\n    c += d;\n    real disij = distL2(x, c, d);\n    if (disij < dis) {\n      code[0] = (uint8_t)j;\n      dis = disij;\n    }\n  }\n  return dis;\n}\n\nvoid ProductQuantizer::Estep(\n    const real* x,\n    const real* centroids,\n    uint8_t* codes,\n    int32_t d,\n    int32_t n) const {\n  for (auto i = 0; i < n; i++) {\n    assign_centroid(x + i * d, centroids, codes + i, d);\n  }\n}\n\nvoid ProductQuantizer::MStep(\n    const real* x0,\n    real* centroids,\n    const uint8_t* codes,\n    int32_t d,\n    int32_t n) {\n  std::vector<int32_t> nelts(ksub_, 0);\n  memset(centroids, 0, sizeof(real) * d * ksub_);\n  const real* x = x0;\n  for (auto i = 0; i < n; i++) {\n    auto k = codes[i];\n    real* c = centroids + k * d;\n    for (auto j = 0; j < d; j++) {\n      c[j] += x[j];\n    }\n    nelts[k]++;\n    x += d;\n  }\n\n  real* c = centroids;\n  for (auto k = 0; k < ksub_; k++) {\n    real z = (real)nelts[k];\n    if (z != 0) {\n      for (auto j = 0; j < d; j++) {\n        c[j] /= z;\n      }\n    }\n    c += d;\n  }\n\n  std::uniform_real_distribution<> runiform(0, 1);\n  for (auto k = 0; k < ksub_; k++) {\n    if (nelts[k] == 0) {\n      int32_t m = 0;\n      while (runiform(rng) * (n - ksub_) >= nelts[m] - 1) {\n        m = (m + 1) % ksub_;\n      }\n      memcpy(centroids + k * d, centroids + m * d, sizeof(real) * d);\n      for (auto j = 0; j < d; j++) {\n        int32_t sign = (j % 2) * 2 - 1;\n        centroids[k * d + j] += sign * eps_;\n        centroids[m * d + j] -= sign * eps_;\n      }\n      nelts[k] = nelts[m] / 2;\n      nelts[m] -= nelts[k];\n    }\n  }\n}\n\nvoid ProductQuantizer::kmeans(const real* x, real* c, int32_t n, int32_t d) {\n  std::vector<int32_t> perm(n, 0);\n  std::iota(perm.begin(), perm.end(), 0);\n  std::shuffle(perm.begin(), perm.end(), rng);\n  for (auto i = 0; i < ksub_; i++) {\n    memcpy(&c[i * d], x + perm[i] * d, d * sizeof(real));\n  }\n  auto codes = std::vector<uint8_t>(n);\n  for (auto i = 0; i < niter_; i++) {\n    Estep(x, c, codes.data(), d, n);\n    MStep(x, c, codes.data(), d, n);\n  }\n}\n\nvoid ProductQuantizer::train(int32_t n, const real* x) {\n  if (n < ksub_) {\n    throw std::invalid_argument(\n        \"Matrix too small for quantization, must have at least \" +\n        std::to_string(ksub_) + \" rows\");\n  }\n  std::vector<int32_t> perm(n, 0);\n  std::iota(perm.begin(), perm.end(), 0);\n  auto d = dsub_;\n  auto np = std::min(n, max_points_);\n  auto xslice = std::vector<real>(np * dsub_);\n  for (auto m = 0; m < nsubq_; m++) {\n    if (m == nsubq_ - 1) {\n      d = lastdsub_;\n    }\n    if (np != n) {\n      std::shuffle(perm.begin(), perm.end(), rng);\n    }\n    for (auto j = 0; j < np; j++) {\n      memcpy(\n          xslice.data() + j * d,\n          x + perm[j] * dim_ + m * dsub_,\n          d * sizeof(real));\n    }\n    kmeans(xslice.data(), get_centroids(m, 0), np, d);\n  }\n}\n\nreal ProductQuantizer::mulcode(\n    const Vector& x,\n    const uint8_t* codes,\n    int32_t t,\n    real alpha) const {\n  real res = 0.0;\n  auto d = dsub_;\n  const uint8_t* code = codes + nsubq_ * t;\n  for (auto m = 0; m < nsubq_; m++) {\n    const real* c = get_centroids(m, code[m]);\n    if (m == nsubq_ - 1) {\n      d = lastdsub_;\n    }\n    for (auto n = 0; n < d; n++) {\n      res += x[m * dsub_ + n] * c[n];\n    }\n  }\n  return res * alpha;\n}\n\nvoid ProductQuantizer::addcode(\n    Vector& x,\n    const uint8_t* codes,\n    int32_t t,\n    real alpha) const {\n  auto d = dsub_;\n  const uint8_t* code = codes + nsubq_ * t;\n  for (auto m = 0; m < nsubq_; m++) {\n    const real* c = get_centroids(m, code[m]);\n    if (m == nsubq_ - 1) {\n      d = lastdsub_;\n    }\n    for (auto n = 0; n < d; n++) {\n      x[m * dsub_ + n] += alpha * c[n];\n    }\n  }\n}\n\nvoid ProductQuantizer::compute_code(const real* x, uint8_t* code) const {\n  auto d = dsub_;\n  for (auto m = 0; m < nsubq_; m++) {\n    if (m == nsubq_ - 1) {\n      d = lastdsub_;\n    }\n    assign_centroid(x + m * dsub_, get_centroids(m, 0), code + m, d);\n  }\n}\n\nvoid ProductQuantizer::compute_codes(const real* x, uint8_t* codes, int32_t n)\n    const {\n  for (auto i = 0; i < n; i++) {\n    compute_code(x + i * dim_, codes + i * nsubq_);\n  }\n}\n\nvoid ProductQuantizer::save(std::ostream& out) const {\n  out.write((char*)&dim_, sizeof(dim_));\n  out.write((char*)&nsubq_, sizeof(nsubq_));\n  out.write((char*)&dsub_, sizeof(dsub_));\n  out.write((char*)&lastdsub_, sizeof(lastdsub_));\n  out.write((char*)centroids_.data(), centroids_.size() * sizeof(real));\n}\n\nvoid ProductQuantizer::load(std::istream& in) {\n  in.read((char*)&dim_, sizeof(dim_));\n  in.read((char*)&nsubq_, sizeof(nsubq_));\n  in.read((char*)&dsub_, sizeof(dsub_));\n  in.read((char*)&lastdsub_, sizeof(lastdsub_));\n  centroids_.resize(dim_ * ksub_);\n  for (auto i = 0; i < centroids_.size(); i++) {\n    in.read((char*)&centroids_[i], sizeof(real));\n  }\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/productquantizer.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <cstring>\n#include <istream>\n#include <ostream>\n#include <random>\n#include <vector>\n\n#include \"real.h\"\n#include \"vector.h\"\n\nnamespace fasttext {\n\nclass ProductQuantizer {\n protected:\n  const int32_t nbits_ = 8;\n  const int32_t ksub_ = 1 << nbits_;\n  const int32_t max_points_per_cluster_ = 256;\n  const int32_t max_points_ = max_points_per_cluster_ * ksub_;\n  const int32_t seed_ = 1234;\n  const int32_t niter_ = 25;\n  const real eps_ = 1e-7;\n\n  int32_t dim_;\n  int32_t nsubq_;\n  int32_t dsub_;\n  int32_t lastdsub_;\n\n  std::vector<real> centroids_;\n\n  std::minstd_rand rng;\n\n public:\n  ProductQuantizer() {}\n  ProductQuantizer(int32_t, int32_t);\n\n  real* get_centroids(int32_t, uint8_t);\n  const real* get_centroids(int32_t, uint8_t) const;\n\n  real assign_centroid(const real*, const real*, uint8_t*, int32_t) const;\n  void Estep(const real*, const real*, uint8_t*, int32_t, int32_t) const;\n  void MStep(const real*, real*, const uint8_t*, int32_t, int32_t);\n  void kmeans(const real*, real*, int32_t, int32_t);\n  void train(int, const real*);\n\n  real mulcode(const Vector&, const uint8_t*, int32_t, real) const;\n  void addcode(Vector&, const uint8_t*, int32_t, real) const;\n  void compute_code(const real*, uint8_t*) const;\n  void compute_codes(const real*, uint8_t*, int32_t) const;\n\n  void save(std::ostream&) const;\n  void load(std::istream&);\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/quantmatrix.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"quantmatrix.h\"\n\n#include <assert.h>\n#include <iostream>\n#include <stdexcept>\n\nnamespace fasttext {\n\nQuantMatrix::QuantMatrix() : Matrix(), qnorm_(false), codesize_(0) {}\n\nQuantMatrix::QuantMatrix(DenseMatrix&& mat, int32_t dsub, bool qnorm)\n    : Matrix(mat.size(0), mat.size(1)),\n      qnorm_(qnorm),\n      codesize_(mat.size(0) * ((mat.size(1) + dsub - 1) / dsub)) {\n  codes_.resize(codesize_);\n  pq_ = std::unique_ptr<ProductQuantizer>(new ProductQuantizer(n_, dsub));\n  if (qnorm_) {\n    norm_codes_.resize(m_);\n    npq_ = std::unique_ptr<ProductQuantizer>(new ProductQuantizer(1, 1));\n  }\n  quantize(std::forward<DenseMatrix>(mat));\n}\n\nvoid QuantMatrix::quantizeNorm(const Vector& norms) {\n  assert(qnorm_);\n  assert(norms.size() == m_);\n  auto dataptr = norms.data();\n  npq_->train(m_, dataptr);\n  npq_->compute_codes(dataptr, norm_codes_.data(), m_);\n}\n\nvoid QuantMatrix::quantize(DenseMatrix&& mat) {\n  if (qnorm_) {\n    Vector norms(mat.size(0));\n    mat.l2NormRow(norms);\n    mat.divideRow(norms);\n    quantizeNorm(norms);\n  }\n  auto dataptr = mat.data();\n  pq_->train(m_, dataptr);\n  pq_->compute_codes(dataptr, codes_.data(), m_);\n}\n\nreal QuantMatrix::dotRow(const Vector& vec, int64_t i) const {\n  assert(i >= 0);\n  assert(i < m_);\n  assert(vec.size() == n_);\n  real norm = 1;\n  if (qnorm_) {\n    norm = npq_->get_centroids(0, norm_codes_[i])[0];\n  }\n  return pq_->mulcode(vec, codes_.data(), i, norm);\n}\n\nvoid QuantMatrix::addVectorToRow(const Vector&, int64_t, real) {\n  throw std::runtime_error(\"Operation not permitted on quantized matrices.\");\n}\n\nvoid QuantMatrix::addRowToVector(Vector& x, int32_t i, real a) const {\n  real norm = 1;\n  if (qnorm_) {\n    norm = npq_->get_centroids(0, norm_codes_[i])[0];\n  }\n  pq_->addcode(x, codes_.data(), i, a * norm);\n}\n\nvoid QuantMatrix::addRowToVector(Vector& x, int32_t i) const {\n  real norm = 1;\n  if (qnorm_) {\n    norm = npq_->get_centroids(0, norm_codes_[i])[0];\n  }\n  pq_->addcode(x, codes_.data(), i, norm);\n}\n\nvoid QuantMatrix::averageRowsToVector(Vector& x, const std::vector<int32_t>& rows) const {\n  x.zero();\n  for (auto it = rows.cbegin(); it != rows.cend(); ++it) {\n    addRowToVector(x, *it);\n  }\n  x.mul(1.0 / rows.size());\n}\n\nvoid QuantMatrix::save(std::ostream& out) const {\n  out.write((char*)&qnorm_, sizeof(qnorm_));\n  out.write((char*)&m_, sizeof(m_));\n  out.write((char*)&n_, sizeof(n_));\n  out.write((char*)&codesize_, sizeof(codesize_));\n  out.write((char*)codes_.data(), codesize_ * sizeof(uint8_t));\n  pq_->save(out);\n  if (qnorm_) {\n    out.write((char*)norm_codes_.data(), m_ * sizeof(uint8_t));\n    npq_->save(out);\n  }\n}\n\nvoid QuantMatrix::load(std::istream& in) {\n  in.read((char*)&qnorm_, sizeof(qnorm_));\n  in.read((char*)&m_, sizeof(m_));\n  in.read((char*)&n_, sizeof(n_));\n  in.read((char*)&codesize_, sizeof(codesize_));\n  codes_ = std::vector<uint8_t>(codesize_);\n  in.read((char*)codes_.data(), codesize_ * sizeof(uint8_t));\n  pq_ = std::unique_ptr<ProductQuantizer>(new ProductQuantizer());\n  pq_->load(in);\n  if (qnorm_) {\n    norm_codes_ = std::vector<uint8_t>(m_);\n    in.read((char*)norm_codes_.data(), m_ * sizeof(uint8_t));\n    npq_ = std::unique_ptr<ProductQuantizer>(new ProductQuantizer());\n    npq_->load(in);\n  }\n}\n\nvoid QuantMatrix::dump(std::ostream&) const {\n  throw std::runtime_error(\"Operation not permitted on quantized matrices.\");\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/quantmatrix.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <cstdint>\n#include <istream>\n#include <ostream>\n\n#include <memory>\n#include <vector>\n\n#include \"real.h\"\n\n#include \"densematrix.h\"\n#include \"matrix.h\"\n#include \"vector.h\"\n\n#include \"productquantizer.h\"\n\nnamespace fasttext {\n\nclass QuantMatrix : public Matrix {\n protected:\n  std::unique_ptr<ProductQuantizer> pq_;\n  std::unique_ptr<ProductQuantizer> npq_;\n\n  std::vector<uint8_t> codes_;\n  std::vector<uint8_t> norm_codes_;\n\n  bool qnorm_;\n  int32_t codesize_;\n\n public:\n  QuantMatrix();\n  QuantMatrix(DenseMatrix&&, int32_t, bool);\n  QuantMatrix(const QuantMatrix&) = delete;\n  QuantMatrix(QuantMatrix&&) = delete;\n  QuantMatrix& operator=(const QuantMatrix&) = delete;\n  QuantMatrix& operator=(QuantMatrix&&) = delete;\n  virtual ~QuantMatrix() noexcept override = default;\n\n  void quantizeNorm(const Vector&);\n  void quantize(DenseMatrix&& mat);\n\n  real dotRow(const Vector&, int64_t) const override;\n  void addVectorToRow(const Vector&, int64_t, real) override;\n  void addRowToVector(Vector& x, int32_t i) const override;\n  void addRowToVector(Vector& x, int32_t i, real a) const override;\n  void averageRowsToVector(Vector& x, const std::vector<int32_t>& rows) const override;\n  void save(std::ostream&) const override;\n  void load(std::istream&) override;\n  void dump(std::ostream&) const override;\n};\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/real.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\nnamespace fasttext {\n\ntypedef float real;\n}\n"
  },
  {
    "path": "src/utils.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"utils.h\"\n\n#include <iomanip>\n#include <ios>\n\nnamespace fasttext {\n\nnamespace utils {\n\nint64_t size(std::ifstream& ifs) {\n  ifs.seekg(std::streamoff(0), std::ios::end);\n  return ifs.tellg();\n}\n\nvoid seek(std::ifstream& ifs, int64_t pos) {\n  ifs.clear();\n  ifs.seekg(std::streampos(pos));\n}\n\ndouble getDuration(\n    const std::chrono::steady_clock::time_point& start,\n    const std::chrono::steady_clock::time_point& end) {\n  return std::chrono::duration_cast<std::chrono::duration<double>>(end - start)\n      .count();\n}\n\nClockPrint::ClockPrint(int32_t duration) : duration_(duration) {}\n\nstd::ostream& operator<<(std::ostream& out, const ClockPrint& me) {\n  int32_t etah = me.duration_ / 3600;\n  int32_t etam = (me.duration_ % 3600) / 60;\n  int32_t etas = (me.duration_ % 3600) % 60;\n\n  out << std::setw(3) << etah << \"h\" << std::setw(2) << etam << \"m\";\n  out << std::setw(2) << etas << \"s\";\n  return out;\n}\n\nbool compareFirstLess(const std::pair<double, double>& l, const double& r) {\n  return l.first < r;\n}\n\n} // namespace utils\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/utils.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include \"real.h\"\n\n#include <algorithm>\n#include <chrono>\n#include <fstream>\n#include <ostream>\n#include <vector>\n\n#if defined(__clang__) || defined(__GNUC__)\n#define FASTTEXT_DEPRECATED(msg) __attribute__((__deprecated__(msg)))\n#elif defined(_MSC_VER)\n#define FASTTEXT_DEPRECATED(msg) __declspec(deprecated(msg))\n#else\n#define FASTTEXT_DEPRECATED(msg)\n#endif\n\nnamespace fasttext {\n\nusing Predictions = std::vector<std::pair<real, int32_t>>;\n\nnamespace utils {\n\nint64_t size(std::ifstream&);\n\nvoid seek(std::ifstream&, int64_t);\n\ntemplate <typename T>\nbool contains(const std::vector<T>& container, const T& value) {\n  return std::find(container.begin(), container.end(), value) !=\n      container.end();\n}\n\ntemplate <typename T1, typename T2>\nbool containsSecond(\n    const std::vector<std::pair<T1, T2>>& container,\n    const T2& value) {\n  return std::find_if(\n             container.begin(),\n             container.end(),\n             [&value](const std::pair<T1, T2>& item) {\n               return item.second == value;\n             }) != container.end();\n}\n\ndouble getDuration(\n    const std::chrono::steady_clock::time_point& start,\n    const std::chrono::steady_clock::time_point& end);\n\nclass ClockPrint {\n public:\n  explicit ClockPrint(int32_t duration);\n  friend std::ostream& operator<<(std::ostream& out, const ClockPrint& me);\n\n private:\n  int32_t duration_;\n};\n\nbool compareFirstLess(const std::pair<double, double>& l, const double& r);\n\n} // namespace utils\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/vector.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include \"vector.h\"\n\n#include <assert.h>\n\n#include <cmath>\n#include <iomanip>\n\n#include \"matrix.h\"\n\nnamespace fasttext {\n\nVector::Vector(int64_t m) : data_(m) {}\n\nvoid Vector::zero() {\n  std::fill(data_.begin(), data_.end(), 0.0);\n}\n\nreal Vector::norm() const {\n  real sum = 0;\n  for (int64_t i = 0; i < size(); i++) {\n    sum += data_[i] * data_[i];\n  }\n  return std::sqrt(sum);\n}\n\nvoid Vector::mul(real a) {\n  for (int64_t i = 0; i < size(); i++) {\n    data_[i] *= a;\n  }\n}\n\nvoid Vector::addVector(const Vector& source) {\n  assert(size() == source.size());\n  for (int64_t i = 0; i < size(); i++) {\n    data_[i] += source.data_[i];\n  }\n}\n\nvoid Vector::addVector(const Vector& source, real s) {\n  assert(size() == source.size());\n  for (int64_t i = 0; i < size(); i++) {\n    data_[i] += s * source.data_[i];\n  }\n}\n\nvoid Vector::addRow(const Matrix& A, int64_t i, real a) {\n  assert(i >= 0);\n  assert(i < A.size(0));\n  assert(size() == A.size(1));\n  A.addRowToVector(*this, i, a);\n}\n\nvoid Vector::addRow(const Matrix& A, int64_t i) {\n  assert(i >= 0);\n  assert(i < A.size(0));\n  assert(size() == A.size(1));\n  A.addRowToVector(*this, i);\n}\n\nvoid Vector::mul(const Matrix& A, const Vector& vec) {\n  assert(A.size(0) == size());\n  assert(A.size(1) == vec.size());\n  for (int64_t i = 0; i < size(); i++) {\n    data_[i] = A.dotRow(vec, i);\n  }\n}\n\nint64_t Vector::argmax() {\n  real max = data_[0];\n  int64_t argmax = 0;\n  for (int64_t i = 1; i < size(); i++) {\n    if (data_[i] > max) {\n      max = data_[i];\n      argmax = i;\n    }\n  }\n  return argmax;\n}\n\nstd::ostream& operator<<(std::ostream& os, const Vector& v) {\n  os << std::setprecision(5);\n  for (int64_t j = 0; j < v.size(); j++) {\n    os << v[j] << ' ';\n  }\n  return os;\n}\n\n} // namespace fasttext\n"
  },
  {
    "path": "src/vector.h",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#pragma once\n\n#include <cstdint>\n#include <ostream>\n#include <vector>\n\n#include \"aligned.h\"\n#include \"real.h\"\n\nnamespace fasttext {\n\nclass Matrix;\n\nclass Vector {\n protected:\n  intgemm::AlignedVector<real> data_;\n\n public:\n  explicit Vector(int64_t);\n  Vector(const Vector&) = default;\n  Vector(Vector&&) = default;\n  Vector& operator=(const Vector&) = default;\n  Vector& operator=(Vector&&) = default;\n\n  inline real* data() {\n    return data_.data();\n  }\n  inline const real* data() const {\n    return data_.data();\n  }\n  inline real& operator[](int64_t i) {\n    return data_[i];\n  }\n  inline const real& operator[](int64_t i) const {\n    return data_[i];\n  }\n\n  inline int64_t size() const {\n    return data_.size();\n  }\n  void zero();\n  void mul(real);\n  real norm() const;\n  void addVector(const Vector& source);\n  void addVector(const Vector&, real);\n  void addRow(const Matrix&, int64_t);\n  void addRow(const Matrix&, int64_t, real);\n  void mul(const Matrix&, const Vector&);\n  int64_t argmax();\n};\n\nstd::ostream& operator<<(std::ostream&, const Vector&);\n\n} // namespace fasttext\n"
  },
  {
    "path": "tests/fetch_test_data.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nDATADIR=${DATADIR:-data}\n\nreport_error() {\n   echo \"Error on line $1 of $0\"\n}\n\nmyshuf() {\n  perl -MList::Util=shuffle -e 'print shuffle(<>);' \"$@\";\n}\n\nnormalize_text() {\n  tr '[:upper:]' '[:lower:]' | sed -e 's/^/__label__/g' | \\\n    sed -e \"s/'/ ' /g\" -e 's/\"//g' -e 's/\\./ \\. /g' -e 's/<br \\/>/ /g' \\\n        -e 's/,/ , /g' -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/\\!/ \\! /g' \\\n        -e 's/\\?/ \\? /g' -e 's/\\;/ /g' -e 's/\\:/ /g' | tr -s \" \" | myshuf\n}\n\nset -e\ntrap 'report_error $LINENO' ERR\n\nmkdir -p \"${DATADIR}\"\n\n\n# Unsupervised datasets\n\ndata_result=\"${DATADIR}/rw_queries.txt\"\nif [ ! -f \"$data_result\" ]\nthen\n  cut -f 1,2 \"${DATADIR}\"/rw/rw.txt | awk '{print tolower($0)}' | tr '\\t' '\\n' > \"$data_result\" || rm -f \"$data_result\"\nfi\n\ndata_result=\"${DATADIR}/enwik9.zip\"\nif [ ! -f \"$data_result\" ] || \\\n   [ $(md5sum \"$data_result\" | cut -f 1 -d ' ') != \"3e773f8a1577fda2e27f871ca17f31fd\" ]\nthen\n  wget -c http://mattmahoney.net/dc/enwik9.zip -P \"${DATADIR}\" || rm -f \"$data_result\"\n  unzip \"$data_result\" -d \"${DATADIR}\" || rm -f \"$data_result\"\nfi\n\ndata_result=\"${DATADIR}/fil9\"\nif [ ! -f \"$data_result\" ]\nthen\n  perl wikifil.pl \"${DATADIR}/enwik9\" > \"$data_result\" || rm -f \"$data_result\"\nfi\n\ndata_result=\"${DATADIR}/rw/rw.txt\"\nif [ ! -f \"$data_result\" ]\nthen\n  wget -c https://nlp.stanford.edu/~lmthang/morphoNLM/rw.zip -P \"${DATADIR}\"\n  unzip \"${DATADIR}/rw.zip\" -d \"${DATADIR}\" || rm -f \"$data_result\"\nfi\n\n# Supervised datasets\n# Each datasets comes with a .train and a .test to measure performance\n\necho \"Downloading dataset dbpedia\"\n\ndata_result=\"${DATADIR}/dbpedia_csv.tar.gz\"\nif [ ! -f \"$data_result\" ] || \\\n   [ $(md5sum \"$data_result\" | cut -f 1 -d ' ') != \"8139d58cf075c7f70d085358e73af9b3\" ]\nthen\n  wget -c \"https://github.com/le-scientifique/torchDatasets/raw/master/dbpedia_csv.tar.gz\" -O \"$data_result\"\n  wget -c \"https://drive.google.com/uc?export=download&id=0Bz8a_Dbh9QhbQ2Vic1kxMmZZQ1k\" -O \"$data_result\"\n  tar -xzvf \"$data_result\" -C \"${DATADIR}\"\nfi\n\ndata_result=\"${DATADIR}/dbpedia.train\"\nif [ ! -f \"$data_result\" ]\nthen\n  cat \"${DATADIR}/dbpedia_csv/train.csv\" | normalize_text > \"$data_result\" || rm -f \"$data_result\"\nfi\n\ndata_result=\"${DATADIR}/dbpedia.test\"\nif [ ! -f \"$data_result\" ]\nthen\n  cat \"${DATADIR}/dbpedia_csv/test.csv\" | normalize_text > \"$data_result\" || rm -f \"$data_result\"\nfi\n\necho \"Downloading dataset tatoeba for langid\"\n\ndata_result=\"${DATADIR}\"/langid/all.txt\nif [ ! -f \"$data_result\" ]\nthen\n  mkdir -p \"${DATADIR}\"/langid\n  wget http://downloads.tatoeba.org/exports/sentences.tar.bz2 -O \"${DATADIR}\"/langid/sentences.tar.bz2\n  tar xvfj \"${DATADIR}\"/langid/sentences.tar.bz2 --directory \"${DATADIR}\"/langid || exit 1\n  awk -F\"\\t\" '{print\"__label__\"$2\" \"$3}' < \"${DATADIR}\"/langid/sentences.csv | shuf > \"$data_result\"\nfi\n\ndata_result=\"${DATADIR}/langid.train\"\nif [ ! -f \"$data_result\" ]\nthen\n  tail -n +10001 \"${DATADIR}\"/langid/all.txt > \"$data_result\"\nfi\n\ndata_result=\"${DATADIR}/langid.valid\"\nif [ ! -f \"$data_result\" ]\nthen\n  head -n 10000 \"${DATADIR}\"/langid/all.txt > \"$data_result\"\nfi\n\necho \"Downloading cooking dataset\"\n\ndata_result=\"${DATADIR}\"/cooking/cooking.stackexchange.txt\nif [ ! -f \"$data_result\" ]\nthen\n  mkdir -p \"${DATADIR}\"/cooking/\n  wget https://dl.fbaipublicfiles.com/fasttext/data/cooking.stackexchange.tar.gz -O \"${DATADIR}\"/cooking/cooking.stackexchange.tar.gz\n  tar xvzf \"${DATADIR}\"/cooking/cooking.stackexchange.tar.gz --directory \"${DATADIR}\"/cooking || exit 1\n  cat \"${DATADIR}\"/cooking/cooking.stackexchange.txt | sed -e \"s/\\([.\\!?,'/()]\\)/ \\1 /g\" | tr \"[:upper:]\" \"[:lower:]\" > \"${DATADIR}\"/cooking/cooking.preprocessed.txt\nfi\n\ndata_result=\"${DATADIR}\"/cooking.train\nif [ ! -f \"$data_result\" ]\nthen\n  head -n 12404 \"${DATADIR}\"/cooking/cooking.preprocessed.txt > \"${DATADIR}\"/cooking.train\nfi\n\ndata_result=\"${DATADIR}\"/cooking.valid\nif [ ! -f \"$data_result\" ]\nthen\n  tail -n 3000 \"${DATADIR}\"/cooking/cooking.preprocessed.txt > \"${DATADIR}\"/cooking.valid\nfi\n\necho \"Checking for YFCC100M\"\n\ndata_result=\"${DATADIR}\"/YFCC100M/train\nif [ ! -f \"$data_result\" ]\nthen\n  echo 'Download YFCC100M, unpack it and place train into the following path: '\"$data_result\"\n  echo 'You can download YFCC100M at :'\"https://fasttext.cc/docs/en/dataset.html\"\n  echo 'After you download this, run the script again'\n  exit 1\nfi\n\ndata_result=\"${DATADIR}\"/YFCC100M/test\nif [ ! -f \"$data_result\" ]\nthen\n  echo 'Download YFCC100M, unpack it and place test into the following path: '\"$data_result\"\n  echo 'You can download YFCC100M at :'\"https://fasttext.cc/docs/en/dataset.html\"\n  echo 'After you download this, run the script again'\n  exit 1\nfi\n\nDATASET=(\n  ag_news\n  sogou_news\n  dbpedia\n  yelp_review_polarity\n  yelp_review_full\n  yahoo_answers\n  amazon_review_full\n  amazon_review_polarity\n)\n\nID=(\n  0Bz8a_Dbh9QhbUDNpeUdjb0wxRms # ag_news\n  0Bz8a_Dbh9QhbUkVqNEszd0pHaFE # sogou_news\n  0Bz8a_Dbh9QhbQ2Vic1kxMmZZQ1k # dbpedia\n  0Bz8a_Dbh9QhbNUpYQ2N3SGlFaDg # yelp_review_polarity\n  0Bz8a_Dbh9QhbZlU4dXhHTFhZQU0 # yelp_review_full\n  0Bz8a_Dbh9Qhbd2JNdDBsQUdocVU # yahoo_answers\n  0Bz8a_Dbh9QhbZVhsUnRWRDhETzA # amazon_review_full\n  0Bz8a_Dbh9QhbaW12WVVZS2drcnM # amazon_review_polarity\n)\n\n# Small datasets first\n\nfor i in {0..0}\ndo\n  echo \"Downloading dataset ${DATASET[i]}\"\n  if [ ! -f \"${DATADIR}/${DATASET[i]}.train\" ]\n  then\n    wget -c \"https://drive.google.com/uc?export=download&id=${ID[i]}\" -O \"${DATADIR}/${DATASET[i]}_csv.tar.gz\"\n    tar -xzvf \"${DATADIR}/${DATASET[i]}_csv.tar.gz\" -C \"${DATADIR}\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/train.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.train\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/test.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.test\"\n  fi\ndone\n\n# Large datasets require a bit more work due to the extra request page\n\nfor i in {1..7}\ndo\n  echo \"Downloading dataset ${DATASET[i]}\"\n  if [ ! -f \"${DATADIR}/${DATASET[i]}.train\" ]\n  then\n    curl -c /tmp/cookies \"https://drive.google.com/uc?export=download&id=${ID[i]}\" > /tmp/intermezzo.html\n    curl -L -b /tmp/cookies \"https://drive.google.com$(cat /tmp/intermezzo.html | grep -Po 'uc-download-link\" [^>]* href=\"\\K[^\"]*' | sed 's/\\&amp;/\\&/g')\" > \"${DATADIR}/${DATASET[i]}_csv.tar.gz\"\n    tar -xzvf \"${DATADIR}/${DATASET[i]}_csv.tar.gz\" -C \"${DATADIR}\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/train.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.train\"\n    cat \"${DATADIR}/${DATASET[i]}_csv/test.csv\" | normalize_text > \"${DATADIR}/${DATASET[i]}.test\"\n  fi\ndone\n"
  },
  {
    "path": "webassembly/README.md",
    "content": " fastText [![CircleCI](https://circleci.com/gh/facebookresearch/fastText/tree/master.svg?style=svg)](https://circleci.com/gh/facebookresearch/fastText/tree/master)\n\n[fastText](https://fasttext.cc/) is a library for efficient learning of word representations and sentence classification.\n\nIn this document we present how to use fastText in a browser with WebAssembly.\n\n\n# Requirements\n\n[fastText](https://fasttext.cc/) builds on modern Mac OS and Linux distributions.\nSince it uses C\\++11 features, it requires a compiler with good C++11 support.\nYou will need [emscripten](https://emscripten.org/) and a [browser that supports WebAssembly](https://caniuse.com/#feat=wasm).\n\n\n# Building WebAssembly binaries\n\nFirst, download and install emscripten sdk as [described here](https://emscripten.org/docs/getting_started/downloads.html#installation-instructions)\n\n\nMake sure you activated the PATH for emscripten:\n```bash\n$ source /path/to/emsdk/emsdk_env.sh\n```\n\nClone our [repository](https://github.com/facebookresearch/fastText/).\n\n```bash\n$ git clone git@github.com:facebookresearch/fastText.git\n```\n\nBuild WebAssembly binaries:\n```bash\n$ cd fastText\n$ make wasm\n```\n\n\n"
  },
  {
    "path": "webassembly/doc/examples/misc.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n</head>\n<body>\n    <script type=\"module\">\n        const printVector = function(predictions, limit) {\n            limit = limit || Infinity;\n\n            for (let i=0; i<predictions.size() && i<limit; i++){\n                let prediction = predictions.get(i);\n                console.log(predictions.get(i));\n            }\n        }\n\n        import {FastText, addOnPostRun} from \"./fasttext.js\";\n\n        addOnPostRun(() => {\n            let ft = new FastText();\n\n            const url = \"lid.176.ftz\";\n            ft.loadModel(url).then(model => {\n                /* isQuant */\n                console.log(model.isQuant());\n\n                /* getDimension */\n                console.log(model.getDimension());\n\n                /* getWordVector */\n                let v = model.getWordVector(\"Hello\");\n                console.log(v);\n\n                /* getSentenceVector */\n                let v1 = model.getSentenceVector(\"Hello\");\n                console.log(v1);\n                let v2 = model.getSentenceVector(\"Hello this is a sentence\");\n                console.log(v2);\n\n                /* getNearestNeighbors */\n                printVector(model.getNearestNeighbors(\"Hello\", 10));\n\n                /* getAnalogies */\n                printVector(model.getAnalogies(\"paris\", \"france\", \"london\", 10));\n\n                /* getWordId */\n                console.log(model.getWordId(\"Hello\"));\n\n                /* getSubwords */\n                let subWordInformation = model.getSubwords(\"désinstitutionnalisation\");\n                printVector(subWordInformation[0]);\n\n                /* getInputVector */\n                console.log(model.getInputVector(832));\n            });\n        });\n\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "webassembly/doc/examples/predict.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n</head>\n<body>\n    <script type=\"module\">\n        const printVector = function(predictions, limit) {\n            limit = limit || Infinity;\n\n            for (let i=0; i<predictions.size() && i<limit; i++){\n                let prediction = predictions.get(i);\n                console.log(predictions.get(i));\n            }\n        }\n\n        import {FastText, addOnPostRun} from \"./fasttext.js\";\n\n        addOnPostRun(() => {\n            let ft = new FastText();\n\n            const url = \"lid.176.ftz\";\n            ft.loadModel(url).then(model => {\n                let text = \"Bonjour à tous. Ceci est du français\";\n                console.log(text);\n                printVector(model.predict(text, 5, 0.0));\n\n                text = \"Hello, world. This is english\";\n                console.log(text);\n                printVector(model.predict(text, 5, 0.0));\n\n                text = \"Merhaba dünya. Bu da türkçe\"\n                console.log(text);\n                printVector(model.predict(text, 5, 0.0));\n            });\n        });\n\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "webassembly/doc/examples/train_supervised.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n</head>\n<body>\n    <script type=\"module\">\n        const printVector = function(predictions, limit) {\n            limit = limit || Infinity;\n\n            for (let i=0; i<predictions.size() && i<limit; i++){\n                let prediction = predictions.get(i);\n                console.log(predictions.get(i));\n            }\n        }\n\n        const trainCallback = (progress, loss, wst, lr, eta) => {\n            console.log([progress, loss, wst, lr, eta]);\n        };\n\n        import {FastText, addOnPostRun} from \"./fasttext.js\";\n\n        addOnPostRun(() => {\n            let ft = new FastText();\n\n            ft.trainSupervised(\"cooking.train\", {\n                'lr':1.0,\n                'epoch':10,\n                'loss':'hs',\n                'wordNgrams':2,\n                'dim':50,\n                'bucket':200000\n            }, trainCallback).then(model => {\n                console.log('Trained.');\n\n                printVector(model.predict(\"Which baking dish is best to bake a banana bread ?\", 5, 0.0));\n\n                /* getInputMatrix */\n                let inputMatrix = model.getInputMatrix();\n                console.log(inputMatrix.cols());\n                console.log(inputMatrix.rows());\n                console.log(inputMatrix.at(1, 2));\n\n                /* getOutputMatrix */\n                let outputMatrix = model.getOutputMatrix();\n                console.log(outputMatrix.cols());\n                console.log(outputMatrix.rows());\n                console.log(outputMatrix.at(1, 2));\n\n                /* getWords */\n                let wordsInformation = model.getWords();\n                printVector(wordsInformation[0], 30);   // words\n                printVector(wordsInformation[1], 30);   // frequencies\n\n                /* getLabels */\n                let labelsInformation = model.getLabels();\n                printVector(labelsInformation[0], 30);  // labels\n                printVector(labelsInformation[1], 30);  // frequencies\n            });\n        });\n\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "webassembly/doc/examples/train_unsupervised.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n</head>\n<body>\n    <script type=\"module\">\n        const printVector = function(predictions, limit) {\n            limit = limit || Infinity;\n\n            for (let i=0; i<predictions.size() && i<limit; i++){\n                let prediction = predictions.get(i);\n                console.log(predictions.get(i));\n            }\n        }\n\n        const trainCallback = (progress, loss, wst, lr, eta) => {\n            console.log([progress, loss, wst, lr, eta]);\n        };\n\n        import {FastText, addOnPostRun} from \"./fasttext.js\";\n\n        addOnPostRun(() => {\n            let ft = new FastText();\n\n            ft.trainUnsupervised(\"fil9\", 'skipgram', {\n                'lr':0.1,\n                'epoch':1,\n                'loss':'ns',\n                'wordNgrams':2,\n                'dim':50,\n                'bucket':200000\n            }, trainCallback).then(model => {\n                let wordsInformation = model.getWords();\n                printVector(wordsInformation[0], 30);   // words\n                printVector(wordsInformation[1], 30);   // frequencies\n            });\n        });\n\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "webassembly/fasttext.js",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport fastTextModularized from './fasttext_wasm.js';\nconst fastTextModule = fastTextModularized();\n\nlet postRunFunc = null;\nconst addOnPostRun = function(func) {\n  postRunFunc = func;\n};\n\nfastTextModule.addOnPostRun(() => {\n  if (postRunFunc) {\n    postRunFunc();\n  }\n});\n\nconst thisModule = this;\nconst trainFileInWasmFs = 'train.txt';\nconst testFileInWasmFs = 'test.txt';\nconst modelFileInWasmFs = 'model.bin';\n\nconst getFloat32ArrayFromHeap = (len) => {\n  const dataBytes = len * Float32Array.BYTES_PER_ELEMENT;\n  const dataPtr = fastTextModule._malloc(dataBytes);\n  const dataHeap = new Uint8Array(fastTextModule.HEAPU8.buffer,\n    dataPtr,\n    dataBytes);\n  return {\n    'ptr':dataHeap.byteOffset,\n    'size':len,\n    'buffer':dataHeap.buffer\n  };\n};\n\nconst heapToFloat32 = (r) => new Float32Array(r.buffer, r.ptr, r.size);\n\nclass FastText {\n  constructor() {\n    this.f = new fastTextModule.FastText();\n  }\n\n  /**\n   * loadModel\n   *\n   * Loads the model file from the specified url, and returns the\n   * corresponding `FastTextModel` object.\n   *\n   * @param {string}     url\n   *     the url of the model file.\n   *\n   * @return {Promise}   promise object that resolves to a `FastTextModel`\n   *\n   */\n  loadModel(url) {\n    const fetchFunc = (thisModule && thisModule.fetch) || fetch;\n\n    const fastTextNative = this.f;\n    return new Promise(function(resolve, reject) {\n      fetchFunc(url).then(response => {\n        return response.arrayBuffer();\n      }).then(bytes => {\n        const byteArray = new Uint8Array(bytes);\n        const FS = fastTextModule.FS;\n        FS.writeFile(modelFileInWasmFs, byteArray);\n      }).then(() =>  {\n        fastTextNative.loadModel(modelFileInWasmFs);\n        resolve(new FastTextModel(fastTextNative));\n      }).catch(error => {\n        reject(error);\n      });\n    });\n  }\n\n  _train(url, modelName, kwargs = {}, callback = null) {\n    const fetchFunc = (thisModule && thisModule.fetch) || fetch;\n    const fastTextNative = this.f;\n\n    return new Promise(function(resolve, reject) {\n      fetchFunc(url).then(response => {\n        return response.arrayBuffer();\n      }).then(bytes => {\n        const byteArray = new Uint8Array(bytes);\n        const FS = fastTextModule.FS;\n        FS.writeFile(trainFileInWasmFs, byteArray);\n      }).then(() =>  {\n        const argsList = ['lr', 'lrUpdateRate', 'dim', 'ws', 'epoch',\n          'minCount', 'minCountLabel', 'neg', 'wordNgrams', 'loss',\n          'model', 'bucket', 'minn', 'maxn', 't', 'label', 'verbose',\n          'pretrainedVectors', 'saveOutput', 'seed', 'qout', 'retrain',\n          'qnorm', 'cutoff', 'dsub', 'qnorm', 'autotuneValidationFile',\n          'autotuneMetric', 'autotunePredictions', 'autotuneDuration',\n          'autotuneModelSize'];\n        const args = new fastTextModule.Args();\n        argsList.forEach(k => {\n          if (k in kwargs) {\n            args[k] = kwargs[k];\n          }\n        });\n        args.model = fastTextModule.ModelName[modelName];\n        args.loss = ('loss' in kwargs) ?\n          fastTextModule.LossName[kwargs['loss']] : 'hs';\n        args.thread = 1;\n        args.input = trainFileInWasmFs;\n\n        fastTextNative.train(args, callback);\n\n        resolve(new FastTextModel(fastTextNative));\n      }).catch(error => {\n        reject(error);\n      });\n    });\n  }\n\n  /**\n   * trainSupervised\n   *\n   * Downloads the input file from the specified url, trains a supervised\n   * model and returns a `FastTextModel` object.\n   *\n   * @param {string}     url\n   *     the url of the input file.\n   *     The input file must must contain at least one label per line. For an\n   *     example consult the example datasets which are part of the fastText\n   *     repository such as the dataset pulled by classification-example.sh.\n   *\n   * @param {dict}       kwargs\n   *     train parameters.\n   *     For example {'lr': 0.5, 'epoch': 5}\n   *\n   * @param {function}   callback\n   *     train callback function\n   *     `callback` function is called regularly from the train loop:\n   *     `callback(progress, loss, wordsPerSec, learningRate, eta)`\n   *\n   * @return {Promise}   promise object that resolves to a `FastTextModel`\n   *\n   */\n  trainSupervised(url, kwargs = {}, callback) {\n    const self = this;\n    return new Promise(function(resolve, reject) {\n      self._train(url, 'supervised', kwargs, callback).then(model => {\n        resolve(model);\n      }).catch(error => {\n        reject(error);\n      });\n    });\n  }\n\n  /**\n   * trainUnsupervised\n   *\n   * Downloads the input file from the specified url, trains an unsupervised\n   * model and returns a `FastTextModel` object.\n   *\n   * @param {string}     url\n   *     the url of the input file.\n   *     The input file must not contain any labels or use the specified label\n   *     prefixunless it is ok for those words to be ignored. For an example\n   *     consult the dataset pulled by the example script word-vector-example.sh\n   *     which is part of the fastText repository.\n   *\n   * @param {string}     modelName\n   *     Model to be used for unsupervised learning. `cbow` or `skipgram`.\n   *\n   * @param {dict}       kwargs\n   *     train parameters.\n   *     For example {'lr': 0.5, 'epoch': 5}\n   *\n   * @param {function}   callback\n   *     train callback function\n   *     `callback` function is called regularly from the train loop:\n   *     `callback(progress, loss, wordsPerSec, learningRate, eta)`\n   *\n   * @return {Promise}   promise object that resolves to a `FastTextModel`\n   *\n   */\n  trainUnsupervised(url, modelName, kwargs = {}, callback) {\n    const self = this;\n    return new Promise(function(resolve, reject) {\n      self._train(url, modelName, kwargs, callback).then(model => {\n        resolve(model);\n      }).catch(error => {\n        reject(error);\n      });\n    });\n  }\n\n}\n\n\nclass FastTextModel {\n  /**\n     * `FastTextModel` represents a trained model.\n     *\n     * @constructor\n     *\n     * @param {object}       fastTextNative\n     *     webassembly object that makes the bridge between js and C++\n     */\n  constructor(fastTextNative) {\n    this.f = fastTextNative;\n  }\n\n  /**\n     * isQuant\n     *\n     * @return {bool}   true if the model is quantized\n     *\n     */\n  isQuant() {\n    return this.f.isQuant;\n  }\n\n  /**\n     * getDimension\n     *\n     * @return {int}    the dimension (size) of a lookup vector (hidden layer)\n     *\n     */\n  getDimension() {\n    return this.f.args.dim;\n  }\n\n  /**\n     * getWordVector\n     *\n     * @param {string}          word\n     *\n     * @return {Float32Array}   the vector representation of `word`.\n     *\n     */\n  getWordVector(word) {\n    const b = getFloat32ArrayFromHeap(this.getDimension());\n    this.f.getWordVector(b, word);\n\n    return heapToFloat32(b);\n  }\n\n  /**\n     * getSentenceVector\n     *\n     * @param {string}          text\n     *\n     * @return {Float32Array}   the vector representation of `text`.\n     *\n     */\n  getSentenceVector(text) {\n    if (text.indexOf('\\n') != -1) {\n      \"sentence vector processes one line at a time (remove '\\\\n')\";\n    }\n    text += '\\n';\n    const b = getFloat32ArrayFromHeap(this.getDimension());\n    this.f.getSentenceVector(b, text);\n\n    return heapToFloat32(b);\n  }\n\n  /**\n     * getNearestNeighbors\n     *\n     * returns the nearest `k` neighbors of `word`.\n     *\n     * @param {string}          word\n     * @param {int}             k\n     *\n     * @return {Array.<Pair.<number, string>>}\n     *     words and their corresponding cosine similarities.\n     *\n     */\n  getNearestNeighbors(word, k = 10) {\n    return this.f.getNN(word, k);\n  }\n\n  /**\n     * getAnalogies\n     *\n     * returns the nearest `k` neighbors of the operation\n     * `wordA - wordB + wordC`.\n     *\n     * @param {string}          wordA\n     * @param {string}          wordB\n     * @param {string}          wordC\n     * @param {int}             k\n     *\n     * @return {Array.<Pair.<number, string>>}\n     *     words and their corresponding cosine similarities\n     *\n     */\n  getAnalogies(wordA, wordB, wordC, k) {\n    return this.f.getAnalogies(k, wordA, wordB, wordC);\n  }\n\n  /**\n     * getWordId\n     *\n     * Given a word, get the word id within the dictionary.\n     * Returns -1 if word is not in the dictionary.\n     *\n     * @return {int}    word id\n     *\n     */\n  getWordId(word) {\n    return this.f.getWordId(word);\n  }\n\n  /**\n     * getSubwordId\n     *\n     * Given a subword, return the index (within input matrix) it hashes to.\n     *\n     * @return {int}    subword id\n     *\n     */\n  getSubwordId(subword) {\n    return this.f.getSubwordId(subword);\n  }\n\n  /**\n     * getSubwords\n     *\n     * returns the subwords and their indicies.\n     *\n     * @param {string}          word\n     *\n     * @return {Pair.<Array.<string>, Array.<int>>}\n     *     words and their corresponding indicies\n     *\n     */\n  getSubwords(word) {\n    return this.f.getSubwords(word);\n  }\n\n  /**\n     * getInputVector\n     *\n     * Given an index, get the corresponding vector of the Input Matrix.\n     *\n     * @param {int}             ind\n     *\n     * @return {Float32Array}   the vector of the `ind`'th index\n     *\n     */\n  getInputVector(ind) {\n    const b = getFloat32ArrayFromHeap(this.getDimension());\n    this.f.getInputVector(b, ind);\n\n    return heapToFloat32(b);\n  }\n\n  /**\n     * predict\n     *\n     * Given a string, get a list of labels and a list of corresponding\n     * probabilities. k controls the number of returned labels.\n     *\n     * @param {string}          text\n     * @param {int}             k, the number of predictions to be returned\n     * @param {number}          probability threshold\n     *\n     * @return {Array.<Pair.<number, string>>}\n     *     labels and their probabilities\n     *\n     */\n  predict(text, k = 1, threshold = 0.0) {\n    return this.f.predict(text, k, threshold);\n  }\n\n  /**\n     * getInputMatrix\n     *\n     * Get a reference to the full input matrix of a Model. This only\n     * works if the model is not quantized.\n     *\n     * @return {DenseMatrix}\n     *     densematrix with functions: `rows`, `cols`, `at(i,j)`\n     *\n     * example:\n     *     let inputMatrix = model.getInputMatrix();\n     *     let value = inputMatrix.at(1, 2);\n     */\n  getInputMatrix() {\n    if (this.isQuant()) {\n      throw new Error(\"Can't get quantized Matrix\");\n    }\n    return this.f.getInputMatrix();\n  }\n\n  /**\n     * getOutputMatrix\n     *\n     * Get a reference to the full input matrix of a Model. This only\n     * works if the model is not quantized.\n     *\n     * @return {DenseMatrix}\n     *     densematrix with functions: `rows`, `cols`, `at(i,j)`\n     *\n     * example:\n     *     let outputMatrix = model.getOutputMatrix();\n     *     let value = outputMatrix.at(1, 2);\n     */\n  getOutputMatrix() {\n    if (this.isQuant()) {\n      throw new Error(\"Can't get quantized Matrix\");\n    }\n    return this.f.getOutputMatrix();\n  }\n\n  /**\n     * getWords\n     *\n     * Get the entire list of words of the dictionary including the frequency\n     * of the individual words. This does not include any subwords. For that\n     * please consult the function get_subwords.\n     *\n     * @return {Pair.<Array.<string>, Array.<int>>}\n     *     words and their corresponding frequencies\n     *\n     */\n  getWords() {\n    return this.f.getWords();\n  }\n\n  /**\n     * getLabels\n     *\n     * Get the entire list of labels of the dictionary including the frequency\n     * of the individual labels.\n     *\n     * @return {Pair.<Array.<string>, Array.<int>>}\n     *     labels and their corresponding frequencies\n     *\n     */\n  getLabels() {\n    return this.f.getLabels();\n  }\n\n  /**\n     * getLine\n     *\n     * Split a line of text into words and labels. Labels must start with\n     * the prefix used to create the model (__label__ by default).\n     *\n     * @param {string}          text\n     *\n     * @return {Pair.<Array.<string>, Array.<string>>}\n     *     words and labels\n     *\n     */\n  getLine(text) {\n    return this.f.getLine(text);\n  }\n\n  /**\n     * saveModel\n     *\n     * Saves the model file in web assembly in-memory FS and returns a blob\n     *\n     * @return {Blob}           blob data of the file saved in web assembly FS\n     *\n     */\n  saveModel() {\n    this.f.saveModel(modelFileInWasmFs);\n    const content = fastTextModule.FS.readFile(modelFileInWasmFs,\n      { encoding: 'binary' });\n    return new Blob(\n      [new Uint8Array(content, content.byteOffset, content.length)],\n      { type: ' application/octet-stream' }\n    );\n  }\n\n  /**\n     * test\n     *\n     * Downloads the test file from the specified url, evaluates the supervised\n     * model with it.\n     *\n     * @param {string}          url\n     * @param {int}             k, the number of predictions to be returned\n     * @param {number}          probability threshold\n     *\n     * @return {Promise}   promise object that resolves to a `Meter` object\n     *\n     * example:\n     * model.test(\"/absolute/url/to/test.txt\", 1, 0.0).then((meter) => {\n     *     console.log(meter.precision);\n     *     console.log(meter.recall);\n     *     console.log(meter.f1Score);\n     *     console.log(meter.nexamples());\n     * });\n     *\n     */\n  test(url, k, threshold) {\n    const fetchFunc = (thisModule && thisModule.fetch) || fetch;\n    const fastTextNative = this.f;\n\n    return new Promise(function(resolve, reject) {\n      fetchFunc(url).then(response => {\n        return response.arrayBuffer();\n      }).then(bytes => {\n        const byteArray = new Uint8Array(bytes);\n        const FS = fastTextModule.FS;\n        FS.writeFile(testFileInWasmFs, byteArray);\n      }).then(() =>  {\n        const meter = fastTextNative.test(testFileInWasmFs, k, threshold);\n        resolve(meter);\n      }).catch(error => {\n        reject(error);\n      });\n    });\n  }\n}\n\n\nexport {FastText, addOnPostRun};\n"
  },
  {
    "path": "webassembly/fasttext_wasm.cc",
    "content": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n#include <emscripten.h>\n#include <emscripten/bind.h>\n#include <fasttext.h>\n#include <functional>\n#include <sstream>\n#include <string>\n#include <vector>\n\nusing namespace emscripten;\nusing namespace fasttext;\n\nstruct Float32ArrayBridge {\n  uintptr_t ptr;\n  int size;\n};\n\nvoid fillFloat32ArrayFromVector(\n    const Float32ArrayBridge& vecFloat,\n    const Vector& v) {\n  float* buffer = reinterpret_cast<float*>(vecFloat.ptr);\n  assert(vecFloat.size == v.size());\n  for (int i = 0; i < v.size(); i++) {\n    buffer[i] = v[i];\n  }\n}\n\nstd::vector<std::pair<float, std::string>>\npredict(FastText* fasttext, std::string text, int k, double threshold) {\n  std::stringstream ioss(text + std::string(\"\\n\"));\n\n  std::vector<std::pair<float, std::string>> predictions;\n  fasttext->predictLine(ioss, predictions, k, threshold);\n\n  return predictions;\n}\n\nvoid getWordVector(\n    FastText* fasttext,\n    const Float32ArrayBridge& vecFloat,\n    std::string word) {\n  assert(fasttext);\n  Vector v(fasttext->getDimension());\n  fasttext->getWordVector(v, word);\n\n  fillFloat32ArrayFromVector(vecFloat, v);\n}\n\nvoid getSentenceVector(\n    FastText* fasttext,\n    const Float32ArrayBridge& vecFloat,\n    std::string text) {\n  assert(fasttext);\n  Vector v(fasttext->getDimension());\n  std::stringstream ioss(text);\n  fasttext->getSentenceVector(ioss, v);\n\n  fillFloat32ArrayFromVector(vecFloat, v);\n}\n\nstd::pair<std::vector<std::string>, std::vector<int32_t>> getSubwords(\n    FastText* fasttext,\n    std::string word) {\n  assert(fasttext);\n  std::vector<std::string> subwords;\n  std::vector<int32_t> ngrams;\n  std::shared_ptr<const Dictionary> d = fasttext->getDictionary();\n  d->getSubwords(word, ngrams, subwords);\n\n  return std::pair<std::vector<std::string>, std::vector<int32_t>>(\n      subwords, ngrams);\n}\n\nvoid getInputVector(\n    FastText* fasttext,\n    const Float32ArrayBridge& vecFloat,\n    int32_t ind) {\n  assert(fasttext);\n  Vector v(fasttext->getDimension());\n  fasttext->getInputVector(v, ind);\n\n  fillFloat32ArrayFromVector(vecFloat, v);\n}\n\nvoid train(FastText* fasttext, Args* args, emscripten::val jsCallback) {\n  assert(args);\n  assert(fasttext);\n  fasttext->train(\n      *args,\n      [=](float progress, float loss, double wst, double lr, int64_t eta) {\n        jsCallback(progress, loss, wst, lr, static_cast<int32_t>(eta));\n      });\n}\n\nconst DenseMatrix* getInputMatrix(FastText* fasttext) {\n  assert(fasttext);\n  std::shared_ptr<const DenseMatrix> mm = fasttext->getInputMatrix();\n  return mm.get();\n}\n\nconst DenseMatrix* getOutputMatrix(FastText* fasttext) {\n  assert(fasttext);\n  std::shared_ptr<const DenseMatrix> mm = fasttext->getOutputMatrix();\n  return mm.get();\n}\n\nstd::pair<std::vector<std::string>, std::vector<int32_t>> getTokens(\n    const FastText& fasttext,\n    const std::function<std::string(const Dictionary&, int32_t)> getter,\n    entry_type entryType) {\n  std::vector<std::string> tokens;\n  std::vector<int32_t> retVocabFrequencies;\n  std::shared_ptr<const Dictionary> d = fasttext.getDictionary();\n  std::vector<int64_t> vocabFrequencies = d->getCounts(entryType);\n  for (int32_t i = 0; i < vocabFrequencies.size(); i++) {\n    tokens.push_back(getter(*d, i));\n    retVocabFrequencies.push_back(vocabFrequencies[i]);\n  }\n  return std::pair<std::vector<std::string>, std::vector<int32_t>>(\n      tokens, retVocabFrequencies);\n}\n\nstd::pair<std::vector<std::string>, std::vector<int32_t>> getWords(\n    FastText* fasttext) {\n  assert(fasttext);\n  return getTokens(*fasttext, &Dictionary::getWord, entry_type::word);\n}\n\nstd::pair<std::vector<std::string>, std::vector<int32_t>> getLabels(\n    FastText* fasttext) {\n  assert(fasttext);\n  return getTokens(*fasttext, &Dictionary::getLabel, entry_type::label);\n}\n\nstd::pair<std::vector<std::string>, std::vector<std::string>> getLine(\n    FastText* fasttext,\n    const std::string text) {\n  assert(fasttext);\n  std::shared_ptr<const Dictionary> d = fasttext->getDictionary();\n  std::stringstream ioss(text);\n  std::string token;\n  std::vector<std::string> words;\n  std::vector<std::string> labels;\n  while (d->readWord(ioss, token)) {\n    uint32_t h = d->hash(token);\n    int32_t wid = d->getId(token, h);\n    entry_type type = wid < 0 ? d->getType(token) : d->getType(wid);\n\n    if (type == entry_type::word) {\n      words.push_back(token);\n    } else if (type == entry_type::label && wid >= 0) {\n      labels.push_back(token);\n    }\n    if (token == Dictionary::EOS)\n      break;\n  }\n  return std::pair<std::vector<std::string>, std::vector<std::string>>(\n      words, labels);\n}\n\nMeter test(\n    FastText* fasttext,\n    const std::string& filename,\n    int32_t k,\n    float threshold) {\n  assert(fasttext);\n  std::ifstream ifs(filename);\n  if (!ifs.is_open()) {\n    throw std::invalid_argument(\"Test file cannot be opened!\");\n  }\n  Meter meter(false);\n  fasttext->test(ifs, k, threshold, meter);\n  ifs.close();\n\n  return meter;\n}\n\nEMSCRIPTEN_BINDINGS(fasttext) {\n  class_<Args>(\"Args\")\n      .constructor<>()\n      .property(\"input\", &Args::input)\n      .property(\"output\", &Args::output)\n      .property(\"lr\", &Args::lr)\n      .property(\"lrUpdateRate\", &Args::lrUpdateRate)\n      .property(\"dim\", &Args::dim)\n      .property(\"ws\", &Args::ws)\n      .property(\"epoch\", &Args::epoch)\n      .property(\"minCount\", &Args::minCount)\n      .property(\"minCountLabel\", &Args::minCountLabel)\n      .property(\"neg\", &Args::neg)\n      .property(\"wordNgrams\", &Args::wordNgrams)\n      .property(\"loss\", &Args::loss)\n      .property(\"model\", &Args::model)\n      .property(\"bucket\", &Args::bucket)\n      .property(\"minn\", &Args::minn)\n      .property(\"maxn\", &Args::maxn)\n      .property(\"thread\", &Args::thread)\n      .property(\"t\", &Args::t)\n      .property(\"label\", &Args::label)\n      .property(\"verbose\", &Args::verbose)\n      .property(\"pretrainedVectors\", &Args::pretrainedVectors)\n      .property(\"saveOutput\", &Args::saveOutput)\n      .property(\"seed\", &Args::seed)\n      .property(\"qout\", &Args::qout)\n      .property(\"retrain\", &Args::retrain)\n      .property(\"qnorm\", &Args::qnorm)\n      .property(\"cutoff\", &Args::cutoff)\n      .property(\"dsub\", &Args::dsub)\n      .property(\"qnorm\", &Args::qnorm)\n      .property(\"autotuneValidationFile\", &Args::autotuneValidationFile)\n      .property(\"autotuneMetric\", &Args::autotuneMetric)\n      .property(\"autotunePredictions\", &Args::autotunePredictions)\n      .property(\"autotuneDuration\", &Args::autotuneDuration)\n      .property(\"autotuneModelSize\", &Args::autotuneModelSize);\n\n  class_<FastText>(\"FastText\")\n      .constructor<>()\n      .function(\n          \"loadModel\",\n          select_overload<void(const std::string&)>(&FastText::loadModel))\n      .function(\n          \"getNN\",\n          select_overload<std::vector<std::pair<real, std::string>>(\n              const std::string& word, int32_t k)>(&FastText::getNN))\n      .function(\"getAnalogies\", &FastText::getAnalogies)\n      .function(\"getWordId\", &FastText::getWordId)\n      .function(\"getSubwordId\", &FastText::getSubwordId)\n      .function(\"getInputMatrix\", &getInputMatrix, allow_raw_pointers())\n      .function(\"getOutputMatrix\", &getOutputMatrix, allow_raw_pointers())\n      .function(\"getWords\", &getWords, allow_raw_pointers())\n      .function(\"getLabels\", &getLabels, allow_raw_pointers())\n      .function(\"getLine\", &getLine, allow_raw_pointers())\n      .function(\"test\", &test, allow_raw_pointers())\n      .function(\"predict\", &predict, allow_raw_pointers())\n      .function(\"getWordVector\", &getWordVector, allow_raw_pointers())\n      .function(\"getSentenceVector\", &getSentenceVector, allow_raw_pointers())\n      .function(\"getSubwords\", &getSubwords, allow_raw_pointers())\n      .function(\"getInputVector\", &getInputVector, allow_raw_pointers())\n      .function(\"train\", &train, allow_raw_pointers())\n      .function(\"saveModel\", &FastText::saveModel)\n      .property(\"isQuant\", &FastText::isQuant)\n      .property(\"args\", &FastText::getArgs);\n\n  class_<DenseMatrix>(\"DenseMatrix\")\n      .constructor<>()\n      // we return int32_t because \"JS can't represent int64s\"\n      .function(\n          \"rows\",\n          optional_override(\n              [](const DenseMatrix* self) -> int32_t { return self->rows(); }),\n          allow_raw_pointers())\n      .function(\n          \"cols\",\n          optional_override(\n              [](const DenseMatrix* self) -> int32_t { return self->cols(); }),\n          allow_raw_pointers())\n      .function(\n          \"at\",\n          optional_override(\n              [](const DenseMatrix* self, int32_t i, int32_t j) -> const float {\n                return self->at(i, j);\n              }),\n          allow_raw_pointers());\n\n  class_<Meter>(\"Meter\")\n      .constructor<bool>()\n      .property(\n          \"precision\", select_overload<double(void) const>(&Meter::precision))\n      .property(\"recall\", select_overload<double(void) const>(&Meter::recall))\n      .property(\"f1Score\", select_overload<double(void) const>(&Meter::f1Score))\n      .function(\n          \"nexamples\",\n          optional_override(\n              [](const Meter* self) -> int32_t { return self->nexamples(); }),\n          allow_raw_pointers());\n\n  enum_<model_name>(\"ModelName\")\n      .value(\"cbow\", model_name::cbow)\n      .value(\"skipgram\", model_name::sg)\n      .value(\"supervised\", model_name::sup);\n\n  enum_<loss_name>(\"LossName\")\n      .value(\"hs\", loss_name::hs)\n      .value(\"ns\", loss_name::ns)\n      .value(\"softmax\", loss_name::softmax)\n      .value(\"ova\", loss_name::ova);\n\n  emscripten::value_object<Float32ArrayBridge>(\"Float32ArrayBridge\")\n      .field(\"ptr\", &Float32ArrayBridge::ptr)\n      .field(\"size\", &Float32ArrayBridge::size);\n\n  emscripten::value_array<std::pair<float, std::string>>(\n      \"std::pair<float, std::string>\")\n      .element(&std::pair<float, std::string>::first)\n      .element(&std::pair<float, std::string>::second);\n\n  emscripten::register_vector<std::pair<float, std::string>>(\n      \"std::vector<std::pair<float, std::string>>\");\n\n  emscripten::value_array<\n      std::pair<std::vector<std::string>, std::vector<int32_t>>>(\n      \"std::pair<std::vector<std::string>, std::vector<int32_t>>\")\n      .element(\n          &std::pair<std::vector<std::string>, std::vector<int32_t>>::first)\n      .element(\n          &std::pair<std::vector<std::string>, std::vector<int32_t>>::second);\n\n  emscripten::value_array<\n      std::pair<std::vector<std::string>, std::vector<std::string>>>(\n      \"std::pair<std::vector<std::string>, std::vector<std::string>>\")\n      .element(\n          &std::pair<std::vector<std::string>, std::vector<std::string>>::first)\n      .element(&std::pair<std::vector<std::string>, std::vector<std::string>>::\n                   second);\n\n  emscripten::register_vector<float>(\"std::vector<float>\");\n\n  emscripten::register_vector<int32_t>(\"std::vector<int32_t>\");\n\n  emscripten::register_vector<std::string>(\"std::vector<std::string>\");\n}\n"
  },
  {
    "path": "website/README.md",
    "content": "Prerequisites\n- nodejs\n\nTo build locally, navigate into subfolder website and execute\n- npm install\n- npm run start\n"
  },
  {
    "path": "website/blog/2016-08-18-blog-post.md",
    "content": "---\ntitle: Releasing fastText\nauthor: Edouard Grave\nauthorURL: https://research.fb.com/people/grave-edouard/\nauthorFBID: 534178442\n---\n\n## Faster, better text classification!\n\nUnderstanding the meaning of words that roll off your tongue as you talk, or your fingertips as you tap out posts is one of the biggest technical challenges facing artificial intelligence researchers. But it is an essential need. Automatic text processing forms a key part of the day-to-day interaction with your computer; it’s a critical component of everything from web search and content ranking to spam filtering, and when it works well, it’s completely invisible to you. With the growing amount of online data, there is a need for more flexible tools to better understand the content of very large datasets, in order to provide more accurate classification results.\n\nTo address this need, the [Facebook AI Research (FAIR) lab](https://research.fb.com/category/facebook-ai-research-fair/) is open-sourcing [fastText](https://github.com/facebookresearch/fastText), a library designed to help build scalable solutions for text representation and classification. Our ongoing commitment to collaboration and sharing with the community extends beyond just delivering code. We know it’s important to share our learnings to advance the field, so have also [published](http://arxiv.org/abs/1607.04606) [our research](http://arxiv.org/abs/1607.01759) relating to fastText.\n\nFastText combines some of the most successful concepts introduced by the natural language processing and machine learning communities in the last few decades. These include representing sentences with bag of words and bag of n-grams, as well as using subword information, and sharing information across classes through a hidden representation. We also employ a hierachical softmax that takes advantage of the unbalanced distribution of the classes to speed up computation. These different concepts are being used for two different tasks: efficient text classification and learning word vector representations.\n\n<!--truncate-->\n\n## Efficient learning for text classification\n\nDeep neural networks have recently become very popular for text processing. While these models achieve very good performance in limited laboratory practice, they can be slow to train and test, which limits their use on very large datasets.\n\nFastText helps solve this problem. To be efficient on datasets with very large number of categories, it uses a hierarchical classifier instead of a flat structure, in which the different categories are organized in a tree (think binary tree instead of list). This reduces the time complexities of training and testing text classifiers from linear to logarithmic with respect to the number of classes. FastText also exploits the fact that classes are imbalanced (some classes appearing more often than other) by using the Huffman algorithm to build the tree used to represent categories. The depth in the tree of very frequent categories is therefore smaller than for infrequent ones, leading to further computational efficiency.\n\nFastText also represents a text by a low dimensional vector, which is obtained by summing vectors corresponding to the words appearing in the text. In fastText, a low dimensional vector is associated to each word of the vocabulary. This hidden representation is shared across all classifiers for different categories, allowing information about words learned for one category to be used by other categories. These kind of representations, called bag of words, ignore word order. In fastText we also use vectors to represent word ngrams to take into account local word order, which is important for many text classification problems.\n\nOur experiments show that fastText is often on par with deep learning classifiers in terms of accuracy, and many orders of magnitude faster for training and evaluation. With fastText, we were often able to cut training times from several days to just a few seconds, and achieve state-of-the-art performance on many standard problems, such as sentiment analysis or tag prediction.\n\n![fastText performance](../../../../img/blog/2016-08-18-blog-post-img1.png)\n_Comparison between fastText and deep learning-based methods._\n\n## A dedicated tool\n\nText classification is very important in the commercial world; spam or clickbait filtering being perhaps the most ubiquitous example. There are tools that design models for general classification problems (such as Vowpal Wabbit or libSVM), but fastText is exclusively dedicated to text classification. This allows it to be quickly trained on extremely large datasets. We have seen results of models trained on more than 1 billion words in less than 10 minutes using a standard multicore CPU. FastText can also classify a half-million sentences among more than 300,000 categories in less than five minutes.\n\n## Works on many languages\n\nBesides text classification, fastText can also be used to learn vector representations of words. It has been designed to work on a variety of languages, including English, German, Spanish, French, and Czech, by taking advantage of the languages morphological structure. It uses a simple yet effective way of incorporating subword information that turns out to work very well for morphologically rich languages like Czech, demonstrating that carefully designed character ngram features are strong source of information to enrich the word representations. FastText can achieve significantly better performance than the popular [word2vec](https://code.google.com/archive/p/word2vec/) tool, or other state-of-the-art morphological word representations.\n\n![fastText performance](../../../../img/blog/2016-08-18-blog-post-img2.png)\n_Comparison between fastText and state-of-the-art word representations for different languages._\n\nWe hope the introduction of fastText helps the community build better, more scalable solutions for text representation and classification. Delivered as an open-source library, we believe fastText is a valuable addition to the research and engineering communities, which will ultimately help us all design better applications and further advances in language understanding.\n"
  },
  {
    "path": "website/blog/2017-05-02-blog-post.md",
    "content": "---\ntitle: fastText on mobile\nauthor: Armand Joulin\nauthorURL: https://research.fb.com/people/joulin-armand/\nauthorFBID: 696297201\n---\n\nToday, the Facebook AI Research (FAIR) team released pre-trained vectors in 294 languages, accompanied by two quick-start tutorials, to increase fastText’s accessibility to the large community of students, software developers, and researchers interested in machine learning. fastText’s models now fit on smartphones and small computers like Raspberry Pi devices thanks to a new functionality that reduces memory usage.\n\nFirst open-sourced last summer, [fastText](https://github.com/facebookresearch/fastText) was designed to be accessible to anyone with generic hardware like notebooks and X86 cloud instances, or almost any platform with enough memory. Smartphone and small computer support extend fastText’s accessibility to an even larger community and a greater range of applications.\n\n<!--truncate-->\n\n### fastText on small memory devices\n\nTo reach more people and more applications via mobile phones and other internet-connected devices, this release contains a new functionality that reduces the memory consumed by fastText models. The typical model built on earlier versions use a few gigabytes of memory; this new feature helps to reduce memory to as little as a few hundred kilobytes.\n\nSqueezing models into reduced memory footprints was made possible through collaboration with the FAIR team that recently released [FAISS](https://github.com/facebookresearch/faiss), an open source library for efficient similarity search and clustering of high-dimensional vectors. The FAIR fastText team published “[FastText.zip: Compressing Text Classification Models](https://arxiv.org/pdf/1612.03651.pdf),” which describes the combination of the two research projects that enabled the reduction to overcome the challenges to shipping models on small memory devices.\n\n### Simple yet state-of-the-art text classifier\n\nfastText is designed to be simple to use for developers, domain experts, and students. Its speed allows you to iterate quickly and refine your models without specialized hardware. fastText models can be trained on more than a billion words on any multicore CPU in less than few minutes and can classify half a million sentences with hundreds of thousands of classes in less than a minute.\n\nfastText classification compares favorably with more complex neural network architectures implemented for specialized GPU hardware. The performance comparisons were reported in another paper authored by the fastText team, “[Bag of Tricks for Efficient Text Classification](https://arxiv.org/pdf/1607.01759.pdf).” Little or no accuracy is lost with fastText compared with more complex neural network models. For example, fastText performed competitively on sentiment analysis problems when compared to the results of convolutional neural networks (Zhang et al. 2015).\n\n![fastText performance](../../../../img/blog/2017-05-02-blog-post-img1.jpg)\n\n## How Facebook AI Research engineered fastText’s performance\n\nThroughout the history of machine learning, research developments have often outpaced hardware performance, and researchers have worked to optimize for practical applications by maximizing accuracy while minimizing computational complexity. Facebook's research teams have developed unique expertise in fitting the best possible model to the hardware available. With fastText, however, one additional constraint is extending machine learning capabilities to everyone who has a multicore CPU computer with a C++ compiler — pretty much everyone developing software or in an engineering role.\n\nGiven this expertise, we were able to build a simple yet powerful library to solve important text classification problems tailored for generic, less powerful hardware. fastText is both impactful as a library for learning text classification and for adding accurate text classification features to applications. fastText also enables developers to add text classification features such as ranking comments with hashtags and ranking reviews based on sentiment analysis without a formal machine learning education.\n\nLow dimensional vectors were used to improve performance. Large vectors improve accuracy because of the larger number of features in the word vector but are computationally expensive at training time. State of the art performance is possible with low dimensional vectors if the right features are present and the models can scale to a very large corpus. During encoding, vector size is reduced by presenting examples of low dimensional vectors obtained through conventional optimization methods.\n\nTraining time is reduced using a hierarchical softmax based on the Huffman coding tree (a binary tree variant). In operation, search times for the most likely class is also reduced, because each leaf of the tree representing a word vector has an associated probability. Leaves on lower branches have associated descending probabilities. Calculating the probability over the path rapidly narrows to the most likely path as lower probability branches are discarded.\n\nfastText uses a bag-of-words model to extract features and a linear classifier to train the model. Because the bag-of-words model does not recognize sentence word order, the generalized contextual features of high-frequency words are not shared with low-frequency words, resulting in lower accuracy proportional to lower word frequency. Replacing the bag-of-words model with an n-gram model that recognizes word order would share features of high-frequency word vectors with lower frequency word vectors, but would add complexity, training time, and computational expense. Using fastText, partial n-gram information can be applied during training time as a training setting by selecting the number of words before and after the subject word in a sentence to balance training time and accuracy.\n\nfastText can achieve better performance than the popular word2vec tool, or other state-of-the-art morphological word representations, and includes many more languages. fastText will receive future improvements from the FAIR team and fastText community making it more accessible.\n\nEven though the accuracy is comparable, fastText is much faster. When compared with state-of-the-art neural network based models, fastText is 1,000 to 10,000 times faster. This is the result of the simplicity of its implementation that uses low-rank linear models and standard features like bigrams.\n\nThe table below is an indication of fastText’s performance.\n\n![fastText performance](../../../../img/blog/2017-05-02-blog-post-img2.jpg)\n\n\n## Self-paced fastText tutorials\n\nOne of the tutorials accompanying this release explains supervised text classification. By stepping through the tutorial, the developer gains experience building a simple text classifier on a custom dataset. Then the tutorial explains how to tune the model to attain the best possible performance.\n\nfastText is designed to be extremely fast. This guarantees the responsiveness that developers need to quickly iterate over different settings that affect accuracy. For example, n-grams improve the accuracy of applications like sentiment analysis where word order is important. Hierarchical softmax is shown to increase the speed of applications like hashtag predication where the output space is large.\n\nIn the second tutorial, fastText is used to learn word representations from Wikipedia pages. The tutorial steps through simple ways to test the quality of a model. Queries return a word’s nearest neighbors or given a related pair example, analogies produce the most closely related words to a a queried word. For example, a model can predict that Paris is related to France in the same way as Berlin to Germany. Even words that the model has not been trained on can be tested! fastText looks at groups of characters that build-up the word to produce its representation to find likely candidates for misspelled words and made-up words like ”shiftgear.”\n\nStudents and developers interested in machine learning can get right to work with the newly released self-paced tutorials [available on our website](https://fasttext.cc/docs/en/supervised-tutorial.html). The tutorials are straightforward and do not require advanced knowledge in machine learning. The tutorials also offer insights into other features of the fastText library for more advanced developers.\n\nUse cases include experimentation, prototyping, and production. fastText can be used as a command line, linked to a C++ application, or used as a library. Community contributed Python and Lua APIs are also available.\n\n"
  },
  {
    "path": "website/blog/2017-10-02-blog-post.md",
    "content": "---\ntitle: Language identification\nauthor: Edouard Grave\nauthorURL: https://research.fb.com/people/grave-edouard/\nauthorFBID: 534178442\n---\n\n## Fast and accurate language identification using fastText\n\nWe are excited to announce that we are publishing a fast and accurate tool for text-based language identification. It can recognize more than 170 languages, takes less than 1MB of memory and can classify thousands of documents per second. It is based on fastText library and is released [here](https://fasttext.cc/docs/en/language-identification.html) as open source, free to use by everyone. We are releasing several versions of the model, each optimized for different memory usage, and compared them to the popular tool [langid.py](https://github.com/saffsd/langid.py).\n\n<!--truncate-->\n\n![Evaluation of our models](../../../../img/blog/2017-10-02-blog-post-img1.png)\n\nOur tool uses various features offered by the fastText library, such as subwords or model compression. In the remainder of this blogpost, we will explain how these work, and how to use them to build a fast and small language detector.\n\n\n## Training your own language detector\n\nBuilding a fast and small language detector with fastText can be done with a few command lines, as we will show below. First, we need a dataset to train our model. Here, we propose to use sentences from the Tatoeba website, which can be downloaded from https://tatoeba.org/eng/downloads. Note that for the sake of simplicity, we use a small quantity of data for this blogpost . If you want to train a state-of-the-art model comparable with our pre-trained model, you will need to use a larger quantity of data.\n\n### Training data \n\nFirst, let's download the training data:\n\n```bash\n>> wget http://downloads.tatoeba.org/exports/sentences.tar.bz2\n>> bunzip2 sentences.tar.bz2\n>> tar xvf sentences.tar\n```\nThen, we need to put our training data into fastText format, which is easily done using:\n```bash\n>> awk -F\"\\t\" '{print\"__label__\"$2\" \"$3}' < sentences.csv | shuf > all.txt\n```\nWe can then split our training data into training and validation sets:\n```bash\n>> head -n 10000 all.txt > valid.txt\n>> tail -n +10001 all.txt > train.txt\n```\n### First model\nWe can now train our first model\n```bash\n>> ./fasttext supervised -input train.txt -output langdetect -dim 16\n```\nand test it on the held out data:\n```bash\n>> ./fasttext test langdetect.bin valid.txt\n```\nThis model should have an accuracy around 96.5%. Let's see if we can do better, by changing the default parameters.\n\n### Using subword features\n\nThe first way to improve our baseline model is to use subword features, which enhance the classifier by taking into account the structure of words. It uses a simple, yet effective way of incorporating such information: each word is represented by the set of all character ngrams of a given length appearing in that word. As an example, when using subwords of length 3, the word skiing is represented by\n\n    { skiing, ski, kii, iin, ing }\n\nA key advantage of these features is that out-of-vocabulary words, such as misspelled words, can still be represented at test time by their subwords representations. This make text classifiers much more robust, especially for problems with small training sets, or for morphologically rich languages. Users can enable these features by simply specifying the value of the minimum and maximum character ngram size with the command line options -minn and -maxn:\n```bash\n>> ./fasttext supervised -input train.txt -output langdetect -dim 16 -minn 2 -maxn 4\n```\nIn that case, fastText now uses all the character ngrams of length 2, 3 and 4. The accuracy of the classifier should improve, and be above 98.5%. We can also make the training and testing faster, by using the hierarchical softmax:\n```bash\n>> ./fasttext supervised -input train.txt -output langdetect -dim 16 -minn 2 -maxn 4 -loss hs\n```\n### Model compression\n\nFinally, we can make the size of the model file much smaller, by using model compression:\n```bash\n>> ./fasttext quantize -input train.txt -output langdetect -qnorm -cutoff 50000 -retrain\n```\nAfter running this command line, you should get a new model, langdetect.ftz, with a file size smaller than 1MB (instead of 350MB for the original model).\n\nHow does model quantization work? It is quite simple, and relies on two operations: weight quantization and feature selection. We now briefly describe these two operations in detail.\n\n**Weight quantization.** The first operation is to compress the weights of the models using a technique called vector quantization. Quantization is the process of mapping values from a large set (e.g. floating point numbers) to a smaller set (e.g. bytes). Here, we use a variant which is well suited to compress vectors, instead of scalar values. The algorithm, called product quantization, works as follow. First, each vector is split into smaller vectors, for example of dimension 2. Then, we run the k-means algorithm on these sub-vectors, and represent each sub-vector by the closest centroid obtained with k-means. Therefore, each 2-dimension vector is now represented by 1 byte (to store the centroid), instead of 8 bytes (to store the 2 floats), therefore achieving a compression rate of 8. If we instead split the vectors into sub-vectors of dimension 4, we can achieve a compression rate of 16 (but often with a higher distortion rate). This tradeoff between compression and distortion can be controlled using the -dsub command line option, which set the dimension of the sub-vectors.\n\n**Feature selection.** The second operation we apply to compress models is to remove features which do not have a big influence on the decision of the classifier. For this, our goal is to find the model with a given number of feature (e.g. 50,000 in the previous example) which is the closest from the original model. The solution of this problem is to keep the features (either words, subwords, or ngrams), which have the vectors with the largest norms.\n\n### References\n\n* [Quantization](https://en.wikipedia.org/wiki/Quantization_%28signal_processing%29)\n* [Vector quantization](https://en.wikipedia.org/wiki/Vector_quantization)\n* [k-means algorithm](https://en.wikipedia.org/wiki/K-means_clustering)\n* [Feature selection](https://en.wikipedia.org/wiki/Feature_selection)\n\n### ISO codes of languages supported\n```\naf als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk ce ceb ckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh\n```\n"
  },
  {
    "path": "website/blog/2019-06-25-blog-post.md",
    "content": "---\ntitle: New release of python module\nauthor: Onur Çelebi\nauthorURL: https://research.fb.com/people/celebi-onur/\nauthorFBID: 663146146\n---\n\nToday, we are happy to release a new version of the fastText python library. The main goal of this release is to merge two existing python modules: the official `fastText` module which was available on our github repository and the unofficial `fasttext` module which was available on pypi.org. We hope that this new version will address the confusion due to the previous existence of two similar, but different, python modules.\n\nThe new version of our library is now available on [pypi.org](https://pypi.org/project/fasttext/) as well as on our github repository, and you can find [an overview of its API here](/docs/en/python-module.html).\n\n\n\nfastText vs fasttext: what happened?\n----------------------------------\nThere was an ongoing confusion among our user community about the existence of both `fastText` and `fasttext` modules.\n\nWhen fastText was first released in 2016, it was a command line only utility. Very soon, people wanted to use fastText's capabilities from python without having to call a binary for each action. In August 2016, [Bayu Aldi Yansyah](https://github.com/pyk), a developer outside of Facebook, published a python wrapper of fastText. His work was very helpful to a lot of people in our community and he published his unofficial python library on pypi with the pretty straighforward module name `fasttext` (note the lowercase `t`).\n\nLater, our team began to work on an official python binding of fastText, that was published under the same github repository as the C++ source code. However, the module name for this official library was `fastText` (note the uppercase `T`).\n\nLast year, Bayu Aldi Yansyah gave us admin access to the pypi project so that we could merge the two libraries.\n\nTo sum up, we ended up with two libraries that had:\n\n- almost the same name\n- different APIs\n- different versions\n- different ways to install\n\nThat was a very confusing situation for the community.\n\nWhat actions did we take?\n--------------------------\nToday we are merging the two python libraries. We decided to keep the official API and top level functions such as `train_unsupervised` and `train_supervised` as well as returning numpy objects. We remove `cbow`, `skipgram` and `supervised` functions from the unofficial API. However, [we bring nice ideas](#wordvectormodel-and-supervisedmodel-objects) from the unofficial API to the official one. In particular, we liked the pythonic approach of `WordVectorModel`. This new python module is named `fasttext`, and is available on both [pypi](https://pypi.org/project/fasttext/) and our [github](https://github.com/facebookresearch/fastText) repository.\n\nFrom now, we will refer to the tool as \"fastText\", however the name of the python module is `fasttext`.\n\n\n\nWhat is the right way to do now?\n--------------------------------\n\nBefore, you would either use `fastText` (uppercase `T`):\n```python\nimport fastText\n# and call:\nfastText.train_supervised\nfastText.train_unsupervised\n```\n\nor use `fasttext` (lowercase `t`):\n```python\nimport fasttext\n# and call:\nfasttext.cbow\nfasttext.skipgram\nfasttext.supervised\n```\n\n\nNow, the right way to do is to\n`import fasttext` (lowercase `t`)\nand use\n```python\nimport fasttext\n# and call:\nfasttext.train_supervised\nfasttext.train_unsupervised\n```\n\nWe are keeping the lowercase `fasttext` module name, while we keep the `fastText` API.\n\nThis is because:\n\n- the standard way to name python modules is all lowercases\n- the API from `fastText` is exposing numpy arrays, which is widely used by the machine learning community.\n\n\nYou can find a more comprehensive overview of our python API [here](/docs/en/python-module.html).\n\nShould I modify my existing code?\n---------------------------------\nDepending on the version of the python module you were using, you might need to do some little modifications on your existing code.\n\n### 1) You were using the official `fastText` module:\n\nYou don't have to do much. Just replace your `import fastText` lines by `import fasttext` and everything should work as usual.\n\n### 2) You were using the unofficial `fasttext` module:\n\nIf you were using the functions `cbow`, `skipgram`, `supervised` and/or `WordVectorModel`, `SupervisedModel` objects, you were using the unofficial `fasttext` module.\n\nUpdating your code should be pretty straightforward, but it still implies some little changes.\n\n#### `cbow` function: use `train_unsupervised` instead.\nFor example, replace:\n\n```\nfasttext.cbow(\"train.txt\", \"model_file\", lr=0.05, dim=100, ws=5, epoch=5)\n```\nwith\n```\nmodel = fasttext.train_unsupervised(\"train.txt\", model='cbow', lr=0.05, dim=100, ws=5, epoch=5)\nmodel.save_model(\"model_file.bin\")\n```\n\n#### `skipgram` function: use `train_unsupervised` instead.\nFor example, replace:\n\n```\nfasttext.skipgram(\"train.txt\", \"model_file\", lr=0.05, dim=100, ws=5, epoch=5)\n```\nwith\n```\nmodel = fasttext.train_unsupervised(\"train.txt\", model='skipgram', lr=0.05, dim=100, ws=5, epoch=5)\nmodel.save_model(\"model_file.bin\")\n```\n\n\n#### `supervised` function: use `train_supervised` instead\nFor example, replace:\n```\nfasttext.supervised(\"train.txt\", \"model_file\", lr=0.1, dim=100, epoch=5, word_ngrams=2, loss='softmax')\n```\nwith\n```\nmodel = fasttext.train_supervised(\"train.txt\", lr=0.1, dim=100, epoch=5, , word_ngrams=2, loss='softmax')\nmodel.save_model(\"model_file.bin\")\n```\n\n#### Parameters\n\n- As you can see, you can use either `word_ngrams` or `wordNgrams` as parameter name. Because the parameter names from the unofficial API are mapped to the official ones: `min_count` to `minCount`, `word_ngrams` to `wordNgrams`, `lr_update_rate` to `lrUpdateRate`, `label_prefix` to `label` and `pretrained_vectors` to `pretrainedVectors`.\n- `silent` parameter is not supported. Use `verbose` parameter instead.\n- `encoding` parameter is not supported, every input should be encoded in `utf-8`.\n\n\n### `WordVectorModel` and `SupervisedModel` objects\n\nInstead of `WordVectorModel` and `SupervisedModel` objects, we return a model object that mimics some nice ideas from the unofficial API.\n\n```python\nmodel = fasttext.train_unsupervised(\"train.txt\", model='skipgram')\nprint(model.words)      # list of words in dictionary\nprint(model['king'])    # get the vector of the word 'king'\nprint('king' in model)  # check if a word is in dictionary\n```\n\n\n\n```python\nmodel = fasttext.train_supervised(\"train.txt\")\nprint(model.words)      # list of words in dictionary\nprint(model.labels)     # list of labels\n```\n\nThe model object also contains the arguments of the training:\n\n```python\nprint(model.epoch)\nprint(model.loss)\nprint(model.wordNgrams)\n```\n\nThank you!\n------------\nWe want to thank our incredible community. We truly appreciate your feedback, a big thank you to everyone reporting issues and contributing to the project. In particular we want to express how grateful we are to [Bayu Aldi Yansyah](https://github.com/pyk) who did a great job with his python library and for giving us the ownership of the pypi `fasttext` project.\n"
  },
  {
    "path": "website/core/Footer.js",
    "content": "/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nconst React = require(\"react\");\n\nconst githubButton = (\n  <a\n    className=\"github-button\"\n    href=\"https://github.com/facebookresearch/fastText/\"\n    data-icon=\"octicon-star\"\n    data-count-href=\"/fastText/stargazers\"\n    data-count-api=\"/repos/fastText#stargazers_count\"\n    data-count-aria-label=\"# stargazers on GitHub\"\n    aria-label=\"Star this project on GitHub\"\n  >\n    Star\n  </a>\n);\n\nclass Footer extends React.Component {\n  render() {\n    const language = this.props.language || \"en\";\n    const currentYear = new Date().getFullYear();\n    return (\n      <footer className=\"nav-footer\" id=\"footer\">\n        <section className=\"sitemap\">\n          <a href={this.props.config.baseUrl} className=\"nav-home\">\n            <img\n              src={this.props.config.baseUrl + this.props.config.footerIcon}\n              alt={this.props.config.title}\n            />\n          </a>\n          <div>\n            <h5>Support</h5>\n            <a\n              href={\n                this.props.config.baseUrl + \"docs/\" + language + \"/support.html\"\n              }\n            >\n              Getting Started\n            </a>\n            <a\n              href={\n                this.props.config.baseUrl +\n                \"docs/\" +\n                language +\n                \"/supervised-tutorial.html\"\n              }\n            >\n              Tutorials\n            </a>\n            <a\n              href={\n                this.props.config.baseUrl +\n                \"docs/\" +\n                language +\n                \"/faqs.html\"\n              }\n            >\n              FAQs\n            </a>\n            <a\n              href={\n                this.props.config.baseUrl +\n                \"docs/\" +\n                language +\n                \"/api.html\"\n              }\n            >\n              API\n            </a>\n          </div>\n          <div>\n            <h5>Community</h5>\n            <a\n              href=\"https://www.facebook.com/groups/1174547215919768/\"\n              target=\"_blank\"\n            >\n              Facebook Group\n            </a>\n            <a\n              href=\"http://stackoverflow.com/questions/tagged/fasttext\"\n              target=\"_blank\"\n            >\n              Stack Overflow\n            </a>\n            <a\n              href=\"https://groups.google.com/forum/#!forum/fasttext-library\"\n              target=\"_blank\"\n            >\n              Google Group\n           </a>\n          </div>\n          <div>\n            <h5>More</h5>\n            <a href={this.props.config.baseUrl + \"blog\"}>Blog</a>\n            <a href=\"https://github.com/facebookresearch/fastText\" target=\"_blank\">GitHub</a>\n            {githubButton}\n          </div>\n        </section>\n\n        <a\n          href=\"https://code.facebook.com/projects/\"\n          target=\"_blank\"\n          className=\"fbOpenSource\"\n        >\n          <img\n            src={this.props.config.baseUrl + \"img/oss_logo.png\"}\n            alt=\"Facebook Open Source\"\n            width=\"170\"\n            height=\"45\"\n          />\n        </a>\n        <section className=\"copyright\">\n          Copyright &copy; {currentYear} Facebook Inc.\n        </section>\n      </footer>\n    );\n  }\n}\n\nmodule.exports = Footer;\n"
  },
  {
    "path": "website/package.json",
    "content": "{\n  \"scripts\": {\n    \"start\": \"docusaurus-start\",\n    \"build\": \"docusaurus-build\",\n    \"publish-gh-pages\": \"docusaurus-publish\",\n    \"examples\": \"docusaurus-examples\"\n  },\n  \"devDependencies\": {\n    \"docusaurus\": \"^1.0.0-alpha.35\",\n    \"babel-preset-react\": \"^6.24.1\"\n  }\n}\n"
  },
  {
    "path": "website/pages/en/index.js",
    "content": "/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nconst React = require(\"react\");\n\nconst CompLibrary = require(\"../../core/CompLibrary.js\");\nconst Marked = CompLibrary.Marked; /* Used to read markdown */\nconst Container = CompLibrary.Container;\nconst GridBlock = CompLibrary.GridBlock;\n\nconst siteConfig = require(process.cwd() + \"/siteConfig.js\");\n\nclass Button extends React.Component {\n  render() {\n    return (\n      <div className=\"pluginWrapper buttonWrapper\">\n        <a className=\"button\" href={this.props.href} target={this.props.target}>\n          {this.props.children}\n        </a>\n      </div>\n    );\n  }\n}\n\nButton.defaultProps = {\n  target: \"_self\"\n};\n\n// head of the page\nclass HomeSplash extends React.Component {\n  render() {\n    return (\n      <div className=\"homeContainer\">\n        <div className=\"homeSplashFade\">\n          <div className=\"wrapper homeWrapper\">\n            <div className=\"inner\">\n              <img src={siteConfig.baseUrl + siteConfig.mainImg} width=\"50%\"/>\n              <h2 className=\"projectTitle\">\n                <small>{siteConfig.tagline}</small>\n              </h2>\n              <div className=\"section promoSection\">\n                <div className=\"promoRow\">\n                  <div className=\"pluginRowBlock\">\n                    <Button\n                      href={\n                        siteConfig.baseUrl + \"docs/\" + this.props.language + \"/support.html\"\n                      }\n                    >\n                      Get Started\n                    </Button>\n                    <Button\n                      href={\n                        siteConfig.baseUrl + \"docs/\" + this.props.language + \"/english-vectors.html\"\n                      }\n                    >\n                      Download Models\n                    </Button>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nfunction VideoContainer() {\n  return (\n    <div className=\"container text--center margin-bottom--xl\">\n      <div className=\"row\">\n        <div className=\"col\" style={{textAlign: 'center'}}>\n          <h2>Watch Introductory Video</h2>\n          <div>\n            <iframe\n              width=\"560\"\n              height=\"315\"\n              src=\"https://www.youtube.com/embed/og183Y9yHFs\"\n              title=\"Explain Like I'm 5: fastText\"\n              frameBorder=\"0\"\n              allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n              allowFullScreen\n            />\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nfunction SocialBanner() {\n  return (\n    <div className=\"SocialBanner\">\n      <div>\n        Support Ukraine 🇺🇦{' '}\n        <a href=\"https://opensource.facebook.com/support-ukraine\">\n          Help Provide Humanitarian Aid to Ukraine\n        </a>\n        .\n      </div>\n    </div>\n  );\n}\n\nclass Index extends React.Component {\n  render() {\n    let language = this.props.language || \"en\";\n    const showcase = siteConfig.users\n      .filter(user => {\n        return user.pinned;\n      })\n      .map(user => {\n        return (\n          <a href={user.infoLink}>\n            <img src={user.image} title={user.caption} />\n            <br/>\n            {user.caption}\n          </a>\n        );\n      });\n\n    return (\n      <div>\n        <SocialBanner />\n        <HomeSplash language={language} />\n        <div className=\"mainContainer\">\n          <div className=\"descriptionSection paddingTop lightBackground\" style={{ textAlign: \"left\" }} id=\"fast-download\">\n            <Container>\n              <GridBlock align=\"center\"\n              contents={[\n                {\n                  content: \"FastText is an open-source, free, lightweight library that allows users to learn text representations and text classifiers. It works on standard, generic hardware. Models can later be reduced in size to even fit on mobile devices.\",\n                  title: \"What is fastText?\",\n                }\n              ]}\n              layout=\"twoColumn\"\n              />\n            </Container>\n            <VideoContainer />\n          </div>\n          <div\n          className=\"productShowcaseSection paddingTop\"\n          style={{ textAlign: \"center\" }} id=\"fast-download\"\n          >\n          <h2>\n              <a href={siteConfig.baseUrl + \"docs/en/english-vectors.html\"}>Download pre-trained models</a>\n          </h2>\n          <Container>\n            <GridBlock\n            align=\"center\"\n            contents={[\n              {\n                content: \"Pre-trained on English webcrawl and Wikipedia\",\n                image: siteConfig.baseUrl + \"img/model-blue.png\" ,\n                imageAlign: \"top\",\n                title: \"[English word vectors](\" + siteConfig.baseUrl + \"docs/en/english-vectors.html)\",\n                imageLink: siteConfig.baseUrl + \"docs/en/english-vectors.html\",\n                pinned : \"true\",\n              },\n              {\n                content: \"Pre-trained models for 157 different languages\",\n                image: siteConfig.baseUrl + \"img/model-red.png\",\n                imageAlign: \"top\",\n                title: \"[Multi-lingual word vectors](\" + siteConfig.baseUrl + \"docs/en/crawl-vectors.html)\",\n                imageLink: siteConfig.baseUrl + \"docs/en/crawl-vectors.html\",\n              },\n            ]}\n          layout=\"twoColumn\"\n            />\n            </Container>\n          </div>\n          <div\n          className=\"productShowcaseSection paddingTop lightBackground\"\n          style={{ textAlign: \"center\" }} id=\"more-info\"\n          >\n          <h2>\n              <a href={siteConfig.baseUrl + \"docs/en/support.html\"}>Help and references</a>\n          </h2>\n          <Container>\n            <GridBlock\n              align=\"center\"\n              contents={[\n                {\n                  content: \"Learn how to use fastText\",\n                  image: siteConfig.baseUrl + \"img/fasttext-icon-tutorial.png\",\n                  imageAlign: \"top\",\n                  title: \"[Tutorials](\" + siteConfig.baseUrl + \"docs/en/supervised-tutorial.html)\",\n                  imageLink: siteConfig.baseUrl + \"docs/en/supervised-tutorial.html\",\n                },\n                {\n                  content: \"Questions gathered from the community\",\n                  image: siteConfig.baseUrl + \"img/fasttext-icon-faq.png\",\n                  imageAlign: \"top\",\n                  title: \"[Frequently Asked Questions](\" + siteConfig.baseUrl + \"docs/en/faqs.html)\",\n                  imageLink: siteConfig.baseUrl + \"docs/en/faqs.html\"\n                },\n                {\n                  content: \"In depth review of fastText commands\",\n                  image: siteConfig.baseUrl + \"img/fasttext-icon-api.png\",\n                  imageAlign: \"top\",\n                  title: \"[API](\" + siteConfig.baseUrl + \"docs/en/api.html)\",\n                  imageLink: siteConfig.baseUrl + \"docs/en/api.html\",\n                }\n\n              ]}\n              layout=\"threeColumn\"\n            />\n          </Container>\n          </div>\n          <div className=\"productShowcaseSection paddingTop\">\n            <h2>\n                <a href={siteConfig.baseUrl + \"docs/en/references.html\"}>References</a>\n            </h2>\n            <Container>\n              <GridBlock\n                align=\"left\"\n                contents={[\n                  {\n                    content: \"P. Bojanowski, E. Grave, A. Joulin, T. Mikolov\",\n                    title: \"[Enriching Word Vectors with Subword Information](https://arxiv.org/abs/1607.04606)\",\n                  },\n                  {\n                    content: \"A. Joulin, E. Grave, P. Bojanowski, T. Mikolov\",\n                    title: \"[Bag of Tricks for Efficient Text Classification](https://arxiv.org/abs/1607.01759)\",\n                  },\n                  {\n                    content: \"A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jegou, T. Mikolov\",\n                    title: \"[FastText.zip: Compressing text classification models](https://arxiv.org/abs/1612.03651)\",\n                  }\n\n                ]}\n                layout=\"threeColumn\"\n              />\n            </Container>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n/*\n          <div\n          className=\"productShowcaseSection paddingTop\"\n          style={{ textAlign: \"center\" }} id=\"more-info\"\n          >\n          <h2>\n            {\"Applications\"}\n          </h2>\n          <Container>\n            <GridBlock\n              align=\"center\"\n              contents={[\n                {\n                  content: \"Build a classifier for your usecase.\",\n                  title: \"Classification\",\n                },\n                {\n                  content: \"Build word vectors on top of your dataset.\",\n                  title: \"Word vectors\",\n                },\n                {\n                  content: \"Reduce memory footprint and save disk space.\",\n                  title: \"Quantization\",\n                }\n\n              ]}\n              layout=\"threeColumn\"\n            />\n          </Container>\n          <br/>\n          <br/>\n          </div>\n          <div className=\"productShowcaseSection paddingTop\">\n            <h2>\n              {\"Users\"}\n            </h2>\n            <div className=\"logos indexUsers\">\n              {showcase}\n            </div>\n            <br/>\n            <br/>\n          </div>\n <div className=\"productShowcaseSection paddingTop lightBackground\">\n <h2>\n {\"Authors\"}\n </h2>\n <div className=\"logos\">\n <a href=\"https://research.fb.com/people/bojanowski-piotr/\">\n <img src=\"/img/authors/piotr_bojanowski.jpg\" title=\"Piotr Bojanowski\" />\n <br />\n Piotr Bojanowski\n </a>\n <a href=\"https://research.fb.com/people/grave-edouard/\">\n <img src=\"/img/authors/edouard_grave.jpeg\" title=\"Edouard Grave\" />\n <br />\n Edouard Grave\n </a>\n <a href=\"https://research.fb.com/people/joulin-armand/\">\n <img src=\"/img/authors/armand_joulin.jpg\" title=\"Armand Joulin\" />\n <br />\n Armand Joulin\n </a>\n <a href=\"https://research.fb.com/people/mikolov-tomas/\">\n <img src=\"/img/authors/tomas_mikolov.jpg\" title=\"Tomas Mikolov\" />\n <br />\n Tomas Mikolov\n </a>\n <a href=\"https://research.fb.com/people/puhrsch-christian/\">\n <img src=\"/img/authors/christian_puhrsch.png\" title=\"Christian Puhrsch\" />\n <br />\n Christian Puhrsch\n </a>\n </div>\n <br/>\n <br/>\n </div>\n */\n\nmodule.exports = Index;\n"
  },
  {
    "path": "website/sidebars.json",
    "content": "{\n  \"docs\": {\n    \"Introduction\": [\"support\", \"cheatsheet\", \"options\"],\n    \"Tutorials\": [\"supervised-tutorial\", \"unsupervised-tutorial\"],\n    \"Help\": [\"autotune\", \"python-module\", \"webassembly-module\", \"faqs\", \"api\", \"references\"]\n  },\n  \"download\": {\n    \"Resources\": [\n      \"english-vectors\",\n      \"crawl-vectors\",\n      \"pretrained-vectors\",\n      \"aligned-vectors\",\n      \"supervised-models\",\n      \"language-identification\",\n      \"dataset\"\n    ]\n  }\n}\n"
  },
  {
    "path": "website/siteConfig.js",
    "content": "/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* List of projects/orgs using your project for the users page */\nconst authors = [\n  {\n    caption: \"Piotr Bojanowski\",\n    image: \"/img/authors/piotr_bojanowski.jpg\",\n    infoLink: \"https://research.fb.com/people/bojanowski-piotr/\",\n    pinned: true\n  },\n  {\n    caption: \"Edouard Grave\",\n    image: \"/img/authors/edouard_grave.jpeg\",\n    infoLink: \"https://research.fb.com/people/grave-edouard/\",\n    pinned: true\n  },\n  {\n    caption: \"Armand Joulin\",\n    image: \"/img/authors/armand_joulin.jpg\",\n    infoLink: \"https://research.fb.com/people/joulin-armand/\",\n    pinned: true\n  },\n  {\n    caption: \"Tomas Mikolov\",\n    image: \"/img/authors/tomas_mikolov.jpg\",\n    infoLink: \"https://research.fb.com/people/mikolov-tomas/\",\n    pinned: true\n  },\n  {\n    caption: \"Christian Puhrsch\",\n    image: \"/img/authors/christian_puhrsch.png\",\n    infoLink: \"https://research.fb.com/people/puhrsch-christian/\",\n    pinned: true\n  }\n];\n\nconst users = [\n  {\n    caption: '\"It actually works\" - Piotr Bojanowski',\n    image: \"/img/authors/piotr_bojanowski.jpg\",\n    infoLink: \"https://research.fb.com/people/bojanowski-piotr/\",\n    pinned: true\n  },\n  {\n    caption: '\"It\\'s what the kids want\" - Santa Claus',\n    image: \"/img/santa_claus.png\",\n    infoLink: \"https://de.wikipedia.org/wiki/Weihnachtsmann\",\n    pinned: true\n  }\n];\n\nconst siteConfig = {\n  title: \"fastText\" /* title for your website */,\n  url: \"https://fasttext.cc\" /* your site url */,\n  baseUrl: \"/\" /* base url for your project */,\n  repo: \"facebookresearch/fastText\" /* repo for your project */,\n  cname: \"fasttext.cc\",\n  users,\n  /* base url for editing docs, usage example: editUrl + 'en/doc1.md' */\n  /* editUrl: \"https://github.com/facebookresearch/fastText/website/edit/master/docs/\", */\n  /* header links for links on this site */\n  headerLinks: [\n    { doc: \"support\", label: \"Docs\" },\n    { doc: \"english-vectors\", label: \"Resources\" },\n    { blog: true, label: \"Blog\" },\n    {\n      href: \"https://github.com/facebookresearch/fastText/\",\n      label: \"GitHub\",\n      external: true\n    }\n  ],\n  /* path to images for header/footer */\n  headerIcon: \"img/fasttext-icon-white-web.png\",\n  disableHeaderTitle: true,\n  footerIcon: \"img/fasttext-icon-white-web.png\",\n  favicon: \"img/fasttext-icon-bg-web.png\",\n  mainImg: \"img/fasttext-logo-color-web.png\",\n  /* colors for website */\n  colors: {\n    primaryColor: \"rgb(0,85,129)\",\n    secondaryColor: \"rgb(227,24,35)\",\n    prismColor:\n      \"rgba(155,155,155, 0.13)\" /* primaryColor in rgba form, with 0.03 alpha */\n  },\n  separateCss: [\"static/docs/en/html\"],\n  disableTitleTagline: true,\n  projectName: \"fastText\",\n  tagline:\n    \"Library for efficient text classification and representation learning\",\n  /* remove this to disable google analytics tracking */\n  gaTrackingId: \"UA-44373548-30\",\n  ogImage: \"img/ogimage.png\",\n  useEnglishUrl: true,\n  scripts: [\n    '/tabber.js',\n  ],\n};\n\nmodule.exports = siteConfig;\n"
  },
  {
    "path": "website/static/docs/en/html/.classfasttext_1_1QMatrix-members.html.i4eKqy",
    "content": ""
  },
  {
    "path": "website/static/docs/en/html/annotated.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('annotated.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">Class List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:toggleLevel(1);\">1</span><span onclick=\"javascript:toggleLevel(2);\">2</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_0_\" class=\"arrow\" onclick=\"toggleFolder('0_')\">&#9660;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespacefasttext.html\" target=\"_self\">fasttext</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1Args.html\" target=\"_self\">Args</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\" target=\"_self\">Dictionary</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"structfasttext_1_1entry.html\" target=\"_self\">entry</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_3_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1FastText.html\" target=\"_self\">FastText</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_4_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1Matrix.html\" target=\"_self\">Matrix</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_5_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1Model.html\" target=\"_self\">Model</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_6_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"structfasttext_1_1Node.html\" target=\"_self\">Node</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_7_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\" target=\"_self\">ProductQuantizer</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_8_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\" target=\"_self\">QMatrix</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_9_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"classfasttext_1_1Vector.html\" target=\"_self\">Vector</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/annotated_dup.js",
    "content": "var annotated_dup =\n[\n    [ \"fasttext\", \"namespacefasttext.html\", \"namespacefasttext\" ]\n];"
  },
  {
    "path": "website/static/docs/en/html/args_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/args.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('args_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">args.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"args_8h_source.html\">args.h</a>&quot;</code><br />\n<code>#include &lt;stdlib.h&gt;</code><br />\n<code>#include &lt;string.h&gt;</code><br />\n<code>#include &lt;iostream&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"args_8cc.html\">args.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/args_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/args.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('args_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#enum-members\">Enumerations</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">args.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;istream&gt;</code><br />\n<code>#include &lt;ostream&gt;</code><br />\n<code>#include &lt;string&gt;</code><br />\n</div>\n<p><a href=\"args_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a349df214746a2ea0e5d7c26326b03d6f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">fasttext::model_name</a> : int { <a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\">fasttext::model_name::cbow</a> =1, \n<a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\">fasttext::model_name::sg</a>, \n<a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\">fasttext::model_name::sup</a>\n }</td></tr>\n<tr class=\"separator:a349df214746a2ea0e5d7c26326b03d6f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1ba04862fd670674501ccacc936e1952\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">fasttext::loss_name</a> : int { <a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\">fasttext::loss_name::hs</a> =1, \n<a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\">fasttext::loss_name::ns</a>, \n<a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\">fasttext::loss_name::softmax</a>\n }</td></tr>\n<tr class=\"separator:a1ba04862fd670674501ccacc936e1952\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"args_8h.html\">args.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/args_8h.js",
    "content": "var args_8h =\n[\n    [ \"Args\", \"classfasttext_1_1Args.html\", \"classfasttext_1_1Args\" ],\n    [ \"loss_name\", \"args_8h.html#a1ba04862fd670674501ccacc936e1952\", [\n      [ \"hs\", \"args_8h.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\", null ],\n      [ \"ns\", \"args_8h.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\", null ],\n      [ \"softmax\", \"args_8h.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\", null ]\n    ] ],\n    [ \"model_name\", \"args_8h.html#a349df214746a2ea0e5d7c26326b03d6f\", [\n      [ \"cbow\", \"args_8h.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\", null ],\n      [ \"sg\", \"args_8h.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\", null ],\n      [ \"sup\", \"args_8h.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\", null ]\n    ] ]\n];"
  },
  {
    "path": "website/static/docs/en/html/args_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/args.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('args_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">args.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"args_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_ARGS_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_ARGS_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;istream&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;ostream&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"preprocessor\">#include &lt;string&gt;</span></div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;</div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;</div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\"><a class=\"line\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">   19</a></span>&#160;<span class=\"keyword\">enum class</span> <a class=\"code\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">model_name</a> : int {<a class=\"code\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\">cbow</a>=1, <a class=\"code\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\">sg</a>, <a class=\"code\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\">sup</a>};</div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\"><a class=\"line\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">   20</a></span>&#160;<span class=\"keyword\">enum class</span> <a class=\"code\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">loss_name</a> : int {<a class=\"code\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\">hs</a>=1, <a class=\"code\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\">ns</a>, <a class=\"code\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\">softmax</a>};</div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html\">   22</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1Args.html\">Args</a> {</div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Args.html\">Args</a>();</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">   25</a></span>&#160;    std::string <a class=\"code\" href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">input</a>;</div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">   26</a></span>&#160;    std::string <a class=\"code\" href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">test</a>;</div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">   27</a></span>&#160;    std::string <a class=\"code\" href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">output</a>;</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">   28</a></span>&#160;    <span class=\"keywordtype\">double</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">lr</a>;</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">   29</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">lrUpdateRate</a>;</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">   30</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">dim</a>;</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">   31</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">ws</a>;</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">   32</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">epoch</a>;</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">   33</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">minCount</a>;</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">   34</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">minCountLabel</a>;</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">   35</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">neg</a>;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">   36</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">wordNgrams</a>;</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">   37</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">loss_name</a> <a class=\"code\" href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">loss</a>;</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">   38</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">model_name</a> <a class=\"code\" href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">model</a>;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">   39</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">bucket</a>;</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">   40</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">minn</a>;</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">   41</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">maxn</a>;</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">   42</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">thread</a>;</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">   43</a></span>&#160;    <span class=\"keywordtype\">double</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">t</a>;</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">   44</a></span>&#160;    std::string <a class=\"code\" href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">label</a>;</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">   45</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">verbose</a>;</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">   46</a></span>&#160;    std::string <a class=\"code\" href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">pretrainedVectors</a>;</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">   47</a></span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">saveOutput</a>;</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">   49</a></span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">qout</a>;</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">   50</a></span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">retrain</a>;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">   51</a></span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">qnorm</a>;</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">   52</a></span>&#160;    <span class=\"keywordtype\">size_t</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">cutoff</a>;</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">   53</a></span>&#160;    <span class=\"keywordtype\">size_t</span> <a class=\"code\" href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">dsub</a>;</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;</div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\">   55</span>&#160;    <span class=\"keywordtype\">void</span> parseArgs(<span class=\"keywordtype\">int</span>, <span class=\"keywordtype\">char</span>**);</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\">   56</span>&#160;    <span class=\"keywordtype\">void</span> printHelp();</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;    <span class=\"keywordtype\">void</span> printBasicHelp();</div><div class=\"line\"><a name=\"l00058\"></a><span class=\"lineno\">   58</span>&#160;    <span class=\"keywordtype\">void</span> printDictionaryHelp();</div><div class=\"line\"><a name=\"l00059\"></a><span class=\"lineno\">   59</span>&#160;    <span class=\"keywordtype\">void</span> printTrainingHelp();</div><div class=\"line\"><a name=\"l00060\"></a><span class=\"lineno\">   60</span>&#160;    <span class=\"keywordtype\">void</span> printQuantizationHelp();</div><div class=\"line\"><a name=\"l00061\"></a><span class=\"lineno\">   61</span>&#160;    <span class=\"keywordtype\">void</span> save(std::ostream&amp;);</div><div class=\"line\"><a name=\"l00062\"></a><span class=\"lineno\">   62</span>&#160;    <span class=\"keywordtype\">void</span> load(std::istream&amp;);</div><div class=\"line\"><a name=\"l00063\"></a><span class=\"lineno\">   63</span>&#160;};</div><div class=\"line\"><a name=\"l00064\"></a><span class=\"lineno\">   64</span>&#160;</div><div class=\"line\"><a name=\"l00065\"></a><span class=\"lineno\">   65</span>&#160;}</div><div class=\"line\"><a name=\"l00066\"></a><span class=\"lineno\">   66</span>&#160;</div><div class=\"line\"><a name=\"l00067\"></a><span class=\"lineno\">   67</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1Args_html_ada209739bcfab2a6ac19a4deebbf901f\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">fasttext::Args::ws</a></div><div class=\"ttdeci\">int ws</div><div class=\"ttdef\"><b>Definition:</b> args.h:31</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\">fasttext::model_name::sg</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_ac3ad48abd87d82df89272e19242558a5\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">fasttext::Args::minCount</a></div><div class=\"ttdeci\">int minCount</div><div class=\"ttdef\"><b>Definition:</b> args.h:33</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a6377f6e903dd4f991ffd477a7a4392dd\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">fasttext::Args::input</a></div><div class=\"ttdeci\">std::string input</div><div class=\"ttdef\"><b>Definition:</b> args.h:25</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_aecc2b6243e3fa7c8da1b6d1205da8df0\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">fasttext::Args::cutoff</a></div><div class=\"ttdeci\">size_t cutoff</div><div class=\"ttdef\"><b>Definition:</b> args.h:52</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a1c072949833ab403ef53184dcb77b642\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">fasttext::Args::label</a></div><div class=\"ttdeci\">std::string label</div><div class=\"ttdef\"><b>Definition:</b> args.h:44</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_ade3949381170993298b7541f1986d101\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">fasttext::Args::test</a></div><div class=\"ttdeci\">std::string test</div><div class=\"ttdef\"><b>Definition:</b> args.h:26</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_aef35433948eb9201cd780276150edaf0\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">fasttext::Args::pretrainedVectors</a></div><div class=\"ttdeci\">std::string pretrainedVectors</div><div class=\"ttdef\"><b>Definition:</b> args.h:46</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html\">fasttext::Args</a></div><div class=\"ttdef\"><b>Definition:</b> args.h:22</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_ad6f86c95de9402344106570e6a917445\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">fasttext::Args::lr</a></div><div class=\"ttdeci\">double lr</div><div class=\"ttdef\"><b>Definition:</b> args.h:28</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a02be205f9a7c002aad68924f426b7290\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">fasttext::Args::loss</a></div><div class=\"ttdeci\">loss_name loss</div><div class=\"ttdef\"><b>Definition:</b> args.h:37</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a7b95ffbf446a4f99636051d720ef7815\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">fasttext::Args::epoch</a></div><div class=\"ttdeci\">int epoch</div><div class=\"ttdef\"><b>Definition:</b> args.h:32</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\">fasttext::model_name::sup</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\">fasttext::loss_name::softmax</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a32da43d82eb53a6ba11d39178e86bda9\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">fasttext::Args::maxn</a></div><div class=\"ttdeci\">int maxn</div><div class=\"ttdef\"><b>Definition:</b> args.h:41</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a3bfb953b0cfe153207ad75c757af292b\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">fasttext::Args::retrain</a></div><div class=\"ttdeci\">bool retrain</div><div class=\"ttdef\"><b>Definition:</b> args.h:50</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a1386da6e5bb230bc10f86095b7ce3beb\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">fasttext::Args::wordNgrams</a></div><div class=\"ttdeci\">int wordNgrams</div><div class=\"ttdef\"><b>Definition:</b> args.h:36</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a5534e863c25fa270fd0e27792723f6cb\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">fasttext::Args::bucket</a></div><div class=\"ttdeci\">int bucket</div><div class=\"ttdef\"><b>Definition:</b> args.h:39</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_afd2a262e8e1bbf6d58aa4fe6ae44d7e0\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">fasttext::Args::t</a></div><div class=\"ttdeci\">double t</div><div class=\"ttdef\"><b>Definition:</b> args.h:43</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a3b22b477737f538801682c85fd5b835d\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">fasttext::Args::output</a></div><div class=\"ttdeci\">std::string output</div><div class=\"ttdef\"><b>Definition:</b> args.h:27</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a31f3ec7d9d592e40c1c64f7469f55d72\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">fasttext::Args::saveOutput</a></div><div class=\"ttdeci\">int saveOutput</div><div class=\"ttdef\"><b>Definition:</b> args.h:47</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a831335fce23004ac9dcb823049d76a1b\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">fasttext::Args::minCountLabel</a></div><div class=\"ttdeci\">int minCountLabel</div><div class=\"ttdef\"><b>Definition:</b> args.h:34</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a1ba04862fd670674501ccacc936e1952\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">fasttext::loss_name</a></div><div class=\"ttdeci\">loss_name</div><div class=\"ttdef\"><b>Definition:</b> args.h:20</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a66876acfb52e46dc166b77d7db15889d\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">fasttext::Args::lrUpdateRate</a></div><div class=\"ttdeci\">int lrUpdateRate</div><div class=\"ttdef\"><b>Definition:</b> args.h:29</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\">fasttext::model_name::cbow</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a97d357a5d64c7826b97fb8860adf8567\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">fasttext::Args::thread</a></div><div class=\"ttdeci\">int thread</div><div class=\"ttdef\"><b>Definition:</b> args.h:42</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_ac689f4264b24814541bee8b5cf3abbcc\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">fasttext::Args::qout</a></div><div class=\"ttdeci\">bool qout</div><div class=\"ttdef\"><b>Definition:</b> args.h:49</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a1926c846b30e99f825a90948faba145f\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">fasttext::Args::qnorm</a></div><div class=\"ttdeci\">bool qnorm</div><div class=\"ttdef\"><b>Definition:</b> args.h:51</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_afaf1d8872c58e7cb90e2ae3213f15f35\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">fasttext::Args::model</a></div><div class=\"ttdeci\">model_name model</div><div class=\"ttdef\"><b>Definition:</b> args.h:38</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a8e6e64c0bece5cce5cee420ed8f98f81\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">fasttext::Args::verbose</a></div><div class=\"ttdeci\">int verbose</div><div class=\"ttdef\"><b>Definition:</b> args.h:45</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a76595eefd3fcfd980d1d4d2fa57dbaf3\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">fasttext::Args::dim</a></div><div class=\"ttdeci\">int dim</div><div class=\"ttdef\"><b>Definition:</b> args.h:30</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\">fasttext::loss_name::ns</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a9f11afb2ec9b096e465149fb59153b30\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">fasttext::Args::neg</a></div><div class=\"ttdeci\">int neg</div><div class=\"ttdef\"><b>Definition:</b> args.h:35</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\">fasttext::loss_name::hs</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a7f2b387a9b29fa1180e143b01dd365be\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">fasttext::Args::minn</a></div><div class=\"ttdeci\">int minn</div><div class=\"ttdef\"><b>Definition:</b> args.h:40</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Args_html_a7ee03404aa6c513ee8cc4b07715977c5\"><div class=\"ttname\"><a href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">fasttext::Args::dsub</a></div><div class=\"ttdeci\">size_t dsub</div><div class=\"ttdef\"><b>Definition:</b> args.h:53</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a349df214746a2ea0e5d7c26326b03d6f\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">fasttext::model_name</a></div><div class=\"ttdeci\">model_name</div><div class=\"ttdef\"><b>Definition:</b> args.h:19</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"args_8h.html\">args.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classes.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Index</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classes.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">Class Index</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"qindex\"><a class=\"qindex\" href=\"#letter_a\">a</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_d\">d</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_e\">e</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_f\">f</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_m\">m</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_n\">n</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_p\">p</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_q\">q</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_v\">v</a></div>\n<table class=\"classindex\">\n<tr><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_a\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;a&#160;&#160;</div></td></tr></table>\n</td><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_e\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;e&#160;&#160;</div></td></tr></table>\n</td><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_m\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;m&#160;&#160;</div></td></tr></table>\n</td><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_p\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;p&#160;&#160;</div></td></tr></table>\n</td><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_v\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;v&#160;&#160;</div></td></tr></table>\n</td></tr>\n<tr></tr>\n<tr><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td valign=\"top\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">entry</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td></tr>\n<tr><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_d\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;d&#160;&#160;</div></td></tr></table>\n</td><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_f\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;f&#160;&#160;</div></td></tr></table>\n</td><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_q\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;q&#160;&#160;</div></td></tr></table>\n</td><td></td></tr>\n<tr><td rowspan=\"2\" valign=\"bottom\"><a name=\"letter_n\"></a><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><div class=\"ah\">&#160;&#160;n&#160;&#160;</div></td></tr></table>\n</td><td></td></tr>\n<tr><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">FastText</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td></td></tr>\n<tr><td></td><td></td><td valign=\"top\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">Node</a> (<a class=\"el\" href=\"namespacefasttext.html\">fasttext</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>\n<tr><td></td><td></td><td></td><td></td><td></td></tr>\n</table>\n<div class=\"qindex\"><a class=\"qindex\" href=\"#letter_a\">a</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_d\">d</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_e\">e</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_f\">f</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_m\">m</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_n\">n</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_p\">p</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_q\">q</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_v\">v</a></div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Args-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Args.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Args Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03\">Args</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">bucket</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">cutoff</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">dim</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">dsub</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">epoch</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">input</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">label</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4\">load</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">loss</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">lr</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">lrUpdateRate</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">maxn</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">minCount</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">minCountLabel</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">minn</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">model</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">neg</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">output</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765\">parseArgs</a>(int, char **)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">pretrainedVectors</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e\">printBasicHelp</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe\">printDictionaryHelp</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6\">printHelp</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd\">printQuantizationHelp</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7\">printTrainingHelp</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">qnorm</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">qout</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">retrain</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392\">save</a>(std::ostream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">saveOutput</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">t</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">test</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">thread</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">verbose</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">wordNgrams</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">ws</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">fasttext::Args</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Args.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::Args Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Args.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pub-attribs\">Public Attributes</a> &#124;\n<a href=\"classfasttext_1_1Args-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Args Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"args_8h_source.html\">args.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ab196dccd500190c3831af2cbfdd3eb03\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03\">Args</a> ()</td></tr>\n<tr class=\"separator:ab196dccd500190c3831af2cbfdd3eb03\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad5c7a7235b1e37ceb80c704ceff9c765\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765\">parseArgs</a> (int, char **)</td></tr>\n<tr class=\"separator:ad5c7a7235b1e37ceb80c704ceff9c765\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8b8ee9a22203491d47ba19eb78e440a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6\">printHelp</a> ()</td></tr>\n<tr class=\"separator:a8b8ee9a22203491d47ba19eb78e440a6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af4aeb36b5332a2343e0720bd98061a4e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e\">printBasicHelp</a> ()</td></tr>\n<tr class=\"separator:af4aeb36b5332a2343e0720bd98061a4e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9d5bd3895b25bfac8f4ba0421fde52fe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe\">printDictionaryHelp</a> ()</td></tr>\n<tr class=\"separator:a9d5bd3895b25bfac8f4ba0421fde52fe\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0bf37a9497365a4c9296318b78b7e7b7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7\">printTrainingHelp</a> ()</td></tr>\n<tr class=\"separator:a0bf37a9497365a4c9296318b78b7e7b7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3f176b6f6d3d87c1c23edb43fbce85dd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd\">printQuantizationHelp</a> ()</td></tr>\n<tr class=\"separator:a3f176b6f6d3d87c1c23edb43fbce85dd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae843bd7c49e9fd34220af65f19df7392\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392\">save</a> (std::ostream &amp;)</td></tr>\n<tr class=\"separator:ae843bd7c49e9fd34220af65f19df7392\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7f7c0f446795a8ffa23db55583ae29c4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4\">load</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:a7f7c0f446795a8ffa23db55583ae29c4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-attribs\"></a>\nPublic Attributes</h2></td></tr>\n<tr class=\"memitem:a6377f6e903dd4f991ffd477a7a4392dd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">input</a></td></tr>\n<tr class=\"separator:a6377f6e903dd4f991ffd477a7a4392dd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ade3949381170993298b7541f1986d101\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">test</a></td></tr>\n<tr class=\"separator:ade3949381170993298b7541f1986d101\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3b22b477737f538801682c85fd5b835d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">output</a></td></tr>\n<tr class=\"separator:a3b22b477737f538801682c85fd5b835d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad6f86c95de9402344106570e6a917445\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">double&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">lr</a></td></tr>\n<tr class=\"separator:ad6f86c95de9402344106570e6a917445\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a66876acfb52e46dc166b77d7db15889d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">lrUpdateRate</a></td></tr>\n<tr class=\"separator:a66876acfb52e46dc166b77d7db15889d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a76595eefd3fcfd980d1d4d2fa57dbaf3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">dim</a></td></tr>\n<tr class=\"separator:a76595eefd3fcfd980d1d4d2fa57dbaf3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ada209739bcfab2a6ac19a4deebbf901f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">ws</a></td></tr>\n<tr class=\"separator:ada209739bcfab2a6ac19a4deebbf901f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7b95ffbf446a4f99636051d720ef7815\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">epoch</a></td></tr>\n<tr class=\"separator:a7b95ffbf446a4f99636051d720ef7815\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac3ad48abd87d82df89272e19242558a5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">minCount</a></td></tr>\n<tr class=\"separator:ac3ad48abd87d82df89272e19242558a5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a831335fce23004ac9dcb823049d76a1b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">minCountLabel</a></td></tr>\n<tr class=\"separator:a831335fce23004ac9dcb823049d76a1b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9f11afb2ec9b096e465149fb59153b30\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">neg</a></td></tr>\n<tr class=\"separator:a9f11afb2ec9b096e465149fb59153b30\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1386da6e5bb230bc10f86095b7ce3beb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">wordNgrams</a></td></tr>\n<tr class=\"separator:a1386da6e5bb230bc10f86095b7ce3beb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a02be205f9a7c002aad68924f426b7290\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">loss_name</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">loss</a></td></tr>\n<tr class=\"separator:a02be205f9a7c002aad68924f426b7290\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afaf1d8872c58e7cb90e2ae3213f15f35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">model_name</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">model</a></td></tr>\n<tr class=\"separator:afaf1d8872c58e7cb90e2ae3213f15f35\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5534e863c25fa270fd0e27792723f6cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">bucket</a></td></tr>\n<tr class=\"separator:a5534e863c25fa270fd0e27792723f6cb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7f2b387a9b29fa1180e143b01dd365be\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">minn</a></td></tr>\n<tr class=\"separator:a7f2b387a9b29fa1180e143b01dd365be\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a32da43d82eb53a6ba11d39178e86bda9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">maxn</a></td></tr>\n<tr class=\"separator:a32da43d82eb53a6ba11d39178e86bda9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a97d357a5d64c7826b97fb8860adf8567\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">thread</a></td></tr>\n<tr class=\"separator:a97d357a5d64c7826b97fb8860adf8567\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afd2a262e8e1bbf6d58aa4fe6ae44d7e0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">double&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">t</a></td></tr>\n<tr class=\"separator:afd2a262e8e1bbf6d58aa4fe6ae44d7e0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1c072949833ab403ef53184dcb77b642\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">label</a></td></tr>\n<tr class=\"separator:a1c072949833ab403ef53184dcb77b642\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8e6e64c0bece5cce5cee420ed8f98f81\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">verbose</a></td></tr>\n<tr class=\"separator:a8e6e64c0bece5cce5cee420ed8f98f81\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aef35433948eb9201cd780276150edaf0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">pretrainedVectors</a></td></tr>\n<tr class=\"separator:aef35433948eb9201cd780276150edaf0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a31f3ec7d9d592e40c1c64f7469f55d72\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">saveOutput</a></td></tr>\n<tr class=\"separator:a31f3ec7d9d592e40c1c64f7469f55d72\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac689f4264b24814541bee8b5cf3abbcc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">qout</a></td></tr>\n<tr class=\"separator:ac689f4264b24814541bee8b5cf3abbcc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3bfb953b0cfe153207ad75c757af292b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">retrain</a></td></tr>\n<tr class=\"separator:a3bfb953b0cfe153207ad75c757af292b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1926c846b30e99f825a90948faba145f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">qnorm</a></td></tr>\n<tr class=\"separator:a1926c846b30e99f825a90948faba145f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aecc2b6243e3fa7c8da1b6d1205da8df0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">size_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">cutoff</a></td></tr>\n<tr class=\"separator:aecc2b6243e3fa7c8da1b6d1205da8df0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7ee03404aa6c513ee8cc4b07715977c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">size_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">dsub</a></td></tr>\n<tr class=\"separator:a7ee03404aa6c513ee8cc4b07715977c5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ab196dccd500190c3831af2cbfdd3eb03\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab196dccd500190c3831af2cbfdd3eb03\">&#9670;&nbsp;</a></span>Args()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Args::Args </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a7f7c0f446795a8ffa23db55583ae29c4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f7c0f446795a8ffa23db55583ae29c4\">&#9670;&nbsp;</a></span>load()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::load </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad5c7a7235b1e37ceb80c704ceff9c765\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad5c7a7235b1e37ceb80c704ceff9c765\">&#9670;&nbsp;</a></span>parseArgs()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::parseArgs </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af4aeb36b5332a2343e0720bd98061a4e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4aeb36b5332a2343e0720bd98061a4e\">&#9670;&nbsp;</a></span>printBasicHelp()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::printBasicHelp </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9d5bd3895b25bfac8f4ba0421fde52fe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d5bd3895b25bfac8f4ba0421fde52fe\">&#9670;&nbsp;</a></span>printDictionaryHelp()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::printDictionaryHelp </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8b8ee9a22203491d47ba19eb78e440a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b8ee9a22203491d47ba19eb78e440a6\">&#9670;&nbsp;</a></span>printHelp()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::printHelp </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3f176b6f6d3d87c1c23edb43fbce85dd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3f176b6f6d3d87c1c23edb43fbce85dd\">&#9670;&nbsp;</a></span>printQuantizationHelp()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::printQuantizationHelp </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0bf37a9497365a4c9296318b78b7e7b7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0bf37a9497365a4c9296318b78b7e7b7\">&#9670;&nbsp;</a></span>printTrainingHelp()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::printTrainingHelp </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae843bd7c49e9fd34220af65f19df7392\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae843bd7c49e9fd34220af65f19df7392\">&#9670;&nbsp;</a></span>save()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Args::save </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>out</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a5534e863c25fa270fd0e27792723f6cb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5534e863c25fa270fd0e27792723f6cb\">&#9670;&nbsp;</a></span>bucket</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::bucket</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aecc2b6243e3fa7c8da1b6d1205da8df0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aecc2b6243e3fa7c8da1b6d1205da8df0\">&#9670;&nbsp;</a></span>cutoff</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">size_t fasttext::Args::cutoff</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a76595eefd3fcfd980d1d4d2fa57dbaf3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a76595eefd3fcfd980d1d4d2fa57dbaf3\">&#9670;&nbsp;</a></span>dim</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::dim</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7ee03404aa6c513ee8cc4b07715977c5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7ee03404aa6c513ee8cc4b07715977c5\">&#9670;&nbsp;</a></span>dsub</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">size_t fasttext::Args::dsub</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7b95ffbf446a4f99636051d720ef7815\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b95ffbf446a4f99636051d720ef7815\">&#9670;&nbsp;</a></span>epoch</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::epoch</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a6377f6e903dd4f991ffd477a7a4392dd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6377f6e903dd4f991ffd477a7a4392dd\">&#9670;&nbsp;</a></span>input</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Args::input</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1c072949833ab403ef53184dcb77b642\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1c072949833ab403ef53184dcb77b642\">&#9670;&nbsp;</a></span>label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Args::label</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a02be205f9a7c002aad68924f426b7290\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a02be205f9a7c002aad68924f426b7290\">&#9670;&nbsp;</a></span>loss</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">loss_name</a> fasttext::Args::loss</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad6f86c95de9402344106570e6a917445\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad6f86c95de9402344106570e6a917445\">&#9670;&nbsp;</a></span>lr</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">double fasttext::Args::lr</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a66876acfb52e46dc166b77d7db15889d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a66876acfb52e46dc166b77d7db15889d\">&#9670;&nbsp;</a></span>lrUpdateRate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::lrUpdateRate</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a32da43d82eb53a6ba11d39178e86bda9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a32da43d82eb53a6ba11d39178e86bda9\">&#9670;&nbsp;</a></span>maxn</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::maxn</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac3ad48abd87d82df89272e19242558a5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3ad48abd87d82df89272e19242558a5\">&#9670;&nbsp;</a></span>minCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::minCount</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a831335fce23004ac9dcb823049d76a1b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a831335fce23004ac9dcb823049d76a1b\">&#9670;&nbsp;</a></span>minCountLabel</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::minCountLabel</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7f2b387a9b29fa1180e143b01dd365be\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f2b387a9b29fa1180e143b01dd365be\">&#9670;&nbsp;</a></span>minn</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::minn</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afaf1d8872c58e7cb90e2ae3213f15f35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afaf1d8872c58e7cb90e2ae3213f15f35\">&#9670;&nbsp;</a></span>model</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">model_name</a> fasttext::Args::model</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9f11afb2ec9b096e465149fb59153b30\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9f11afb2ec9b096e465149fb59153b30\">&#9670;&nbsp;</a></span>neg</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::neg</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3b22b477737f538801682c85fd5b835d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3b22b477737f538801682c85fd5b835d\">&#9670;&nbsp;</a></span>output</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Args::output</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aef35433948eb9201cd780276150edaf0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aef35433948eb9201cd780276150edaf0\">&#9670;&nbsp;</a></span>pretrainedVectors</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Args::pretrainedVectors</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1926c846b30e99f825a90948faba145f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1926c846b30e99f825a90948faba145f\">&#9670;&nbsp;</a></span>qnorm</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Args::qnorm</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac689f4264b24814541bee8b5cf3abbcc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac689f4264b24814541bee8b5cf3abbcc\">&#9670;&nbsp;</a></span>qout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Args::qout</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3bfb953b0cfe153207ad75c757af292b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3bfb953b0cfe153207ad75c757af292b\">&#9670;&nbsp;</a></span>retrain</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Args::retrain</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a31f3ec7d9d592e40c1c64f7469f55d72\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a31f3ec7d9d592e40c1c64f7469f55d72\">&#9670;&nbsp;</a></span>saveOutput</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::saveOutput</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afd2a262e8e1bbf6d58aa4fe6ae44d7e0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">&#9670;&nbsp;</a></span>t</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">double fasttext::Args::t</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ade3949381170993298b7541f1986d101\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ade3949381170993298b7541f1986d101\">&#9670;&nbsp;</a></span>test</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Args::test</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a97d357a5d64c7826b97fb8860adf8567\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a97d357a5d64c7826b97fb8860adf8567\">&#9670;&nbsp;</a></span>thread</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::thread</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8e6e64c0bece5cce5cee420ed8f98f81\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8e6e64c0bece5cce5cee420ed8f98f81\">&#9670;&nbsp;</a></span>verbose</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::verbose</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1386da6e5bb230bc10f86095b7ce3beb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1386da6e5bb230bc10f86095b7ce3beb\">&#9670;&nbsp;</a></span>wordNgrams</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::wordNgrams</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ada209739bcfab2a6ac19a4deebbf901f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ada209739bcfab2a6ac19a4deebbf901f\">&#9670;&nbsp;</a></span>ws</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::Args::ws</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"args_8h_source.html\">args.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"args_8cc.html\">args.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Args.js",
    "content": "var classfasttext_1_1Args =\n[\n    [ \"Args\", \"classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03\", null ],\n    [ \"load\", \"classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4\", null ],\n    [ \"parseArgs\", \"classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765\", null ],\n    [ \"printBasicHelp\", \"classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e\", null ],\n    [ \"printDictionaryHelp\", \"classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe\", null ],\n    [ \"printHelp\", \"classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6\", null ],\n    [ \"printQuantizationHelp\", \"classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd\", null ],\n    [ \"printTrainingHelp\", \"classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7\", null ],\n    [ \"save\", \"classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392\", null ],\n    [ \"bucket\", \"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\", null ],\n    [ \"cutoff\", \"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\", null ],\n    [ \"dim\", \"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\", null ],\n    [ \"dsub\", \"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\", null ],\n    [ \"epoch\", \"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\", null ],\n    [ \"input\", \"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\", null ],\n    [ \"label\", \"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\", null ],\n    [ \"loss\", \"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\", null ],\n    [ \"lr\", \"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\", null ],\n    [ \"lrUpdateRate\", \"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\", null ],\n    [ \"maxn\", \"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\", null ],\n    [ \"minCount\", \"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\", null ],\n    [ \"minCountLabel\", \"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\", null ],\n    [ \"minn\", \"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\", null ],\n    [ \"model\", \"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\", null ],\n    [ \"neg\", \"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\", null ],\n    [ \"output\", \"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\", null ],\n    [ \"pretrainedVectors\", \"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\", null ],\n    [ \"qnorm\", \"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\", null ],\n    [ \"qout\", \"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\", null ],\n    [ \"retrain\", \"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\", null ],\n    [ \"saveOutput\", \"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\", null ],\n    [ \"t\", \"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\", null ],\n    [ \"test\", \"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\", null ],\n    [ \"thread\", \"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\", null ],\n    [ \"verbose\", \"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\", null ],\n    [ \"wordNgrams\", \"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\", null ],\n    [ \"ws\", \"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Dictionary-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Dictionary.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Dictionary Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56\">add</a>(const std::string &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\">addWordNgrams</a>(std::vector&lt; int32_t &gt; &amp;line, const std::vector&lt; int32_t &gt; &amp;hashes, int32_t n) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">args_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">BOW</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e\">computeSubwords</a>(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf\">computeSubwords</a>(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e\">Dictionary</a>(std::shared_ptr&lt; Args &gt;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">explicit</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5\">discard</a>(int32_t, real) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">EOS</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">EOW</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f\">find</a>(const std::string &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f\">getCounts</a>(entry_type) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d\">getId</a>(const std::string &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864\">getLabel</a>(int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543\">getLine</a>(std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659\">getLine</a>(std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24\">getSubwords</a>(int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ace021fb98186f100dd8cfba63c7302af\">getSubwords</a>(const std::string &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130\">getSubwords</a>(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f\">getType</a>(int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448\">getType</a>(const std::string &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8\">getWord</a>(int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0\">hash</a>(const std::string &amp;str) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1\">initNgrams</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e\">initTableDiscard</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3\">load</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933\">MAX_LINE_SIZE</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span><span class=\"mlabel\">static</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7\">MAX_VOCAB_SIZE</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895\">nlabels</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">nlabels_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972\">ntokens</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">ntokens_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d\">nwords</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">nwords_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">pdiscard_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01\">prune</a>(std::vector&lt; int32_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">pruneidx_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\">pruneidx_size_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136\">readFromFile</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d\">readWord</a>(std::istream &amp;, std::string &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b\">save</a>(std::ostream &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">size_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1\">threshold</a>(int64_t, int64_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">word2int_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">words_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Dictionary.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::Dictionary Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Dictionary.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pub-static-attribs\">Static Public Attributes</a> &#124;\n<a href=\"#pri-methods\">Private Member Functions</a> &#124;\n<a href=\"#pri-attribs\">Private Attributes</a> &#124;\n<a href=\"#pri-static-attribs\">Static Private Attributes</a> &#124;\n<a href=\"classfasttext_1_1Dictionary-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Dictionary Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"dictionary_8h_source.html\">dictionary.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ae0f87ea47dcc779231cd0d2cd660739e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e\">Dictionary</a> (std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;)</td></tr>\n<tr class=\"separator:ae0f87ea47dcc779231cd0d2cd660739e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad8f09843ce250ad1bca19bb849e8111d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d\">nwords</a> () const</td></tr>\n<tr class=\"separator:ad8f09843ce250ad1bca19bb849e8111d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a610cf116879e0897f286ea9dd8c09895\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895\">nlabels</a> () const</td></tr>\n<tr class=\"separator:a610cf116879e0897f286ea9dd8c09895\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8b4d977429d7c264a9fcc4765b2e3972\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972\">ntokens</a> () const</td></tr>\n<tr class=\"separator:a8b4d977429d7c264a9fcc4765b2e3972\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3d94bd710f83b125a68129e8a1638d1d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d\">getId</a> (const std::string &amp;) const</td></tr>\n<tr class=\"separator:a3d94bd710f83b125a68129e8a1638d1d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a80921e470e51d8adc3430fc96c97678f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f\">getType</a> (int32_t) const</td></tr>\n<tr class=\"separator:a80921e470e51d8adc3430fc96c97678f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a74a982138d4e4e703aee4c7e187b3448\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448\">getType</a> (const std::string &amp;) const</td></tr>\n<tr class=\"separator:a74a982138d4e4e703aee4c7e187b3448\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a13572c258fc013c30b2dcf7cada260b5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5\">discard</a> (int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) const</td></tr>\n<tr class=\"separator:a13572c258fc013c30b2dcf7cada260b5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa6496f6eaa28851eb526f16792ffc9e8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8\">getWord</a> (int32_t) const</td></tr>\n<tr class=\"separator:aa6496f6eaa28851eb526f16792ffc9e8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0ed089d9e5cbce60a647f912d6f8bd24\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const std::vector&lt; int32_t &gt; &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24\">getSubwords</a> (int32_t) const</td></tr>\n<tr class=\"separator:a0ed089d9e5cbce60a647f912d6f8bd24\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ace021fb98186f100dd8cfba63c7302af\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const std::vector&lt; int32_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ace021fb98186f100dd8cfba63c7302af\">getSubwords</a> (const std::string &amp;) const</td></tr>\n<tr class=\"separator:ace021fb98186f100dd8cfba63c7302af\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac175ccc5be52cd4b048c7ef4e1fa316e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e\">computeSubwords</a> (const std::string &amp;, std::vector&lt; int32_t &gt; &amp;) const</td></tr>\n<tr class=\"separator:ac175ccc5be52cd4b048c7ef4e1fa316e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1af5a16259f201bb08819cc2de938ecf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf\">computeSubwords</a> (const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const</td></tr>\n<tr class=\"separator:a1af5a16259f201bb08819cc2de938ecf\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2f947d8754a28b9da9c5b5499164c130\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130\">getSubwords</a> (const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const</td></tr>\n<tr class=\"separator:a2f947d8754a28b9da9c5b5499164c130\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a17e7f8a9a4a4e0d2657583d68e4292d0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">uint32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0\">hash</a> (const std::string &amp;str) const</td></tr>\n<tr class=\"separator:a17e7f8a9a4a4e0d2657583d68e4292d0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a596c4c5f5ebf71c228abf1831e216a56\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56\">add</a> (const std::string &amp;)</td></tr>\n<tr class=\"separator:a596c4c5f5ebf71c228abf1831e216a56\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1b79df8326dd9d7288a148db0948447d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d\">readWord</a> (std::istream &amp;, std::string &amp;) const</td></tr>\n<tr class=\"separator:a1b79df8326dd9d7288a148db0948447d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae6471357f52b274416fb0544fb3ed136\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136\">readFromFile</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:ae6471357f52b274416fb0544fb3ed136\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac8860d22b56331b8d5c8eb9e31873864\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864\">getLabel</a> (int32_t) const</td></tr>\n<tr class=\"separator:ac8860d22b56331b8d5c8eb9e31873864\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5bff16d3407dc293912fb9fa56f6162b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b\">save</a> (std::ostream &amp;) const</td></tr>\n<tr class=\"separator:a5bff16d3407dc293912fb9fa56f6162b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3bb32f8fb16493e1e0acb5444d266ca3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3\">load</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:a3bb32f8fb16493e1e0acb5444d266ca3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8ebab8c3b38586edb9db35f9220ad72f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; int64_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f\">getCounts</a> (<a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a>) const</td></tr>\n<tr class=\"separator:a8ebab8c3b38586edb9db35f9220ad72f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7f851dbfcd6b9bd032e6dc3e387fd543\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543\">getLine</a> (std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const</td></tr>\n<tr class=\"separator:a7f851dbfcd6b9bd032e6dc3e387fd543\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a38a657e0e9143e1d22a7e24eaeb5a659\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659\">getLine</a> (std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const</td></tr>\n<tr class=\"separator:a38a657e0e9143e1d22a7e24eaeb5a659\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a17c340c21fee9497945a0fab9521f3a1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1\">threshold</a> (int64_t, int64_t)</td></tr>\n<tr class=\"separator:a17c340c21fee9497945a0fab9521f3a1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a82c496a7bdfe076ac3f887b04eb54f01\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01\">prune</a> (std::vector&lt; int32_t &gt; &amp;)</td></tr>\n<tr class=\"separator:a82c496a7bdfe076ac3f887b04eb54f01\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:ab2661682cbe4837eb826cff941447086\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">EOS</a> = &quot;&lt;/s&gt;&quot;</td></tr>\n<tr class=\"separator:ab2661682cbe4837eb826cff941447086\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1024c006f9f04d04653ea529f33888ec\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">BOW</a> = &quot;&lt;&quot;</td></tr>\n<tr class=\"separator:a1024c006f9f04d04653ea529f33888ec\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9330bf13a50dea1a84545a5eed943e7b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">EOW</a> = &quot;&gt;&quot;</td></tr>\n<tr class=\"separator:a9330bf13a50dea1a84545a5eed943e7b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-methods\"></a>\nPrivate Member Functions</h2></td></tr>\n<tr class=\"memitem:a5ee926831e9b71f7e966efdb40d1ce8f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f\">find</a> (const std::string &amp;) const</td></tr>\n<tr class=\"separator:a5ee926831e9b71f7e966efdb40d1ce8f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aaa2d7d0ccde56223a3088594651e782e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e\">initTableDiscard</a> ()</td></tr>\n<tr class=\"separator:aaa2d7d0ccde56223a3088594651e782e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab415b87adacc7d1570f8e2f630fe45c1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1\">initNgrams</a> ()</td></tr>\n<tr class=\"separator:ab415b87adacc7d1570f8e2f630fe45c1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\">addWordNgrams</a> (std::vector&lt; int32_t &gt; &amp;line, const std::vector&lt; int32_t &gt; &amp;hashes, int32_t n) const</td></tr>\n<tr class=\"separator:a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-attribs\"></a>\nPrivate Attributes</h2></td></tr>\n<tr class=\"memitem:a6deee7ff65d22fc2509702dcc48bb889\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">args_</a></td></tr>\n<tr class=\"separator:a6deee7ff65d22fc2509702dcc48bb889\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3112f6337782249ffdfb4801363c5d7c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; int32_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">word2int_</a></td></tr>\n<tr class=\"separator:a3112f6337782249ffdfb4801363c5d7c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa57c616c7bff0be7d9ac40b79bc7b2a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; <a class=\"el\" href=\"structfasttext_1_1entry.html\">entry</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">words_</a></td></tr>\n<tr class=\"separator:aa57c616c7bff0be7d9ac40b79bc7b2a7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a51554de7a2f0e807e931febc24bfef57\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">pdiscard_</a></td></tr>\n<tr class=\"separator:a51554de7a2f0e807e931febc24bfef57\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1a9a71e671291ed095b84fa5457bddb3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">size_</a></td></tr>\n<tr class=\"separator:a1a9a71e671291ed095b84fa5457bddb3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a534f33c9e34ed5185ea2a050d1140c62\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">nwords_</a></td></tr>\n<tr class=\"separator:a534f33c9e34ed5185ea2a050d1140c62\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a875bb508d2a202b229e97e8295721f2c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">nlabels_</a></td></tr>\n<tr class=\"separator:a875bb508d2a202b229e97e8295721f2c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9b92bc5d615b81df69f035448d329108\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">ntokens_</a></td></tr>\n<tr class=\"separator:a9b92bc5d615b81df69f035448d329108\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa72fbf247e76df128e3e324388963dab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\">pruneidx_size_</a> = -1</td></tr>\n<tr class=\"separator:aa72fbf247e76df128e3e324388963dab\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af0b15349507137afbb934dfb07555921\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::unordered_map&lt; int32_t, int32_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">pruneidx_</a></td></tr>\n<tr class=\"separator:af0b15349507137afbb934dfb07555921\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-static-attribs\"></a>\nStatic Private Attributes</h2></td></tr>\n<tr class=\"memitem:ac12687ea2998c3f9ec507d73896295c7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7\">MAX_VOCAB_SIZE</a> = 30000000</td></tr>\n<tr class=\"separator:ac12687ea2998c3f9ec507d73896295c7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9ec24042441fb418a4c3d10b61357933\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933\">MAX_LINE_SIZE</a> = 1024</td></tr>\n<tr class=\"separator:a9ec24042441fb418a4c3d10b61357933\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ae0f87ea47dcc779231cd0d2cd660739e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae0f87ea47dcc779231cd0d2cd660739e\">&#9670;&nbsp;</a></span>Dictionary()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Dictionary::Dictionary </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>args</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">explicit</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a596c4c5f5ebf71c228abf1831e216a56\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a596c4c5f5ebf71c228abf1831e216a56\">&#9670;&nbsp;</a></span>add()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::add </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>w</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\">&#9670;&nbsp;</a></span>addWordNgrams()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::addWordNgrams </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>line</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>hashes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>n</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac175ccc5be52cd4b048c7ef4e1fa316e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac175ccc5be52cd4b048c7ef4e1fa316e\">&#9670;&nbsp;</a></span>computeSubwords() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::computeSubwords </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>word</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>ngrams</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1af5a16259f201bb08819cc2de938ecf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1af5a16259f201bb08819cc2de938ecf\">&#9670;&nbsp;</a></span>computeSubwords() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::computeSubwords </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>word</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>ngrams</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::string &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>substrings</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a13572c258fc013c30b2dcf7cada260b5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a13572c258fc013c30b2dcf7cada260b5\">&#9670;&nbsp;</a></span>discard()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Dictionary::discard </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>id</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>rand</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5ee926831e9b71f7e966efdb40d1ce8f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5ee926831e9b71f7e966efdb40d1ce8f\">&#9670;&nbsp;</a></span>find()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::find </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>w</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8ebab8c3b38586edb9db35f9220ad72f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8ebab8c3b38586edb9db35f9220ad72f\">&#9670;&nbsp;</a></span>getCounts()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt; int64_t &gt; fasttext::Dictionary::getCounts </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a>&#160;</td>\n          <td class=\"paramname\"><em>type</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3d94bd710f83b125a68129e8a1638d1d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3d94bd710f83b125a68129e8a1638d1d\">&#9670;&nbsp;</a></span>getId()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::getId </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>w</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac8860d22b56331b8d5c8eb9e31873864\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac8860d22b56331b8d5c8eb9e31873864\">&#9670;&nbsp;</a></span>getLabel()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Dictionary::getLabel </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>lid</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7f851dbfcd6b9bd032e6dc3e387fd543\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f851dbfcd6b9bd032e6dc3e387fd543\">&#9670;&nbsp;</a></span>getLine() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::getLine </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>words</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>word_hashes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>labels</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::minstd_rand &amp;&#160;</td>\n          <td class=\"paramname\"><em>rng</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a38a657e0e9143e1d22a7e24eaeb5a659\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a38a657e0e9143e1d22a7e24eaeb5a659\">&#9670;&nbsp;</a></span>getLine() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::getLine </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>words</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>labels</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::minstd_rand &amp;&#160;</td>\n          <td class=\"paramname\"><em>rng</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0ed089d9e5cbce60a647f912d6f8bd24\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0ed089d9e5cbce60a647f912d6f8bd24\">&#9670;&nbsp;</a></span>getSubwords() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const std::vector&lt; int32_t &gt; &amp; fasttext::Dictionary::getSubwords </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>i</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ace021fb98186f100dd8cfba63c7302af\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ace021fb98186f100dd8cfba63c7302af\">&#9670;&nbsp;</a></span>getSubwords() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const std::vector&lt; int32_t &gt; fasttext::Dictionary::getSubwords </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>word</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2f947d8754a28b9da9c5b5499164c130\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2f947d8754a28b9da9c5b5499164c130\">&#9670;&nbsp;</a></span>getSubwords() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::getSubwords </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>word</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>ngrams</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::string &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>substrings</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a80921e470e51d8adc3430fc96c97678f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a80921e470e51d8adc3430fc96c97678f\">&#9670;&nbsp;</a></span>getType() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> fasttext::Dictionary::getType </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>id</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a74a982138d4e4e703aee4c7e187b3448\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a74a982138d4e4e703aee4c7e187b3448\">&#9670;&nbsp;</a></span>getType() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> fasttext::Dictionary::getType </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>w</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa6496f6eaa28851eb526f16792ffc9e8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa6496f6eaa28851eb526f16792ffc9e8\">&#9670;&nbsp;</a></span>getWord()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::Dictionary::getWord </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>id</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a17e7f8a9a4a4e0d2657583d68e4292d0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17e7f8a9a4a4e0d2657583d68e4292d0\">&#9670;&nbsp;</a></span>hash()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">uint32_t fasttext::Dictionary::hash </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>str</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab415b87adacc7d1570f8e2f630fe45c1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab415b87adacc7d1570f8e2f630fe45c1\">&#9670;&nbsp;</a></span>initNgrams()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::initNgrams </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aaa2d7d0ccde56223a3088594651e782e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaa2d7d0ccde56223a3088594651e782e\">&#9670;&nbsp;</a></span>initTableDiscard()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::initTableDiscard </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3bb32f8fb16493e1e0acb5444d266ca3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3bb32f8fb16493e1e0acb5444d266ca3\">&#9670;&nbsp;</a></span>load()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::load </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a610cf116879e0897f286ea9dd8c09895\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a610cf116879e0897f286ea9dd8c09895\">&#9670;&nbsp;</a></span>nlabels()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::nlabels </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8b4d977429d7c264a9fcc4765b2e3972\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b4d977429d7c264a9fcc4765b2e3972\">&#9670;&nbsp;</a></span>ntokens()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Dictionary::ntokens </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad8f09843ce250ad1bca19bb849e8111d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad8f09843ce250ad1bca19bb849e8111d\">&#9670;&nbsp;</a></span>nwords()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::nwords </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a82c496a7bdfe076ac3f887b04eb54f01\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a82c496a7bdfe076ac3f887b04eb54f01\">&#9670;&nbsp;</a></span>prune()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::prune </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>idx</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae6471357f52b274416fb0544fb3ed136\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae6471357f52b274416fb0544fb3ed136\">&#9670;&nbsp;</a></span>readFromFile()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::readFromFile </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1b79df8326dd9d7288a148db0948447d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b79df8326dd9d7288a148db0948447d\">&#9670;&nbsp;</a></span>readWord()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Dictionary::readWord </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>word</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5bff16d3407dc293912fb9fa56f6162b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5bff16d3407dc293912fb9fa56f6162b\">&#9670;&nbsp;</a></span>save()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::save </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>out</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a17c340c21fee9497945a0fab9521f3a1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17c340c21fee9497945a0fab9521f3a1\">&#9670;&nbsp;</a></span>threshold()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Dictionary::threshold </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>t</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>tl</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a6deee7ff65d22fc2509702dcc48bb889\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6deee7ff65d22fc2509702dcc48bb889\">&#9670;&nbsp;</a></span>args_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a>&gt; fasttext::Dictionary::args_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1024c006f9f04d04653ea529f33888ec\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1024c006f9f04d04653ea529f33888ec\">&#9670;&nbsp;</a></span>BOW</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const std::string fasttext::Dictionary::BOW = &quot;&lt;&quot;</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab2661682cbe4837eb826cff941447086\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab2661682cbe4837eb826cff941447086\">&#9670;&nbsp;</a></span>EOS</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const std::string fasttext::Dictionary::EOS = &quot;&lt;/s&gt;&quot;</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9330bf13a50dea1a84545a5eed943e7b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9330bf13a50dea1a84545a5eed943e7b\">&#9670;&nbsp;</a></span>EOW</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const std::string fasttext::Dictionary::EOW = &quot;&gt;&quot;</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9ec24042441fb418a4c3d10b61357933\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9ec24042441fb418a4c3d10b61357933\">&#9670;&nbsp;</a></span>MAX_LINE_SIZE</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::Dictionary::MAX_LINE_SIZE = 1024</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac12687ea2998c3f9ec507d73896295c7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac12687ea2998c3f9ec507d73896295c7\">&#9670;&nbsp;</a></span>MAX_VOCAB_SIZE</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::Dictionary::MAX_VOCAB_SIZE = 30000000</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a875bb508d2a202b229e97e8295721f2c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a875bb508d2a202b229e97e8295721f2c\">&#9670;&nbsp;</a></span>nlabels_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::nlabels_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9b92bc5d615b81df69f035448d329108\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9b92bc5d615b81df69f035448d329108\">&#9670;&nbsp;</a></span>ntokens_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Dictionary::ntokens_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a534f33c9e34ed5185ea2a050d1140c62\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a534f33c9e34ed5185ea2a050d1140c62\">&#9670;&nbsp;</a></span>nwords_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::nwords_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a51554de7a2f0e807e931febc24bfef57\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a51554de7a2f0e807e931febc24bfef57\">&#9670;&nbsp;</a></span>pdiscard_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&gt; fasttext::Dictionary::pdiscard_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af0b15349507137afbb934dfb07555921\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af0b15349507137afbb934dfb07555921\">&#9670;&nbsp;</a></span>pruneidx_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::unordered_map&lt;int32_t, int32_t&gt; fasttext::Dictionary::pruneidx_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa72fbf247e76df128e3e324388963dab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa72fbf247e76df128e3e324388963dab\">&#9670;&nbsp;</a></span>pruneidx_size_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Dictionary::pruneidx_size_ = -1</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1a9a71e671291ed095b84fa5457bddb3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1a9a71e671291ed095b84fa5457bddb3\">&#9670;&nbsp;</a></span>size_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Dictionary::size_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3112f6337782249ffdfb4801363c5d7c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3112f6337782249ffdfb4801363c5d7c\">&#9670;&nbsp;</a></span>word2int_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;int32_t&gt; fasttext::Dictionary::word2int_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa57c616c7bff0be7d9ac40b79bc7b2a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa57c616c7bff0be7d9ac40b79bc7b2a7\">&#9670;&nbsp;</a></span>words_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;<a class=\"el\" href=\"structfasttext_1_1entry.html\">entry</a>&gt; fasttext::Dictionary::words_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"dictionary_8h_source.html\">dictionary.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"dictionary_8cc.html\">dictionary.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Dictionary.js",
    "content": "var classfasttext_1_1Dictionary =\n[\n    [ \"Dictionary\", \"classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e\", null ],\n    [ \"add\", \"classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56\", null ],\n    [ \"addWordNgrams\", \"classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\", null ],\n    [ \"computeSubwords\", \"classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e\", null ],\n    [ \"computeSubwords\", \"classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf\", null ],\n    [ \"discard\", \"classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5\", null ],\n    [ \"find\", \"classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f\", null ],\n    [ \"getCounts\", \"classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f\", null ],\n    [ \"getId\", \"classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d\", null ],\n    [ \"getLabel\", \"classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864\", null ],\n    [ \"getLine\", \"classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543\", null ],\n    [ \"getLine\", \"classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659\", null ],\n    [ \"getSubwords\", \"classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24\", null ],\n    [ \"getSubwords\", \"classfasttext_1_1Dictionary.html#ace021fb98186f100dd8cfba63c7302af\", null ],\n    [ \"getSubwords\", \"classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130\", null ],\n    [ \"getType\", \"classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f\", null ],\n    [ \"getType\", \"classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448\", null ],\n    [ \"getWord\", \"classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8\", null ],\n    [ \"hash\", \"classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0\", null ],\n    [ \"initNgrams\", \"classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1\", null ],\n    [ \"initTableDiscard\", \"classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e\", null ],\n    [ \"load\", \"classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3\", null ],\n    [ \"nlabels\", \"classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895\", null ],\n    [ \"ntokens\", \"classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972\", null ],\n    [ \"nwords\", \"classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d\", null ],\n    [ \"prune\", \"classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01\", null ],\n    [ \"readFromFile\", \"classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136\", null ],\n    [ \"readWord\", \"classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d\", null ],\n    [ \"save\", \"classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b\", null ],\n    [ \"threshold\", \"classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1\", null ],\n    [ \"args_\", \"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\", null ],\n    [ \"nlabels_\", \"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\", null ],\n    [ \"ntokens_\", \"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\", null ],\n    [ \"nwords_\", \"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\", null ],\n    [ \"pdiscard_\", \"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\", null ],\n    [ \"pruneidx_\", \"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\", null ],\n    [ \"pruneidx_size_\", \"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\", null ],\n    [ \"size_\", \"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\", null ],\n    [ \"word2int_\", \"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\", null ],\n    [ \"words_\", \"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1FastText-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1FastText.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::FastText Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\">analogies</a>(int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">args_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\">cbow</a>(Model &amp;, real, const std::vector&lt; int32_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\">checkModel</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">dict_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\">FastText</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\">findNN</a>(const Matrix &amp;, const Vector &amp;, int32_t, const std::set&lt; std::string &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\">getDimension</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\">getVector</a>(Vector &amp;, const std::string &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">input_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">loadModel</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ac844ddc1573e80a8b5a255668fc97247\">loadModel</a>(const std::string &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\">loadVectors</a>(std::string)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">model_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\">ngramVectors</a>(std::string)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\">nn</a>(int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">output_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\">precomputeWordVectors</a>(Matrix &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\">predict</a>(std::istream &amp;, int32_t, bool)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699\">predict</a>(std::istream &amp;, int32_t, std::vector&lt; std::pair&lt; real, std::string &gt;&gt; &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\">printInfo</a>(real, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\">printSentenceVectors</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\">printWordVectors</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">qinput_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">qoutput_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">quant_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\">quantize</a>(std::shared_ptr&lt; Args &gt;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\">saveModel</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\">saveOutput</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\">saveVectors</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\">selectEmbeddings</a>(int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\">sentenceVectors</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\">signModel</a>(std::ostream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\">skipgram</a>(Model &amp;, real, const std::vector&lt; int32_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">start</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\">supervised</a>(Model &amp;, real, const std::vector&lt; int32_t &gt; &amp;, const std::vector&lt; int32_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\">test</a>(std::istream &amp;, int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\">textVectors</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">tokenCount</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\">train</a>(std::shared_ptr&lt; Args &gt;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\">trainThread</a>(int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">wordVectors</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1FastText.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::FastText Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1FastText.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pri-methods\">Private Member Functions</a> &#124;\n<a href=\"#pri-attribs\">Private Attributes</a> &#124;\n<a href=\"classfasttext_1_1FastText-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::FastText Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"fasttext_8h_source.html\">fasttext.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a3f1c81aafc45ad71824b332f5cb577d5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\">FastText</a> ()</td></tr>\n<tr class=\"separator:a3f1c81aafc45ad71824b332f5cb577d5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ace850e40405e56ab488d32f25e5d3533\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\">getVector</a> (<a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, const std::string &amp;) const</td></tr>\n<tr class=\"separator:ace850e40405e56ab488d32f25e5d3533\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a64fc781f7e3e60a3794562a03477398f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\">saveVectors</a> ()</td></tr>\n<tr class=\"separator:a64fc781f7e3e60a3794562a03477398f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adbe7666386c0d7cb9017fa641e391b9f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\">saveOutput</a> ()</td></tr>\n<tr class=\"separator:adbe7666386c0d7cb9017fa641e391b9f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3bc5bf68cf6e1f487fa57ddc750f2099\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\">saveModel</a> ()</td></tr>\n<tr class=\"separator:a3bc5bf68cf6e1f487fa57ddc750f2099\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae0e6922404294aabbb9d6322e6f464cd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">loadModel</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:ae0e6922404294aabbb9d6322e6f464cd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac844ddc1573e80a8b5a255668fc97247\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ac844ddc1573e80a8b5a255668fc97247\">loadModel</a> (const std::string &amp;)</td></tr>\n<tr class=\"separator:ac844ddc1573e80a8b5a255668fc97247\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adb757902284f53288aa41a5ae45e001f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\">printInfo</a> (<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:adb757902284f53288aa41a5ae45e001f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3c56524cdccf6f9d23b75460bbea5d5f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\">supervised</a> (<a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &amp;, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, const std::vector&lt; int32_t &gt; &amp;, const std::vector&lt; int32_t &gt; &amp;)</td></tr>\n<tr class=\"separator:a3c56524cdccf6f9d23b75460bbea5d5f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a592036d3a8ae545637db4864dbe5274f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\">cbow</a> (<a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &amp;, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, const std::vector&lt; int32_t &gt; &amp;)</td></tr>\n<tr class=\"separator:a592036d3a8ae545637db4864dbe5274f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa1855802a2a1f2f1398fdad79f73b66a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\">skipgram</a> (<a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &amp;, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, const std::vector&lt; int32_t &gt; &amp;)</td></tr>\n<tr class=\"separator:aa1855802a2a1f2f1398fdad79f73b66a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a06fbfe68049942cab56eb85ebb2ca4d9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; int32_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\">selectEmbeddings</a> (int32_t) const</td></tr>\n<tr class=\"separator:a06fbfe68049942cab56eb85ebb2ca4d9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa01f053de2afa22056c594d96988c1ad\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\">quantize</a> (std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;)</td></tr>\n<tr class=\"separator:aa01f053de2afa22056c594d96988c1ad\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af13c347cb7dde5fea3b0122f029a0b5b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\">test</a> (std::istream &amp;, int32_t)</td></tr>\n<tr class=\"separator:af13c347cb7dde5fea3b0122f029a0b5b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a831dff689fbc2af4f93c91ee1bde7e95\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\">predict</a> (std::istream &amp;, int32_t, bool)</td></tr>\n<tr class=\"separator:a831dff689fbc2af4f93c91ee1bde7e95\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a167bc72147d4bc02bd67203e7ebd7699\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699\">predict</a> (std::istream &amp;, int32_t, std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, std::string &gt;&gt; &amp;) const</td></tr>\n<tr class=\"separator:a167bc72147d4bc02bd67203e7ebd7699\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1a5d918e595e00a8ea7b9bc5ac8f6c35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">wordVectors</a> ()</td></tr>\n<tr class=\"separator:a1a5d918e595e00a8ea7b9bc5ac8f6c35\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a39efb50f61237890cbf2e30b7a516618\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\">sentenceVectors</a> ()</td></tr>\n<tr class=\"separator:a39efb50f61237890cbf2e30b7a516618\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a62a84e26a04b64eb35edfa110dd8dc32\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\">ngramVectors</a> (std::string)</td></tr>\n<tr class=\"separator:a62a84e26a04b64eb35edfa110dd8dc32\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aadb72a552ff01b6d6efe9b161ad8dd49\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\">textVectors</a> ()</td></tr>\n<tr class=\"separator:aadb72a552ff01b6d6efe9b161ad8dd49\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a74e01ba3737bd625bf0602fb808b1501\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\">printWordVectors</a> ()</td></tr>\n<tr class=\"separator:a74e01ba3737bd625bf0602fb808b1501\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af4d659c58cd72b67f5cc0cce2c1925cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\">printSentenceVectors</a> ()</td></tr>\n<tr class=\"separator:af4d659c58cd72b67f5cc0cce2c1925cf\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ace82dc820d98f504af16b8b8c501a6f4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\">precomputeWordVectors</a> (<a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;)</td></tr>\n<tr class=\"separator:ace82dc820d98f504af16b8b8c501a6f4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5c8825c522415d89478a54ecf28642c9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\">findNN</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;, const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, int32_t, const std::set&lt; std::string &gt; &amp;)</td></tr>\n<tr class=\"separator:a5c8825c522415d89478a54ecf28642c9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5509f491ca6c2fa3e57bc3443536f885\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\">nn</a> (int32_t)</td></tr>\n<tr class=\"separator:a5509f491ca6c2fa3e57bc3443536f885\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a34e7fade7f758870ffcd28015555ba74\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\">analogies</a> (int32_t)</td></tr>\n<tr class=\"separator:a34e7fade7f758870ffcd28015555ba74\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1b6d83563616330a64d6db4921e835f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\">trainThread</a> (int32_t)</td></tr>\n<tr class=\"separator:a1b6d83563616330a64d6db4921e835f1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7430c17374a28e7f1fd50a9c86ac659b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\">train</a> (std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;)</td></tr>\n<tr class=\"separator:a7430c17374a28e7f1fd50a9c86ac659b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9e503be304e98ead00a2eaed3127f64a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\">loadVectors</a> (std::string)</td></tr>\n<tr class=\"separator:a9e503be304e98ead00a2eaed3127f64a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a32a93e0bc4389be11aa4be0990a9e010\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\">getDimension</a> () const</td></tr>\n<tr class=\"separator:a32a93e0bc4389be11aa4be0990a9e010\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-methods\"></a>\nPrivate Member Functions</h2></td></tr>\n<tr class=\"memitem:afe7b85dd466c4ccef45e4c590edae585\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\">signModel</a> (std::ostream &amp;)</td></tr>\n<tr class=\"separator:afe7b85dd466c4ccef45e4c590edae585\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7a874ab83984dc05dca56a74edae25c1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\">checkModel</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:a7a874ab83984dc05dca56a74edae25c1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-attribs\"></a>\nPrivate Attributes</h2></td></tr>\n<tr class=\"memitem:adb5bfe8d98e11ae5dd3498f9ee4829ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">args_</a></td></tr>\n<tr class=\"separator:adb5bfe8d98e11ae5dd3498f9ee4829ee\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2f5648d532a7ff4f46ac425197082422\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">dict_</a></td></tr>\n<tr class=\"separator:a2f5648d532a7ff4f46ac425197082422\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa25683f12eed057c159fd11fd3a55efb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">input_</a></td></tr>\n<tr class=\"separator:aa25683f12eed057c159fd11fd3a55efb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a48ba03fda3c2cceef301b24b5a2c2b38\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">output_</a></td></tr>\n<tr class=\"separator:a48ba03fda3c2cceef301b24b5a2c2b38\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa4f1d5f2269feee25ae8119bc8e778c4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">qinput_</a></td></tr>\n<tr class=\"separator:aa4f1d5f2269feee25ae8119bc8e778c4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a62ad59060370a16588e407ce3ffebfaa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">qoutput_</a></td></tr>\n<tr class=\"separator:a62ad59060370a16588e407ce3ffebfaa\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4b599ce1e4fa1dedae97bd7fad225cb8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">model_</a></td></tr>\n<tr class=\"separator:a4b599ce1e4fa1dedae97bd7fad225cb8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af34de232baec78782ede73041209dd7b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::atomic&lt; int64_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">tokenCount</a></td></tr>\n<tr class=\"separator:af34de232baec78782ede73041209dd7b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a70fdc2b9419ebdb3a3adb582b713ecce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">clock_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">start</a></td></tr>\n<tr class=\"separator:a70fdc2b9419ebdb3a3adb582b713ecce\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aeb75b28c20c01110cfcf807a518076c8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">quant_</a></td></tr>\n<tr class=\"separator:aeb75b28c20c01110cfcf807a518076c8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a3f1c81aafc45ad71824b332f5cb577d5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3f1c81aafc45ad71824b332f5cb577d5\">&#9670;&nbsp;</a></span>FastText()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::FastText::FastText </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a34e7fade7f758870ffcd28015555ba74\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a34e7fade7f758870ffcd28015555ba74\">&#9670;&nbsp;</a></span>analogies()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::analogies </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a592036d3a8ae545637db4864dbe5274f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a592036d3a8ae545637db4864dbe5274f\">&#9670;&nbsp;</a></span>cbow()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::cbow </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>model</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>line</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7a874ab83984dc05dca56a74edae25c1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7a874ab83984dc05dca56a74edae25c1\">&#9670;&nbsp;</a></span>checkModel()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::FastText::checkModel </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5c8825c522415d89478a54ecf28642c9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5c8825c522415d89478a54ecf28642c9\">&#9670;&nbsp;</a></span>findNN()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::findNN </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>wordVectors</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>queryVec</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::set&lt; std::string &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>banSet</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a32a93e0bc4389be11aa4be0990a9e010\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a32a93e0bc4389be11aa4be0990a9e010\">&#9670;&nbsp;</a></span>getDimension()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int fasttext::FastText::getDimension </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ace850e40405e56ab488d32f25e5d3533\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ace850e40405e56ab488d32f25e5d3533\">&#9670;&nbsp;</a></span>getVector()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::getVector </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>vec</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>word</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae0e6922404294aabbb9d6322e6f464cd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae0e6922404294aabbb9d6322e6f464cd\">&#9670;&nbsp;</a></span>loadModel() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::loadModel </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac844ddc1573e80a8b5a255668fc97247\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac844ddc1573e80a8b5a255668fc97247\">&#9670;&nbsp;</a></span>loadModel() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::loadModel </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::string &amp;&#160;</td>\n          <td class=\"paramname\"><em>filename</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9e503be304e98ead00a2eaed3127f64a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e503be304e98ead00a2eaed3127f64a\">&#9670;&nbsp;</a></span>loadVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::loadVectors </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::string&#160;</td>\n          <td class=\"paramname\"><em>filename</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a62a84e26a04b64eb35edfa110dd8dc32\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a62a84e26a04b64eb35edfa110dd8dc32\">&#9670;&nbsp;</a></span>ngramVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::ngramVectors </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::string&#160;</td>\n          <td class=\"paramname\"><em>word</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5509f491ca6c2fa3e57bc3443536f885\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5509f491ca6c2fa3e57bc3443536f885\">&#9670;&nbsp;</a></span>nn()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::nn </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ace82dc820d98f504af16b8b8c501a6f4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ace82dc820d98f504af16b8b8c501a6f4\">&#9670;&nbsp;</a></span>precomputeWordVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::precomputeWordVectors </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>wordVectors</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a831dff689fbc2af4f93c91ee1bde7e95\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a831dff689fbc2af4f93c91ee1bde7e95\">&#9670;&nbsp;</a></span>predict() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::predict </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool&#160;</td>\n          <td class=\"paramname\"><em>print_prob</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a167bc72147d4bc02bd67203e7ebd7699\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a167bc72147d4bc02bd67203e7ebd7699\">&#9670;&nbsp;</a></span>predict() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::predict </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, std::string &gt;&gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>predictions</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adb757902284f53288aa41a5ae45e001f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb757902284f53288aa41a5ae45e001f\">&#9670;&nbsp;</a></span>printInfo()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::printInfo </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>progress</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>loss</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af4d659c58cd72b67f5cc0cce2c1925cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4d659c58cd72b67f5cc0cce2c1925cf\">&#9670;&nbsp;</a></span>printSentenceVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::printSentenceVectors </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a74e01ba3737bd625bf0602fb808b1501\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a74e01ba3737bd625bf0602fb808b1501\">&#9670;&nbsp;</a></span>printWordVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::printWordVectors </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa01f053de2afa22056c594d96988c1ad\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa01f053de2afa22056c594d96988c1ad\">&#9670;&nbsp;</a></span>quantize()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::quantize </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>qargs</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3bc5bf68cf6e1f487fa57ddc750f2099\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3bc5bf68cf6e1f487fa57ddc750f2099\">&#9670;&nbsp;</a></span>saveModel()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::saveModel </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adbe7666386c0d7cb9017fa641e391b9f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adbe7666386c0d7cb9017fa641e391b9f\">&#9670;&nbsp;</a></span>saveOutput()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::saveOutput </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a64fc781f7e3e60a3794562a03477398f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a64fc781f7e3e60a3794562a03477398f\">&#9670;&nbsp;</a></span>saveVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::saveVectors </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a06fbfe68049942cab56eb85ebb2ca4d9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a06fbfe68049942cab56eb85ebb2ca4d9\">&#9670;&nbsp;</a></span>selectEmbeddings()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt; int32_t &gt; fasttext::FastText::selectEmbeddings </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>cutoff</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a39efb50f61237890cbf2e30b7a516618\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a39efb50f61237890cbf2e30b7a516618\">&#9670;&nbsp;</a></span>sentenceVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::sentenceVectors </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afe7b85dd466c4ccef45e4c590edae585\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe7b85dd466c4ccef45e4c590edae585\">&#9670;&nbsp;</a></span>signModel()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::signModel </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>out</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa1855802a2a1f2f1398fdad79f73b66a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa1855802a2a1f2f1398fdad79f73b66a\">&#9670;&nbsp;</a></span>skipgram()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::skipgram </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>model</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>line</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3c56524cdccf6f9d23b75460bbea5d5f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3c56524cdccf6f9d23b75460bbea5d5f\">&#9670;&nbsp;</a></span>supervised()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::supervised </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>model</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>line</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>labels</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af13c347cb7dde5fea3b0122f029a0b5b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af13c347cb7dde5fea3b0122f029a0b5b\">&#9670;&nbsp;</a></span>test()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::test </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aadb72a552ff01b6d6efe9b161ad8dd49\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aadb72a552ff01b6d6efe9b161ad8dd49\">&#9670;&nbsp;</a></span>textVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::textVectors </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7430c17374a28e7f1fd50a9c86ac659b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7430c17374a28e7f1fd50a9c86ac659b\">&#9670;&nbsp;</a></span>train()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::train </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>args</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1b6d83563616330a64d6db4921e835f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b6d83563616330a64d6db4921e835f1\">&#9670;&nbsp;</a></span>trainThread()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::trainThread </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>threadId</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1a5d918e595e00a8ea7b9bc5ac8f6c35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">&#9670;&nbsp;</a></span>wordVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::FastText::wordVectors </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"adb5bfe8d98e11ae5dd3498f9ee4829ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb5bfe8d98e11ae5dd3498f9ee4829ee\">&#9670;&nbsp;</a></span>args_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a>&gt; fasttext::FastText::args_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2f5648d532a7ff4f46ac425197082422\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2f5648d532a7ff4f46ac425197082422\">&#9670;&nbsp;</a></span>dict_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a>&gt; fasttext::FastText::dict_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa25683f12eed057c159fd11fd3a55efb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa25683f12eed057c159fd11fd3a55efb\">&#9670;&nbsp;</a></span>input_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&gt; fasttext::FastText::input_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4b599ce1e4fa1dedae97bd7fad225cb8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4b599ce1e4fa1dedae97bd7fad225cb8\">&#9670;&nbsp;</a></span>model_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a>&gt; fasttext::FastText::model_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a48ba03fda3c2cceef301b24b5a2c2b38\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a48ba03fda3c2cceef301b24b5a2c2b38\">&#9670;&nbsp;</a></span>output_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&gt; fasttext::FastText::output_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa4f1d5f2269feee25ae8119bc8e778c4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa4f1d5f2269feee25ae8119bc8e778c4\">&#9670;&nbsp;</a></span>qinput_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a>&gt; fasttext::FastText::qinput_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a62ad59060370a16588e407ce3ffebfaa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a62ad59060370a16588e407ce3ffebfaa\">&#9670;&nbsp;</a></span>qoutput_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a>&gt; fasttext::FastText::qoutput_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aeb75b28c20c01110cfcf807a518076c8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeb75b28c20c01110cfcf807a518076c8\">&#9670;&nbsp;</a></span>quant_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::FastText::quant_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a70fdc2b9419ebdb3a3adb582b713ecce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a70fdc2b9419ebdb3a3adb582b713ecce\">&#9670;&nbsp;</a></span>start</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">clock_t fasttext::FastText::start</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af34de232baec78782ede73041209dd7b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af34de232baec78782ede73041209dd7b\">&#9670;&nbsp;</a></span>tokenCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::atomic&lt;int64_t&gt; fasttext::FastText::tokenCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"fasttext_8h_source.html\">fasttext.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"fasttext_8cc.html\">fasttext.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">FastText</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1FastText.js",
    "content": "var classfasttext_1_1FastText =\n[\n    [ \"FastText\", \"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\", null ],\n    [ \"analogies\", \"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\", null ],\n    [ \"cbow\", \"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\", null ],\n    [ \"checkModel\", \"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\", null ],\n    [ \"findNN\", \"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\", null ],\n    [ \"getDimension\", \"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\", null ],\n    [ \"getVector\", \"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\", null ],\n    [ \"loadModel\", \"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\", null ],\n    [ \"loadModel\", \"classfasttext_1_1FastText.html#ac844ddc1573e80a8b5a255668fc97247\", null ],\n    [ \"loadVectors\", \"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\", null ],\n    [ \"ngramVectors\", \"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\", null ],\n    [ \"nn\", \"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\", null ],\n    [ \"precomputeWordVectors\", \"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\", null ],\n    [ \"predict\", \"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\", null ],\n    [ \"predict\", \"classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699\", null ],\n    [ \"printInfo\", \"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\", null ],\n    [ \"printSentenceVectors\", \"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\", null ],\n    [ \"printWordVectors\", \"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\", null ],\n    [ \"quantize\", \"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\", null ],\n    [ \"saveModel\", \"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\", null ],\n    [ \"saveOutput\", \"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\", null ],\n    [ \"saveVectors\", \"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\", null ],\n    [ \"selectEmbeddings\", \"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\", null ],\n    [ \"sentenceVectors\", \"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\", null ],\n    [ \"signModel\", \"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\", null ],\n    [ \"skipgram\", \"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\", null ],\n    [ \"supervised\", \"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\", null ],\n    [ \"test\", \"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\", null ],\n    [ \"textVectors\", \"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\", null ],\n    [ \"train\", \"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\", null ],\n    [ \"trainThread\", \"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\", null ],\n    [ \"wordVectors\", \"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\", null ],\n    [ \"args_\", \"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\", null ],\n    [ \"dict_\", \"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\", null ],\n    [ \"input_\", \"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\", null ],\n    [ \"model_\", \"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\", null ],\n    [ \"output_\", \"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\", null ],\n    [ \"qinput_\", \"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\", null ],\n    [ \"qoutput_\", \"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\", null ],\n    [ \"quant_\", \"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\", null ],\n    [ \"start\", \"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\", null ],\n    [ \"tokenCount\", \"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Matrix-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Matrix.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Matrix Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\">addRow</a>(const Vector &amp;, int64_t, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">at</a>(int64_t i, int64_t j) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\">at</a>(int64_t i, int64_t j)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">data_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\">divideRow</a>(const Vector &amp;denoms, int64_t ib=0, int64_t ie=-1)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\">dotRow</a>(const Vector &amp;, int64_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">l2NormRow</a>(int64_t i) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#afb690a9d64bc7e941cbd48f20cab872e\">l2NormRow</a>(Vector &amp;norms) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\">load</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">m_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">Matrix</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#adb3094376193874860df45e9346eebd6\">Matrix</a>(int64_t, int64_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ad70f2182e0dd1b520ee42200e2d0ed04\">Matrix</a>(const Matrix &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\">multiplyRow</a>(const Vector &amp;nums, int64_t ib=0, int64_t ie=-1)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">n_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\">operator=</a>(const Matrix &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\">save</a>(std::ostream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\">uniform</a>(real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\">zero</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\">~Matrix</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Matrix.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::Matrix Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Matrix.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pub-attribs\">Public Attributes</a> &#124;\n<a href=\"classfasttext_1_1Matrix-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Matrix Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ae3eed8f78b046582d6504eaae17b9890\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">Matrix</a> ()</td></tr>\n<tr class=\"separator:ae3eed8f78b046582d6504eaae17b9890\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adb3094376193874860df45e9346eebd6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#adb3094376193874860df45e9346eebd6\">Matrix</a> (int64_t, int64_t)</td></tr>\n<tr class=\"separator:adb3094376193874860df45e9346eebd6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad70f2182e0dd1b520ee42200e2d0ed04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ad70f2182e0dd1b520ee42200e2d0ed04\">Matrix</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;)</td></tr>\n<tr class=\"separator:ad70f2182e0dd1b520ee42200e2d0ed04\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abe27a5e1c276ab145297c4941cd468f3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\">operator=</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;)</td></tr>\n<tr class=\"separator:abe27a5e1c276ab145297c4941cd468f3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad4442ecc4c59f34e8d83b0ce87472417\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\">~Matrix</a> ()</td></tr>\n<tr class=\"separator:ad4442ecc4c59f34e8d83b0ce87472417\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afc9c477f90e9d9a193e1710e46a68221\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">at</a> (int64_t i, int64_t j) const</td></tr>\n<tr class=\"separator:afc9c477f90e9d9a193e1710e46a68221\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abb6222f956da7e32391092158eaaf5a0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\">at</a> (int64_t i, int64_t j)</td></tr>\n<tr class=\"separator:abb6222f956da7e32391092158eaaf5a0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a44eee2d614a0cce8396cd33ecb7439ba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\">zero</a> ()</td></tr>\n<tr class=\"separator:a44eee2d614a0cce8396cd33ecb7439ba\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aef334e5d5a164b01c2b74960ffa3782d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\">uniform</a> (<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:aef334e5d5a164b01c2b74960ffa3782d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae6b962ed2ca31fb3a8d094c8f85d6136\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\">dotRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, int64_t) const</td></tr>\n<tr class=\"separator:ae6b962ed2ca31fb3a8d094c8f85d6136\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aceef1bc55d67b38c8b2b2c9ba7e769de\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\">addRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, int64_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:aceef1bc55d67b38c8b2b2c9ba7e769de\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a103b48301d251f8af69409c123435b3c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\">multiplyRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;nums, int64_t ib=0, int64_t ie=-1)</td></tr>\n<tr class=\"separator:a103b48301d251f8af69409c123435b3c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab4d6dd58db43dd2c4a6fbb12c74541a0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\">divideRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;denoms, int64_t ib=0, int64_t ie=-1)</td></tr>\n<tr class=\"separator:ab4d6dd58db43dd2c4a6fbb12c74541a0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa61bc6b1a1b2467d7fb41a9e99d96922\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">l2NormRow</a> (int64_t i) const</td></tr>\n<tr class=\"separator:aa61bc6b1a1b2467d7fb41a9e99d96922\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afb690a9d64bc7e941cbd48f20cab872e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#afb690a9d64bc7e941cbd48f20cab872e\">l2NormRow</a> (<a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;norms) const</td></tr>\n<tr class=\"separator:afb690a9d64bc7e941cbd48f20cab872e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aaf869b3115a6b404c13f5c31678c147b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\">save</a> (std::ostream &amp;)</td></tr>\n<tr class=\"separator:aaf869b3115a6b404c13f5c31678c147b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8a04afebc25fcf38376f272371e0b60d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\">load</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:a8a04afebc25fcf38376f272371e0b60d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-attribs\"></a>\nPublic Attributes</h2></td></tr>\n<tr class=\"memitem:a3a63d6e3e3db63e5f756bbc4692a46ae\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">data_</a></td></tr>\n<tr class=\"separator:a3a63d6e3e3db63e5f756bbc4692a46ae\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adbdd245dfc806fbbbef33a07e4805084\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">m_</a></td></tr>\n<tr class=\"separator:adbdd245dfc806fbbbef33a07e4805084\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aeeddaea318709ea37127caae30194ff3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">n_</a></td></tr>\n<tr class=\"separator:aeeddaea318709ea37127caae30194ff3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ae3eed8f78b046582d6504eaae17b9890\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae3eed8f78b046582d6504eaae17b9890\">&#9670;&nbsp;</a></span>Matrix() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Matrix::Matrix </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adb3094376193874860df45e9346eebd6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb3094376193874860df45e9346eebd6\">&#9670;&nbsp;</a></span>Matrix() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Matrix::Matrix </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>m</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>n</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad70f2182e0dd1b520ee42200e2d0ed04\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad70f2182e0dd1b520ee42200e2d0ed04\">&#9670;&nbsp;</a></span>Matrix() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Matrix::Matrix </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>other</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad4442ecc4c59f34e8d83b0ce87472417\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad4442ecc4c59f34e8d83b0ce87472417\">&#9670;&nbsp;</a></span>~Matrix()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Matrix::~Matrix </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"aceef1bc55d67b38c8b2b2c9ba7e769de\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aceef1bc55d67b38c8b2b2c9ba7e769de\">&#9670;&nbsp;</a></span>addRow()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::addRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>vec</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>a</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afc9c477f90e9d9a193e1710e46a68221\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc9c477f90e9d9a193e1710e46a68221\">&#9670;&nbsp;</a></span>at() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&amp; fasttext::Matrix::at </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>j</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"abb6222f956da7e32391092158eaaf5a0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb6222f956da7e32391092158eaaf5a0\">&#9670;&nbsp;</a></span>at() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&amp; fasttext::Matrix::at </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>j</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab4d6dd58db43dd2c4a6fbb12c74541a0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab4d6dd58db43dd2c4a6fbb12c74541a0\">&#9670;&nbsp;</a></span>divideRow()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::divideRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>denoms</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>ib</em> = <code>0</code>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>ie</em> = <code>-1</code>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae6b962ed2ca31fb3a8d094c8f85d6136\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae6b962ed2ca31fb3a8d094c8f85d6136\">&#9670;&nbsp;</a></span>dotRow()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Matrix::dotRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>vec</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa61bc6b1a1b2467d7fb41a9e99d96922\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa61bc6b1a1b2467d7fb41a9e99d96922\">&#9670;&nbsp;</a></span>l2NormRow() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Matrix::l2NormRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afb690a9d64bc7e941cbd48f20cab872e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afb690a9d64bc7e941cbd48f20cab872e\">&#9670;&nbsp;</a></span>l2NormRow() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::l2NormRow </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>norms</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8a04afebc25fcf38376f272371e0b60d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8a04afebc25fcf38376f272371e0b60d\">&#9670;&nbsp;</a></span>load()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::load </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a103b48301d251f8af69409c123435b3c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a103b48301d251f8af69409c123435b3c\">&#9670;&nbsp;</a></span>multiplyRow()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::multiplyRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>nums</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>ib</em> = <code>0</code>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>ie</em> = <code>-1</code>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"abe27a5e1c276ab145297c4941cd468f3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abe27a5e1c276ab145297c4941cd468f3\">&#9670;&nbsp;</a></span>operator=()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp; fasttext::Matrix::operator= </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>other</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aaf869b3115a6b404c13f5c31678c147b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaf869b3115a6b404c13f5c31678c147b\">&#9670;&nbsp;</a></span>save()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::save </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>out</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aef334e5d5a164b01c2b74960ffa3782d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aef334e5d5a164b01c2b74960ffa3782d\">&#9670;&nbsp;</a></span>uniform()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::uniform </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>a</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a44eee2d614a0cce8396cd33ecb7439ba\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a44eee2d614a0cce8396cd33ecb7439ba\">&#9670;&nbsp;</a></span>zero()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Matrix::zero </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a3a63d6e3e3db63e5f756bbc4692a46ae\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a63d6e3e3db63e5f756bbc4692a46ae\">&#9670;&nbsp;</a></span>data_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* fasttext::Matrix::data_</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adbdd245dfc806fbbbef33a07e4805084\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adbdd245dfc806fbbbef33a07e4805084\">&#9670;&nbsp;</a></span>m_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Matrix::m_</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aeeddaea318709ea37127caae30194ff3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeeddaea318709ea37127caae30194ff3\">&#9670;&nbsp;</a></span>n_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Matrix::n_</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"matrix_8cc.html\">matrix.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Matrix.js",
    "content": "var classfasttext_1_1Matrix =\n[\n    [ \"Matrix\", \"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\", null ],\n    [ \"Matrix\", \"classfasttext_1_1Matrix.html#adb3094376193874860df45e9346eebd6\", null ],\n    [ \"Matrix\", \"classfasttext_1_1Matrix.html#ad70f2182e0dd1b520ee42200e2d0ed04\", null ],\n    [ \"~Matrix\", \"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\", null ],\n    [ \"addRow\", \"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\", null ],\n    [ \"at\", \"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\", null ],\n    [ \"at\", \"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\", null ],\n    [ \"divideRow\", \"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\", null ],\n    [ \"dotRow\", \"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\", null ],\n    [ \"l2NormRow\", \"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\", null ],\n    [ \"l2NormRow\", \"classfasttext_1_1Matrix.html#afb690a9d64bc7e941cbd48f20cab872e\", null ],\n    [ \"load\", \"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\", null ],\n    [ \"multiplyRow\", \"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\", null ],\n    [ \"operator=\", \"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\", null ],\n    [ \"save\", \"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\", null ],\n    [ \"uniform\", \"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\", null ],\n    [ \"zero\", \"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\", null ],\n    [ \"data_\", \"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\", null ],\n    [ \"m_\", \"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\", null ],\n    [ \"n_\", \"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Model-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Model.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Model Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">args_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0\">binaryLogistic</a>(int32_t, bool, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd\">buildTree</a>(const std::vector&lt; int64_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">codes</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ac475c67452b62dd374b6253f99167816\">comparePairs</a>(const std::pair&lt; real, int32_t &gt; &amp;, const std::pair&lt; real, int32_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span><span class=\"mlabel\">static</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110\">computeHidden</a>(const std::vector&lt; int32_t &gt; &amp;, Vector &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6\">computeOutputSoftmax</a>(Vector &amp;, Vector &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#af48ca152068185f0bd31746be56c03bd\">computeOutputSoftmax</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77\">dfs</a>(int32_t, int32_t, real, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;, Vector &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5\">findKBest</a>(int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;, Vector &amp;, Vector &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1\">getLoss</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc\">getNegative</a>(int32_t target)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">grad_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">hidden_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51\">hierarchicalSoftmax</a>(int32_t, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">hsz_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07\">initLog</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780\">initSigmoid</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c\">initTableNegatives</a>(const std::vector&lt; int64_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816\">log</a>(real) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">loss_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338\">Model</a>(std::shared_ptr&lt; Matrix &gt;, std::shared_ptr&lt; Matrix &gt;, std::shared_ptr&lt; Args &gt;, int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c\">NEGATIVE_TABLE_SIZE</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span><span class=\"mlabel\">static</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">negatives</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660\">negativeSampling</a>(int32_t, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">negpos</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">nexamples_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">osz_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">output_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">paths</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86\">predict</a>(const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;, Vector &amp;, Vector &amp;) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a6e7ad347856d6d9b6994a4263e10585a\">predict</a>(const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">quant_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">qwi_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">qwo_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">rng</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713\">setQuantizePointer</a>(std::shared_ptr&lt; QMatrix &gt;, std::shared_ptr&lt; QMatrix &gt;, bool)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b\">setTargetCounts</a>(const std::vector&lt; int64_t &gt; &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf\">sigmoid</a>(real) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e\">softmax</a>(int32_t, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">t_log</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">t_sigmoid</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">tree</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b\">update</a>(const std::vector&lt; int32_t &gt; &amp;, int32_t, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">wi_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">wo_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72\">~Model</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Model.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::Model Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Model.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pub-attribs\">Public Attributes</a> &#124;\n<a href=\"#pri-methods\">Private Member Functions</a> &#124;\n<a href=\"#pri-static-methods\">Static Private Member Functions</a> &#124;\n<a href=\"#pri-attribs\">Private Attributes</a> &#124;\n<a href=\"#pri-static-attribs\">Static Private Attributes</a> &#124;\n<a href=\"classfasttext_1_1Model-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Model Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"model_8h_source.html\">model.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a63f17ed51e4a9adf73322bf62d2cf338\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338\">Model</a> (std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;, std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;, std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;, int32_t)</td></tr>\n<tr class=\"separator:a63f17ed51e4a9adf73322bf62d2cf338\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a70b5bdc423e9f351f2a4b2e0f5411e72\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72\">~Model</a> ()</td></tr>\n<tr class=\"separator:a70b5bdc423e9f351f2a4b2e0f5411e72\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a953cbd5ace20826dcc1453bb94e99de0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0\">binaryLogistic</a> (int32_t, bool, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:a953cbd5ace20826dcc1453bb94e99de0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a670d5e0695fe61398ec4a2352c897660\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660\">negativeSampling</a> (int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:a670d5e0695fe61398ec4a2352c897660\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad0a3a28007e2dfe2f36c5159c86d4c51\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51\">hierarchicalSoftmax</a> (int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:ad0a3a28007e2dfe2f36c5159c86d4c51\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aded1fd701066b50be1e74f64d5b81a0e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e\">softmax</a> (int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:aded1fd701066b50be1e74f64d5b81a0e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa7c62c0f736b4703c9d52130a3747d86\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86\">predict</a> (const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;) const</td></tr>\n<tr class=\"separator:aa7c62c0f736b4703c9d52130a3747d86\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6e7ad347856d6d9b6994a4263e10585a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a6e7ad347856d6d9b6994a4263e10585a\">predict</a> (const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;)</td></tr>\n<tr class=\"separator:a6e7ad347856d6d9b6994a4263e10585a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a16ffdb3fcd27fa51f6b435b3be762a77\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77\">dfs</a> (int32_t, int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;) const</td></tr>\n<tr class=\"separator:a16ffdb3fcd27fa51f6b435b3be762a77\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad95e1ec209c506cf6ec1a5410d6f91d5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5\">findKBest</a> (int32_t, std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;) const</td></tr>\n<tr class=\"separator:ad95e1ec209c506cf6ec1a5410d6f91d5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad92f524e3bf61598602c588408ca934b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b\">update</a> (const std::vector&lt; int32_t &gt; &amp;, int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:ad92f524e3bf61598602c588408ca934b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae561523a8c81dd60d9bbe10336f83110\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110\">computeHidden</a> (const std::vector&lt; int32_t &gt; &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;) const</td></tr>\n<tr class=\"separator:ae561523a8c81dd60d9bbe10336f83110\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a00f5b7ed6e10c2bafa29919136c471f6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6\">computeOutputSoftmax</a> (<a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;) const</td></tr>\n<tr class=\"separator:a00f5b7ed6e10c2bafa29919136c471f6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af48ca152068185f0bd31746be56c03bd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#af48ca152068185f0bd31746be56c03bd\">computeOutputSoftmax</a> ()</td></tr>\n<tr class=\"separator:af48ca152068185f0bd31746be56c03bd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8026fcbe9d5b566ab5ca97e104512f0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b\">setTargetCounts</a> (const std::vector&lt; int64_t &gt; &amp;)</td></tr>\n<tr class=\"separator:a8026fcbe9d5b566ab5ca97e104512f0b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a03859cabcddafddfdb7e6d8862e2ae6c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c\">initTableNegatives</a> (const std::vector&lt; int64_t &gt; &amp;)</td></tr>\n<tr class=\"separator:a03859cabcddafddfdb7e6d8862e2ae6c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aadfc3b7eb7bbe05f024fbfb67ea25ffd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd\">buildTree</a> (const std::vector&lt; int64_t &gt; &amp;)</td></tr>\n<tr class=\"separator:aadfc3b7eb7bbe05f024fbfb67ea25ffd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adab141691a82b572ab80f6bbb5ded6d1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1\">getLoss</a> () const</td></tr>\n<tr class=\"separator:adab141691a82b572ab80f6bbb5ded6d1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a408d1426eb8aaf78a873bb4edd7d7dbf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf\">sigmoid</a> (<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) const</td></tr>\n<tr class=\"separator:a408d1426eb8aaf78a873bb4edd7d7dbf\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af797332e236982f2570a3b94b686e816\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816\">log</a> (<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) const</td></tr>\n<tr class=\"separator:af797332e236982f2570a3b94b686e816\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adb25aef3feb355ebf781e104e3065713\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713\">setQuantizePointer</a> (std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;, std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;, bool)</td></tr>\n<tr class=\"separator:adb25aef3feb355ebf781e104e3065713\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-attribs\"></a>\nPublic Attributes</h2></td></tr>\n<tr class=\"memitem:a7e27d2fd2800dcee09ea8101fea49676\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::minstd_rand&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">rng</a></td></tr>\n<tr class=\"separator:a7e27d2fd2800dcee09ea8101fea49676\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0d3b51a1c171314b879aae52c3717a43\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">quant_</a></td></tr>\n<tr class=\"separator:a0d3b51a1c171314b879aae52c3717a43\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-methods\"></a>\nPrivate Member Functions</h2></td></tr>\n<tr class=\"memitem:a572a3c164d6e88120a8384330e2834dc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc\">getNegative</a> (int32_t target)</td></tr>\n<tr class=\"separator:a572a3c164d6e88120a8384330e2834dc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab64ec566b2fc836050ef178ec11df780\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780\">initSigmoid</a> ()</td></tr>\n<tr class=\"separator:ab64ec566b2fc836050ef178ec11df780\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abf8bafb8fc35c220bf961893bf459c07\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07\">initLog</a> ()</td></tr>\n<tr class=\"separator:abf8bafb8fc35c220bf961893bf459c07\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-static-methods\"></a>\nStatic Private Member Functions</h2></td></tr>\n<tr class=\"memitem:ac475c67452b62dd374b6253f99167816\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ac475c67452b62dd374b6253f99167816\">comparePairs</a> (const std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt; &amp;, const std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt; &amp;)</td></tr>\n<tr class=\"separator:ac475c67452b62dd374b6253f99167816\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-attribs\"></a>\nPrivate Attributes</h2></td></tr>\n<tr class=\"memitem:ae7c72e4f6b9fda134708d08efb0170e2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">wi_</a></td></tr>\n<tr class=\"separator:ae7c72e4f6b9fda134708d08efb0170e2\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad6b3771605106e55bb132be316ec34b9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">wo_</a></td></tr>\n<tr class=\"separator:ad6b3771605106e55bb132be316ec34b9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac9524ea5200abefdd2d83e29ffaa9693\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">qwi_</a></td></tr>\n<tr class=\"separator:ac9524ea5200abefdd2d83e29ffaa9693\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4ee087454e830b18c22a59ae9bb6fcf1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">qwo_</a></td></tr>\n<tr class=\"separator:a4ee087454e830b18c22a59ae9bb6fcf1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a76314e94e2582e9e2160bcfd9c75ba99\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">args_</a></td></tr>\n<tr class=\"separator:a76314e94e2582e9e2160bcfd9c75ba99\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a31e9eee86f238bd2962569be67444e79\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">hidden_</a></td></tr>\n<tr class=\"separator:a31e9eee86f238bd2962569be67444e79\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a845160e4cdb0e8c17b74f269563dc71c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">output_</a></td></tr>\n<tr class=\"separator:a845160e4cdb0e8c17b74f269563dc71c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a79bd4bcbd2e6f10c5483249dfea74e97\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">grad_</a></td></tr>\n<tr class=\"separator:a79bd4bcbd2e6f10c5483249dfea74e97\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0b7f9ccdcdb6e44c0515b46af829bc19\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">hsz_</a></td></tr>\n<tr class=\"separator:a0b7f9ccdcdb6e44c0515b46af829bc19\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a39799429dd196a7ec7e4bdee63087751\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">osz_</a></td></tr>\n<tr class=\"separator:a39799429dd196a7ec7e4bdee63087751\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3cc48ada470c99ef69840cf79967616e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">loss_</a></td></tr>\n<tr class=\"separator:a3cc48ada470c99ef69840cf79967616e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aeec9f08e7775bfcab322960fc80d7621\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">nexamples_</a></td></tr>\n<tr class=\"separator:aeec9f08e7775bfcab322960fc80d7621\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8df9424c08479931b6351844be3bd090\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">t_sigmoid</a></td></tr>\n<tr class=\"separator:a8df9424c08479931b6351844be3bd090\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a790013d8e68ed70db7074c9d3e262170\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">t_log</a></td></tr>\n<tr class=\"separator:a790013d8e68ed70db7074c9d3e262170\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a082187d7f01c243f296084878ea0e0f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; int32_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">negatives</a></td></tr>\n<tr class=\"separator:a082187d7f01c243f296084878ea0e0f1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afaf1104f9e1c382c3eb30ca41311e84f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">size_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">negpos</a></td></tr>\n<tr class=\"separator:afaf1104f9e1c382c3eb30ca41311e84f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0ff68cfe9333feff1f8914f3787b1b5f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; std::vector&lt; int32_t &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">paths</a></td></tr>\n<tr class=\"separator:a0ff68cfe9333feff1f8914f3787b1b5f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab6675d265df22787dfa9835196300d3b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; std::vector&lt; bool &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">codes</a></td></tr>\n<tr class=\"separator:ab6675d265df22787dfa9835196300d3b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a53a03f49121369e4100ceb6ab06f178a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; <a class=\"el\" href=\"structfasttext_1_1Node.html\">Node</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">tree</a></td></tr>\n<tr class=\"separator:a53a03f49121369e4100ceb6ab06f178a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-static-attribs\"></a>\nStatic Private Attributes</h2></td></tr>\n<tr class=\"memitem:ab8e5d608cd0338d1dc2e2b2eeaed751c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c\">NEGATIVE_TABLE_SIZE</a> = 10000000</td></tr>\n<tr class=\"separator:ab8e5d608cd0338d1dc2e2b2eeaed751c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a63f17ed51e4a9adf73322bf62d2cf338\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a63f17ed51e4a9adf73322bf62d2cf338\">&#9670;&nbsp;</a></span>Model()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Model::Model </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>wi</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>wo</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>args</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>seed</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a70b5bdc423e9f351f2a4b2e0f5411e72\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a70b5bdc423e9f351f2a4b2e0f5411e72\">&#9670;&nbsp;</a></span>~Model()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Model::~Model </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a953cbd5ace20826dcc1453bb94e99de0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a953cbd5ace20826dcc1453bb94e99de0\">&#9670;&nbsp;</a></span>binaryLogistic()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::binaryLogistic </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>target</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool&#160;</td>\n          <td class=\"paramname\"><em>label</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aadfc3b7eb7bbe05f024fbfb67ea25ffd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aadfc3b7eb7bbe05f024fbfb67ea25ffd\">&#9670;&nbsp;</a></span>buildTree()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::buildTree </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int64_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>counts</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac475c67452b62dd374b6253f99167816\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac475c67452b62dd374b6253f99167816\">&#9670;&nbsp;</a></span>comparePairs()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Model::comparePairs </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>l</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>r</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae561523a8c81dd60d9bbe10336f83110\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae561523a8c81dd60d9bbe10336f83110\">&#9670;&nbsp;</a></span>computeHidden()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::computeHidden </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>input</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>hidden</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a00f5b7ed6e10c2bafa29919136c471f6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a00f5b7ed6e10c2bafa29919136c471f6\">&#9670;&nbsp;</a></span>computeOutputSoftmax() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::computeOutputSoftmax </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>hidden</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>output</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af48ca152068185f0bd31746be56c03bd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af48ca152068185f0bd31746be56c03bd\">&#9670;&nbsp;</a></span>computeOutputSoftmax() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::computeOutputSoftmax </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a16ffdb3fcd27fa51f6b435b3be762a77\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a16ffdb3fcd27fa51f6b435b3be762a77\">&#9670;&nbsp;</a></span>dfs()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::dfs </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>node</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>score</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>heap</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>hidden</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad95e1ec209c506cf6ec1a5410d6f91d5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad95e1ec209c506cf6ec1a5410d6f91d5\">&#9670;&nbsp;</a></span>findKBest()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::findKBest </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>heap</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>hidden</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>output</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adab141691a82b572ab80f6bbb5ded6d1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adab141691a82b572ab80f6bbb5ded6d1\">&#9670;&nbsp;</a></span>getLoss()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::getLoss </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a572a3c164d6e88120a8384330e2834dc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a572a3c164d6e88120a8384330e2834dc\">&#9670;&nbsp;</a></span>getNegative()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Model::getNegative </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>target</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad0a3a28007e2dfe2f36c5159c86d4c51\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad0a3a28007e2dfe2f36c5159c86d4c51\">&#9670;&nbsp;</a></span>hierarchicalSoftmax()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::hierarchicalSoftmax </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>target</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"abf8bafb8fc35c220bf961893bf459c07\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abf8bafb8fc35c220bf961893bf459c07\">&#9670;&nbsp;</a></span>initLog()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::initLog </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab64ec566b2fc836050ef178ec11df780\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab64ec566b2fc836050ef178ec11df780\">&#9670;&nbsp;</a></span>initSigmoid()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::initSigmoid </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a03859cabcddafddfdb7e6d8862e2ae6c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a03859cabcddafddfdb7e6d8862e2ae6c\">&#9670;&nbsp;</a></span>initTableNegatives()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::initTableNegatives </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int64_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>counts</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af797332e236982f2570a3b94b686e816\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af797332e236982f2570a3b94b686e816\">&#9670;&nbsp;</a></span>log()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::log </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>x</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a670d5e0695fe61398ec4a2352c897660\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a670d5e0695fe61398ec4a2352c897660\">&#9670;&nbsp;</a></span>negativeSampling()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::negativeSampling </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>target</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa7c62c0f736b4703c9d52130a3747d86\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa7c62c0f736b4703c9d52130a3747d86\">&#9670;&nbsp;</a></span>predict() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::predict </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>input</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>heap</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>hidden</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>output</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a6e7ad347856d6d9b6994a4263e10585a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6e7ad347856d6d9b6994a4263e10585a\">&#9670;&nbsp;</a></span>predict() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::predict </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>input</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>k</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::vector&lt; std::pair&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, int32_t &gt;&gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>heap</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adb25aef3feb355ebf781e104e3065713\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb25aef3feb355ebf781e104e3065713\">&#9670;&nbsp;</a></span>setQuantizePointer()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::setQuantizePointer </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>qwi</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">std::shared_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &gt;&#160;</td>\n          <td class=\"paramname\"><em>qwo</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool&#160;</td>\n          <td class=\"paramname\"><em>qout</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8026fcbe9d5b566ab5ca97e104512f0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8026fcbe9d5b566ab5ca97e104512f0b\">&#9670;&nbsp;</a></span>setTargetCounts()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::setTargetCounts </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int64_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>counts</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a408d1426eb8aaf78a873bb4edd7d7dbf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a408d1426eb8aaf78a873bb4edd7d7dbf\">&#9670;&nbsp;</a></span>sigmoid()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::sigmoid </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>x</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aded1fd701066b50be1e74f64d5b81a0e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aded1fd701066b50be1e74f64d5b81a0e\">&#9670;&nbsp;</a></span>softmax()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::softmax </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>target</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad92f524e3bf61598602c588408ca934b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad92f524e3bf61598602c588408ca934b\">&#9670;&nbsp;</a></span>update()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Model::update </td>\n          <td>(</td>\n          <td class=\"paramtype\">const std::vector&lt; int32_t &gt; &amp;&#160;</td>\n          <td class=\"paramname\"><em>input</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>target</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>lr</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a76314e94e2582e9e2160bcfd9c75ba99\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a76314e94e2582e9e2160bcfd9c75ba99\">&#9670;&nbsp;</a></span>args_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a>&gt; fasttext::Model::args_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab6675d265df22787dfa9835196300d3b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab6675d265df22787dfa9835196300d3b\">&#9670;&nbsp;</a></span>codes</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt; std::vector&lt;bool&gt; &gt; fasttext::Model::codes</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a79bd4bcbd2e6f10c5483249dfea74e97\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a79bd4bcbd2e6f10c5483249dfea74e97\">&#9670;&nbsp;</a></span>grad_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> fasttext::Model::grad_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a31e9eee86f238bd2962569be67444e79\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a31e9eee86f238bd2962569be67444e79\">&#9670;&nbsp;</a></span>hidden_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> fasttext::Model::hidden_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0b7f9ccdcdb6e44c0515b46af829bc19\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0b7f9ccdcdb6e44c0515b46af829bc19\">&#9670;&nbsp;</a></span>hsz_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Model::hsz_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3cc48ada470c99ef69840cf79967616e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3cc48ada470c99ef69840cf79967616e\">&#9670;&nbsp;</a></span>loss_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Model::loss_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab8e5d608cd0338d1dc2e2b2eeaed751c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab8e5d608cd0338d1dc2e2b2eeaed751c\">&#9670;&nbsp;</a></span>NEGATIVE_TABLE_SIZE</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::Model::NEGATIVE_TABLE_SIZE = 10000000</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">static</span><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a082187d7f01c243f296084878ea0e0f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a082187d7f01c243f296084878ea0e0f1\">&#9670;&nbsp;</a></span>negatives</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;int32_t&gt; fasttext::Model::negatives</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afaf1104f9e1c382c3eb30ca41311e84f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afaf1104f9e1c382c3eb30ca41311e84f\">&#9670;&nbsp;</a></span>negpos</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">size_t fasttext::Model::negpos</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aeec9f08e7775bfcab322960fc80d7621\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeec9f08e7775bfcab322960fc80d7621\">&#9670;&nbsp;</a></span>nexamples_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Model::nexamples_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a39799429dd196a7ec7e4bdee63087751\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a39799429dd196a7ec7e4bdee63087751\">&#9670;&nbsp;</a></span>osz_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Model::osz_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a845160e4cdb0e8c17b74f269563dc71c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a845160e4cdb0e8c17b74f269563dc71c\">&#9670;&nbsp;</a></span>output_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> fasttext::Model::output_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0ff68cfe9333feff1f8914f3787b1b5f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0ff68cfe9333feff1f8914f3787b1b5f\">&#9670;&nbsp;</a></span>paths</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt; std::vector&lt;int32_t&gt; &gt; fasttext::Model::paths</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0d3b51a1c171314b879aae52c3717a43\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d3b51a1c171314b879aae52c3717a43\">&#9670;&nbsp;</a></span>quant_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Model::quant_</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac9524ea5200abefdd2d83e29ffaa9693\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac9524ea5200abefdd2d83e29ffaa9693\">&#9670;&nbsp;</a></span>qwi_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a>&gt; fasttext::Model::qwi_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4ee087454e830b18c22a59ae9bb6fcf1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4ee087454e830b18c22a59ae9bb6fcf1\">&#9670;&nbsp;</a></span>qwo_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a>&gt; fasttext::Model::qwo_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7e27d2fd2800dcee09ea8101fea49676\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7e27d2fd2800dcee09ea8101fea49676\">&#9670;&nbsp;</a></span>rng</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::minstd_rand fasttext::Model::rng</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a790013d8e68ed70db7074c9d3e262170\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a790013d8e68ed70db7074c9d3e262170\">&#9670;&nbsp;</a></span>t_log</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* fasttext::Model::t_log</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8df9424c08479931b6351844be3bd090\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8df9424c08479931b6351844be3bd090\">&#9670;&nbsp;</a></span>t_sigmoid</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* fasttext::Model::t_sigmoid</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a53a03f49121369e4100ceb6ab06f178a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a53a03f49121369e4100ceb6ab06f178a\">&#9670;&nbsp;</a></span>tree</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;<a class=\"el\" href=\"structfasttext_1_1Node.html\">Node</a>&gt; fasttext::Model::tree</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae7c72e4f6b9fda134708d08efb0170e2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae7c72e4f6b9fda134708d08efb0170e2\">&#9670;&nbsp;</a></span>wi_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&gt; fasttext::Model::wi_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad6b3771605106e55bb132be316ec34b9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad6b3771605106e55bb132be316ec34b9\">&#9670;&nbsp;</a></span>wo_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::shared_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&gt; fasttext::Model::wo_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"model_8h_source.html\">model.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"model_8cc.html\">model.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Model.js",
    "content": "var classfasttext_1_1Model =\n[\n    [ \"Model\", \"classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338\", null ],\n    [ \"~Model\", \"classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72\", null ],\n    [ \"binaryLogistic\", \"classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0\", null ],\n    [ \"buildTree\", \"classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd\", null ],\n    [ \"computeHidden\", \"classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110\", null ],\n    [ \"computeOutputSoftmax\", \"classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6\", null ],\n    [ \"computeOutputSoftmax\", \"classfasttext_1_1Model.html#af48ca152068185f0bd31746be56c03bd\", null ],\n    [ \"dfs\", \"classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77\", null ],\n    [ \"findKBest\", \"classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5\", null ],\n    [ \"getLoss\", \"classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1\", null ],\n    [ \"getNegative\", \"classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc\", null ],\n    [ \"hierarchicalSoftmax\", \"classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51\", null ],\n    [ \"initLog\", \"classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07\", null ],\n    [ \"initSigmoid\", \"classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780\", null ],\n    [ \"initTableNegatives\", \"classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c\", null ],\n    [ \"log\", \"classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816\", null ],\n    [ \"negativeSampling\", \"classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660\", null ],\n    [ \"predict\", \"classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86\", null ],\n    [ \"predict\", \"classfasttext_1_1Model.html#a6e7ad347856d6d9b6994a4263e10585a\", null ],\n    [ \"setQuantizePointer\", \"classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713\", null ],\n    [ \"setTargetCounts\", \"classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b\", null ],\n    [ \"sigmoid\", \"classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf\", null ],\n    [ \"softmax\", \"classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e\", null ],\n    [ \"update\", \"classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b\", null ],\n    [ \"args_\", \"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\", null ],\n    [ \"codes\", \"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\", null ],\n    [ \"grad_\", \"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\", null ],\n    [ \"hidden_\", \"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\", null ],\n    [ \"hsz_\", \"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\", null ],\n    [ \"loss_\", \"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\", null ],\n    [ \"negatives\", \"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\", null ],\n    [ \"negpos\", \"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\", null ],\n    [ \"nexamples_\", \"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\", null ],\n    [ \"osz_\", \"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\", null ],\n    [ \"output_\", \"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\", null ],\n    [ \"paths\", \"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\", null ],\n    [ \"quant_\", \"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\", null ],\n    [ \"qwi_\", \"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\", null ],\n    [ \"qwo_\", \"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\", null ],\n    [ \"rng\", \"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\", null ],\n    [ \"t_log\", \"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\", null ],\n    [ \"t_sigmoid\", \"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\", null ],\n    [ \"tree\", \"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\", null ],\n    [ \"wi_\", \"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\", null ],\n    [ \"wo_\", \"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1ProductQuantizer-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1ProductQuantizer.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::ProductQuantizer Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\">addcode</a>(Vector &amp;, const uint8_t *, int32_t, real) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\">assign_centroid</a>(const real *, const real *, uint8_t *, int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">centroids_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\">compute_code</a>(const real *, uint8_t *) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\">compute_codes</a>(const real *, uint8_t *, int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">dim_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">dsub_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">eps_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\">Estep</a>(const real *, const real *, uint8_t *, int32_t, int32_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">get_centroids</a>(int32_t, uint8_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a4f7b2b81820abc0c577a89a768ef3347\">get_centroids</a>(int32_t, uint8_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\">kmeans</a>(const real *, real *, int32_t, int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">ksub_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">lastdsub_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\">load</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">max_points_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">max_points_per_cluster_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\">MStep</a>(const real *, real *, const uint8_t *, int32_t, int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">mulcode</a>(const Vector &amp;, const uint8_t *, int32_t, real) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">nbits_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">niter_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">nsubq_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">ProductQuantizer</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a8563da401dbfaa98983ef0c92f92a18f\">ProductQuantizer</a>(int32_t, int32_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">rng</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\">save</a>(std::ostream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">seed_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\">train</a>(int, const real *)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1ProductQuantizer.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::ProductQuantizer Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1ProductQuantizer.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pri-attribs\">Private Attributes</a> &#124;\n<a href=\"classfasttext_1_1ProductQuantizer-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::ProductQuantizer Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"productquantizer_8h_source.html\">productquantizer.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a08b62937f9073fb4d95f161da7121850\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">ProductQuantizer</a> ()</td></tr>\n<tr class=\"separator:a08b62937f9073fb4d95f161da7121850\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8563da401dbfaa98983ef0c92f92a18f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a8563da401dbfaa98983ef0c92f92a18f\">ProductQuantizer</a> (int32_t, int32_t)</td></tr>\n<tr class=\"separator:a8563da401dbfaa98983ef0c92f92a18f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adb6a2ade7e4a77d7b59f03c081d11d91\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">get_centroids</a> (int32_t, uint8_t)</td></tr>\n<tr class=\"separator:adb6a2ade7e4a77d7b59f03c081d11d91\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4f7b2b81820abc0c577a89a768ef3347\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a4f7b2b81820abc0c577a89a768ef3347\">get_centroids</a> (int32_t, uint8_t) const</td></tr>\n<tr class=\"separator:a4f7b2b81820abc0c577a89a768ef3347\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa957e4e92eb6111152f6e34b0b4a27cd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\">assign_centroid</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, uint8_t *, int32_t) const</td></tr>\n<tr class=\"separator:aa957e4e92eb6111152f6e34b0b4a27cd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aeba73a087e59f504472063db0a217e84\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\">Estep</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, uint8_t *, int32_t, int32_t) const</td></tr>\n<tr class=\"separator:aeba73a087e59f504472063db0a217e84\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5f6cc5e957f5546523aea7dd9e826f25\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\">MStep</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, const uint8_t *, int32_t, int32_t)</td></tr>\n<tr class=\"separator:a5f6cc5e957f5546523aea7dd9e826f25\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a06c91357dc88225714daa10548525352\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\">kmeans</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, int32_t, int32_t)</td></tr>\n<tr class=\"separator:a06c91357dc88225714daa10548525352\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a40e3090d1f7e525c3e9787d9856d3b7d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\">train</a> (int, const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *)</td></tr>\n<tr class=\"separator:a40e3090d1f7e525c3e9787d9856d3b7d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a82e0fb5da37c5c6a62d6f9f6d34d91d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">mulcode</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, const uint8_t *, int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) const</td></tr>\n<tr class=\"separator:a82e0fb5da37c5c6a62d6f9f6d34d91d6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac0039e0eccfc7dc15ddb3be3bac0fec3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\">addcode</a> (<a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, const uint8_t *, int32_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) const</td></tr>\n<tr class=\"separator:ac0039e0eccfc7dc15ddb3be3bac0fec3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1b6fedf0a199ed0ec1afc2aea26a4b37\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\">compute_code</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, uint8_t *) const</td></tr>\n<tr class=\"separator:a1b6fedf0a199ed0ec1afc2aea26a4b37\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aca0eb5cd10d5bba60b4f3f37f87676f6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\">compute_codes</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *, uint8_t *, int32_t) const</td></tr>\n<tr class=\"separator:aca0eb5cd10d5bba60b4f3f37f87676f6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6e4d58883fb38225c6f4731770b89274\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\">save</a> (std::ostream &amp;)</td></tr>\n<tr class=\"separator:a6e4d58883fb38225c6f4731770b89274\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4060617809c0099a9e5ca73ec0497056\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\">load</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:a4060617809c0099a9e5ca73ec0497056\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-attribs\"></a>\nPrivate Attributes</h2></td></tr>\n<tr class=\"memitem:ac44db00342a54cb05df9d0c136a8633c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">nbits_</a> = 8</td></tr>\n<tr class=\"separator:ac44db00342a54cb05df9d0c136a8633c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afa68c0f82fab09a93c2024a4dceecdf7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">ksub_</a> = 1 &lt;&lt; <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">nbits_</a></td></tr>\n<tr class=\"separator:afa68c0f82fab09a93c2024a4dceecdf7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad439c3fefe554fa05f2b1d06ddcd77b6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">max_points_per_cluster_</a> = 256</td></tr>\n<tr class=\"separator:ad439c3fefe554fa05f2b1d06ddcd77b6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a38780ae9c1997722683bb43d55ece633\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">max_points_</a> = <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">max_points_per_cluster_</a> * <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">ksub_</a></td></tr>\n<tr class=\"separator:a38780ae9c1997722683bb43d55ece633\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae71f8417a9265bdee493edfa6139d757\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">seed_</a> = 1234</td></tr>\n<tr class=\"separator:ae71f8417a9265bdee493edfa6139d757\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afa968d226983fbebfd2bb9d80bf6571f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">niter_</a> = 25</td></tr>\n<tr class=\"separator:afa968d226983fbebfd2bb9d80bf6571f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2334f23eb94911fa4b528a584eb7f7e4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">eps_</a> = 1e-7</td></tr>\n<tr class=\"separator:a2334f23eb94911fa4b528a584eb7f7e4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afdeec3948e983b1f3e1e36292153e300\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">dim_</a></td></tr>\n<tr class=\"separator:afdeec3948e983b1f3e1e36292153e300\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1e09b5c96869b0b4758348b976152309\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">nsubq_</a></td></tr>\n<tr class=\"separator:a1e09b5c96869b0b4758348b976152309\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9221f241be27487c671bbbba7a84b389\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">dsub_</a></td></tr>\n<tr class=\"separator:a9221f241be27487c671bbbba7a84b389\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae79be52ccbb6230ce129234e150bc826\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">lastdsub_</a></td></tr>\n<tr class=\"separator:ae79be52ccbb6230ce129234e150bc826\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a56ed1ae67f47e95f2d1f4c6146d4913a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">centroids_</a></td></tr>\n<tr class=\"separator:a56ed1ae67f47e95f2d1f4c6146d4913a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af5755b1c5ed3128430f1c1de2c03ac26\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::minstd_rand&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">rng</a></td></tr>\n<tr class=\"separator:af5755b1c5ed3128430f1c1de2c03ac26\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a08b62937f9073fb4d95f161da7121850\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a08b62937f9073fb4d95f161da7121850\">&#9670;&nbsp;</a></span>ProductQuantizer() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::ProductQuantizer::ProductQuantizer </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8563da401dbfaa98983ef0c92f92a18f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8563da401dbfaa98983ef0c92f92a18f\">&#9670;&nbsp;</a></span>ProductQuantizer() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::ProductQuantizer::ProductQuantizer </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>dim</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>dsub</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ac0039e0eccfc7dc15ddb3be3bac0fec3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0039e0eccfc7dc15ddb3be3bac0fec3\">&#9670;&nbsp;</a></span>addcode()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::addcode </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>codes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>t</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>alpha</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa957e4e92eb6111152f6e34b0b4a27cd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa957e4e92eb6111152f6e34b0b4a27cd\">&#9670;&nbsp;</a></span>assign_centroid()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::ProductQuantizer::assign_centroid </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>c0</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>code</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>d</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1b6fedf0a199ed0ec1afc2aea26a4b37\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b6fedf0a199ed0ec1afc2aea26a4b37\">&#9670;&nbsp;</a></span>compute_code()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::compute_code </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>code</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aca0eb5cd10d5bba60b4f3f37f87676f6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aca0eb5cd10d5bba60b4f3f37f87676f6\">&#9670;&nbsp;</a></span>compute_codes()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::compute_codes </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>codes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>n</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aeba73a087e59f504472063db0a217e84\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeba73a087e59f504472063db0a217e84\">&#9670;&nbsp;</a></span>Estep()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::Estep </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>centroids</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>codes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>d</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>n</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adb6a2ade7e4a77d7b59f03c081d11d91\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb6a2ade7e4a77d7b59f03c081d11d91\">&#9670;&nbsp;</a></span>get_centroids() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> * fasttext::ProductQuantizer::get_centroids </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>m</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">uint8_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4f7b2b81820abc0c577a89a768ef3347\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4f7b2b81820abc0c577a89a768ef3347\">&#9670;&nbsp;</a></span>get_centroids() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> * fasttext::ProductQuantizer::get_centroids </td>\n          <td>(</td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>m</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">uint8_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a06c91357dc88225714daa10548525352\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a06c91357dc88225714daa10548525352\">&#9670;&nbsp;</a></span>kmeans()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::kmeans </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>c</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>n</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>d</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4060617809c0099a9e5ca73ec0497056\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4060617809c0099a9e5ca73ec0497056\">&#9670;&nbsp;</a></span>load()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::load </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5f6cc5e957f5546523aea7dd9e826f25\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5f6cc5e957f5546523aea7dd9e826f25\">&#9670;&nbsp;</a></span>MStep()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::MStep </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x0</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>centroids</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>codes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>d</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>n</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a82e0fb5da37c5c6a62d6f9f6d34d91d6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">&#9670;&nbsp;</a></span>mulcode()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::ProductQuantizer::mulcode </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const uint8_t *&#160;</td>\n          <td class=\"paramname\"><em>codes</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>t</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>alpha</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a6e4d58883fb38225c6f4731770b89274\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6e4d58883fb38225c6f4731770b89274\">&#9670;&nbsp;</a></span>save()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::save </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>out</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a40e3090d1f7e525c3e9787d9856d3b7d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a40e3090d1f7e525c3e9787d9856d3b7d\">&#9670;&nbsp;</a></span>train()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::ProductQuantizer::train </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\">, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\">&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a56ed1ae67f47e95f2d1f4c6146d4913a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a56ed1ae67f47e95f2d1f4c6146d4913a\">&#9670;&nbsp;</a></span>centroids_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&gt; fasttext::ProductQuantizer::centroids_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afdeec3948e983b1f3e1e36292153e300\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afdeec3948e983b1f3e1e36292153e300\">&#9670;&nbsp;</a></span>dim_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::ProductQuantizer::dim_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9221f241be27487c671bbbba7a84b389\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9221f241be27487c671bbbba7a84b389\">&#9670;&nbsp;</a></span>dsub_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::ProductQuantizer::dsub_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2334f23eb94911fa4b528a584eb7f7e4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2334f23eb94911fa4b528a584eb7f7e4\">&#9670;&nbsp;</a></span>eps_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::ProductQuantizer::eps_ = 1e-7</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afa68c0f82fab09a93c2024a4dceecdf7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa68c0f82fab09a93c2024a4dceecdf7\">&#9670;&nbsp;</a></span>ksub_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::ProductQuantizer::ksub_ = 1 &lt;&lt; <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">nbits_</a></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae79be52ccbb6230ce129234e150bc826\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae79be52ccbb6230ce129234e150bc826\">&#9670;&nbsp;</a></span>lastdsub_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::ProductQuantizer::lastdsub_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a38780ae9c1997722683bb43d55ece633\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a38780ae9c1997722683bb43d55ece633\">&#9670;&nbsp;</a></span>max_points_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::ProductQuantizer::max_points_ = <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">max_points_per_cluster_</a> * <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">ksub_</a></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad439c3fefe554fa05f2b1d06ddcd77b6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad439c3fefe554fa05f2b1d06ddcd77b6\">&#9670;&nbsp;</a></span>max_points_per_cluster_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::ProductQuantizer::max_points_per_cluster_ = 256</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac44db00342a54cb05df9d0c136a8633c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac44db00342a54cb05df9d0c136a8633c\">&#9670;&nbsp;</a></span>nbits_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::ProductQuantizer::nbits_ = 8</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"afa968d226983fbebfd2bb9d80bf6571f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa968d226983fbebfd2bb9d80bf6571f\">&#9670;&nbsp;</a></span>niter_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::ProductQuantizer::niter_ = 25</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1e09b5c96869b0b4758348b976152309\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1e09b5c96869b0b4758348b976152309\">&#9670;&nbsp;</a></span>nsubq_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::ProductQuantizer::nsubq_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af5755b1c5ed3128430f1c1de2c03ac26\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af5755b1c5ed3128430f1c1de2c03ac26\">&#9670;&nbsp;</a></span>rng</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::minstd_rand fasttext::ProductQuantizer::rng</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae71f8417a9265bdee493edfa6139d757\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae71f8417a9265bdee493edfa6139d757\">&#9670;&nbsp;</a></span>seed_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int32_t fasttext::ProductQuantizer::seed_ = 1234</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"productquantizer_8h_source.html\">productquantizer.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"productquantizer_8cc.html\">productquantizer.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1ProductQuantizer.js",
    "content": "var classfasttext_1_1ProductQuantizer =\n[\n    [ \"ProductQuantizer\", \"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\", null ],\n    [ \"ProductQuantizer\", \"classfasttext_1_1ProductQuantizer.html#a8563da401dbfaa98983ef0c92f92a18f\", null ],\n    [ \"addcode\", \"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\", null ],\n    [ \"assign_centroid\", \"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\", null ],\n    [ \"compute_code\", \"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\", null ],\n    [ \"compute_codes\", \"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\", null ],\n    [ \"Estep\", \"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\", null ],\n    [ \"get_centroids\", \"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\", null ],\n    [ \"get_centroids\", \"classfasttext_1_1ProductQuantizer.html#a4f7b2b81820abc0c577a89a768ef3347\", null ],\n    [ \"kmeans\", \"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\", null ],\n    [ \"load\", \"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\", null ],\n    [ \"MStep\", \"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\", null ],\n    [ \"mulcode\", \"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\", null ],\n    [ \"save\", \"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\", null ],\n    [ \"train\", \"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\", null ],\n    [ \"centroids_\", \"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\", null ],\n    [ \"dim_\", \"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\", null ],\n    [ \"dsub_\", \"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\", null ],\n    [ \"eps_\", \"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\", null ],\n    [ \"ksub_\", \"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\", null ],\n    [ \"lastdsub_\", \"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\", null ],\n    [ \"max_points_\", \"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\", null ],\n    [ \"max_points_per_cluster_\", \"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\", null ],\n    [ \"nbits_\", \"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\", null ],\n    [ \"niter_\", \"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\", null ],\n    [ \"nsubq_\", \"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\", null ],\n    [ \"rng\", \"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\", null ],\n    [ \"seed_\", \"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1QMatrix-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1QMatrix.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::QMatrix Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\">addToVector</a>(Vector &amp;x, int32_t t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">codes_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">codesize_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\">dotRow</a>(const Vector &amp;, int64_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\">getM</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\">getN</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\">load</a>(std::istream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">m_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">n_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">norm_codes_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">npq_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">pq_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">QMatrix</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a\">QMatrix</a>(const Matrix &amp;, int32_t, bool)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">qnorm_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"><span class=\"mlabel\">private</span></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\">quantize</a>(const Matrix &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\">quantizeNorm</a>(const Vector &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\">save</a>(std::ostream &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\">~QMatrix</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1QMatrix.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::QMatrix Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1QMatrix.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pri-attribs\">Private Attributes</a> &#124;\n<a href=\"classfasttext_1_1QMatrix-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::QMatrix Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"qmatrix_8h_source.html\">qmatrix.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a976442aaed5b1afee2f2cd4473c0d62b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">QMatrix</a> ()</td></tr>\n<tr class=\"separator:a976442aaed5b1afee2f2cd4473c0d62b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae10f3f12bf4c8483381ecb122b7fda5a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a\">QMatrix</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;, int32_t, bool)</td></tr>\n<tr class=\"separator:ae10f3f12bf4c8483381ecb122b7fda5a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7de6d212bec1c4028ee30e968b5d030d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\">~QMatrix</a> ()</td></tr>\n<tr class=\"separator:a7de6d212bec1c4028ee30e968b5d030d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a16350455c02cf5f00175b1b0c6a310cd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\">getM</a> () const</td></tr>\n<tr class=\"separator:a16350455c02cf5f00175b1b0c6a310cd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad969042dfc46a64e386f12616a4d6bcb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\">getN</a> () const</td></tr>\n<tr class=\"separator:ad969042dfc46a64e386f12616a4d6bcb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0e4d84be1c6cd0cbfc4568f905961017\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\">quantizeNorm</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;)</td></tr>\n<tr class=\"separator:a0e4d84be1c6cd0cbfc4568f905961017\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab9ae1914dc1b72e305880a8c22626afc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\">quantize</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;)</td></tr>\n<tr class=\"separator:ab9ae1914dc1b72e305880a8c22626afc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad8f153a45f69530aeef171bebbce93fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\">addToVector</a> (<a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;x, int32_t t) const</td></tr>\n<tr class=\"separator:ad8f153a45f69530aeef171bebbce93fc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad1671bceb60d87492b662331cc084c56\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\">dotRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, int64_t) const</td></tr>\n<tr class=\"separator:ad1671bceb60d87492b662331cc084c56\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a00267b43ee5eefc92948c654fb9fc9f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\">save</a> (std::ostream &amp;)</td></tr>\n<tr class=\"separator:a00267b43ee5eefc92948c654fb9fc9f1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a03c039b81b5aaed30d95149de9379998\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\">load</a> (std::istream &amp;)</td></tr>\n<tr class=\"separator:a03c039b81b5aaed30d95149de9379998\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pri-attribs\"></a>\nPrivate Attributes</h2></td></tr>\n<tr class=\"memitem:a6c62644a138ed88863088dcdeb32dbd7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::unique_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">pq_</a></td></tr>\n<tr class=\"separator:a6c62644a138ed88863088dcdeb32dbd7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8203216a4cb2b721697f7dc2b509f25a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::unique_ptr&lt; <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">npq_</a></td></tr>\n<tr class=\"separator:a8203216a4cb2b721697f7dc2b509f25a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:acc957d3d66b58cb9381f6a0556096c93\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">uint8_t *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">codes_</a></td></tr>\n<tr class=\"separator:acc957d3d66b58cb9381f6a0556096c93\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a17f22153d042c64052a3468faec70fce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">uint8_t *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">norm_codes_</a></td></tr>\n<tr class=\"separator:a17f22153d042c64052a3468faec70fce\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aadc6e4d399442555f3c2993b97285143\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">qnorm_</a></td></tr>\n<tr class=\"separator:aadc6e4d399442555f3c2993b97285143\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad2457490bb9a531740187fffb63cace2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">m_</a></td></tr>\n<tr class=\"separator:ad2457490bb9a531740187fffb63cace2\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a54082c819b9939e2d49fc0733a609cea\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">n_</a></td></tr>\n<tr class=\"separator:a54082c819b9939e2d49fc0733a609cea\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4a69f60ba96c0b1a9da22c3951eca759\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">codesize_</a></td></tr>\n<tr class=\"separator:a4a69f60ba96c0b1a9da22c3951eca759\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a976442aaed5b1afee2f2cd4473c0d62b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a976442aaed5b1afee2f2cd4473c0d62b\">&#9670;&nbsp;</a></span>QMatrix() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::QMatrix::QMatrix </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae10f3f12bf4c8483381ecb122b7fda5a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae10f3f12bf4c8483381ecb122b7fda5a\">&#9670;&nbsp;</a></span>QMatrix() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::QMatrix::QMatrix </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>mat</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>dsub</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool&#160;</td>\n          <td class=\"paramname\"><em>qnorm</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7de6d212bec1c4028ee30e968b5d030d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7de6d212bec1c4028ee30e968b5d030d\">&#9670;&nbsp;</a></span>~QMatrix()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::QMatrix::~QMatrix </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ad8f153a45f69530aeef171bebbce93fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad8f153a45f69530aeef171bebbce93fc\">&#9670;&nbsp;</a></span>addToVector()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::QMatrix::addToVector </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>t</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad1671bceb60d87492b662331cc084c56\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad1671bceb60d87492b662331cc084c56\">&#9670;&nbsp;</a></span>dotRow()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::QMatrix::dotRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>vec</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a16350455c02cf5f00175b1b0c6a310cd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a16350455c02cf5f00175b1b0c6a310cd\">&#9670;&nbsp;</a></span>getM()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::QMatrix::getM </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad969042dfc46a64e386f12616a4d6bcb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad969042dfc46a64e386f12616a4d6bcb\">&#9670;&nbsp;</a></span>getN()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::QMatrix::getN </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a03c039b81b5aaed30d95149de9379998\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a03c039b81b5aaed30d95149de9379998\">&#9670;&nbsp;</a></span>load()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::QMatrix::load </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::istream &amp;&#160;</td>\n          <td class=\"paramname\"><em>in</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab9ae1914dc1b72e305880a8c22626afc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab9ae1914dc1b72e305880a8c22626afc\">&#9670;&nbsp;</a></span>quantize()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::QMatrix::quantize </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>matrix</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0e4d84be1c6cd0cbfc4568f905961017\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0e4d84be1c6cd0cbfc4568f905961017\">&#9670;&nbsp;</a></span>quantizeNorm()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::QMatrix::quantizeNorm </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>norms</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a00267b43ee5eefc92948c654fb9fc9f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a00267b43ee5eefc92948c654fb9fc9f1\">&#9670;&nbsp;</a></span>save()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::QMatrix::save </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>out</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"acc957d3d66b58cb9381f6a0556096c93\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc957d3d66b58cb9381f6a0556096c93\">&#9670;&nbsp;</a></span>codes_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">uint8_t* fasttext::QMatrix::codes_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4a69f60ba96c0b1a9da22c3951eca759\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4a69f60ba96c0b1a9da22c3951eca759\">&#9670;&nbsp;</a></span>codesize_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::QMatrix::codesize_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad2457490bb9a531740187fffb63cace2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad2457490bb9a531740187fffb63cace2\">&#9670;&nbsp;</a></span>m_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::QMatrix::m_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a54082c819b9939e2d49fc0733a609cea\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a54082c819b9939e2d49fc0733a609cea\">&#9670;&nbsp;</a></span>n_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::QMatrix::n_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a17f22153d042c64052a3468faec70fce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17f22153d042c64052a3468faec70fce\">&#9670;&nbsp;</a></span>norm_codes_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">uint8_t* fasttext::QMatrix::norm_codes_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8203216a4cb2b721697f7dc2b509f25a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8203216a4cb2b721697f7dc2b509f25a\">&#9670;&nbsp;</a></span>npq_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::unique_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a>&gt; fasttext::QMatrix::npq_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a6c62644a138ed88863088dcdeb32dbd7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6c62644a138ed88863088dcdeb32dbd7\">&#9670;&nbsp;</a></span>pq_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::unique_ptr&lt;<a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a>&gt; fasttext::QMatrix::pq_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aadc6e4d399442555f3c2993b97285143\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aadc6e4d399442555f3c2993b97285143\">&#9670;&nbsp;</a></span>qnorm_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::QMatrix::qnorm_</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">private</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"qmatrix_8h_source.html\">qmatrix.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"qmatrix_8cc.html\">qmatrix.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1QMatrix.js",
    "content": "var classfasttext_1_1QMatrix =\n[\n    [ \"QMatrix\", \"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\", null ],\n    [ \"QMatrix\", \"classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a\", null ],\n    [ \"~QMatrix\", \"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\", null ],\n    [ \"addToVector\", \"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\", null ],\n    [ \"dotRow\", \"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\", null ],\n    [ \"getM\", \"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\", null ],\n    [ \"getN\", \"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\", null ],\n    [ \"load\", \"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\", null ],\n    [ \"quantize\", \"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\", null ],\n    [ \"quantizeNorm\", \"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\", null ],\n    [ \"save\", \"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\", null ],\n    [ \"codes_\", \"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\", null ],\n    [ \"codesize_\", \"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\", null ],\n    [ \"m_\", \"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\", null ],\n    [ \"n_\", \"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\", null ],\n    [ \"norm_codes_\", \"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\", null ],\n    [ \"npq_\", \"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\", null ],\n    [ \"pq_\", \"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\", null ],\n    [ \"qnorm_\", \"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Vector-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Vector.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Vector Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">addRow</a>(const Matrix &amp;, int64_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a100ad4f70094b54b84e43909da7be040\">addRow</a>(const QMatrix &amp;, int64_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a29196e26f7258ba61d7ea4d19c4b14a7\">addRow</a>(const Matrix &amp;, int64_t, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">addVector</a>(const Vector &amp;source)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a1bdce14007d4b8878a3a3dd36b467e95\">addVector</a>(const Vector &amp;, real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\">argmax</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">data_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">m_</a></td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">mul</a>(real)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aec343a9bf909342d633f09c4fa3da97d\">mul</a>(const QMatrix &amp;, const Vector &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a4540e8d1c7bf5110302f5ab41d601e0c\">mul</a>(const Matrix &amp;, const Vector &amp;)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\">norm</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">operator[]</a>(int64_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a06c176b63c43754de86ff01846ebd47b\">operator[]</a>(int64_t) const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\">size</a>() const</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\">Vector</a>(int64_t)</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"><span class=\"mlabel\">explicit</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\">zero</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\">~Vector</a>()</td><td class=\"entry\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Vector.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::Vector Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('classfasttext_1_1Vector.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pub-attribs\">Public Attributes</a> &#124;\n<a href=\"classfasttext_1_1Vector-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Vector Class Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ab7f9177915b3d3837213abb15de9b939\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\">Vector</a> (int64_t)</td></tr>\n<tr class=\"separator:ab7f9177915b3d3837213abb15de9b939\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aedde9ca3a3952dfd54addd21f8a63506\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\">~Vector</a> ()</td></tr>\n<tr class=\"separator:aedde9ca3a3952dfd54addd21f8a63506\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad60a80620d695fc64062b9b493bc6232\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">operator[]</a> (int64_t)</td></tr>\n<tr class=\"separator:ad60a80620d695fc64062b9b493bc6232\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a06c176b63c43754de86ff01846ebd47b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a06c176b63c43754de86ff01846ebd47b\">operator[]</a> (int64_t) const</td></tr>\n<tr class=\"separator:a06c176b63c43754de86ff01846ebd47b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af3e8aa155da430d0911896d53db6789d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\">size</a> () const</td></tr>\n<tr class=\"separator:af3e8aa155da430d0911896d53db6789d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af0cd17b1bbdf212780c31e427e982793\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\">zero</a> ()</td></tr>\n<tr class=\"separator:af0cd17b1bbdf212780c31e427e982793\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af14f0011942b0a98562ca2f677aa4395\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">mul</a> (<a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:af14f0011942b0a98562ca2f677aa4395\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa88e78466e3db802c403f6fe13421ff6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\">norm</a> () const</td></tr>\n<tr class=\"separator:aa88e78466e3db802c403f6fe13421ff6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aef57a1c3a853b8691f544e9f881a3394\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">addVector</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;source)</td></tr>\n<tr class=\"separator:aef57a1c3a853b8691f544e9f881a3394\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1bdce14007d4b8878a3a3dd36b467e95\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a1bdce14007d4b8878a3a3dd36b467e95\">addVector</a> (const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:a1bdce14007d4b8878a3a3dd36b467e95\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a94d369014b965b42ead2deb5e3fa0b11\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">addRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;, int64_t)</td></tr>\n<tr class=\"separator:a94d369014b965b42ead2deb5e3fa0b11\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a100ad4f70094b54b84e43909da7be040\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a100ad4f70094b54b84e43909da7be040\">addRow</a> (const <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &amp;, int64_t)</td></tr>\n<tr class=\"separator:a100ad4f70094b54b84e43909da7be040\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a29196e26f7258ba61d7ea4d19c4b14a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a29196e26f7258ba61d7ea4d19c4b14a7\">addRow</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;, int64_t, <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>)</td></tr>\n<tr class=\"separator:a29196e26f7258ba61d7ea4d19c4b14a7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aec343a9bf909342d633f09c4fa3da97d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#aec343a9bf909342d633f09c4fa3da97d\">mul</a> (const <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &amp;, const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;)</td></tr>\n<tr class=\"separator:aec343a9bf909342d633f09c4fa3da97d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4540e8d1c7bf5110302f5ab41d601e0c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a4540e8d1c7bf5110302f5ab41d601e0c\">mul</a> (const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;, const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;)</td></tr>\n<tr class=\"separator:a4540e8d1c7bf5110302f5ab41d601e0c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5ca06ee0880c24409faad3e69a920d9a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\">argmax</a> ()</td></tr>\n<tr class=\"separator:a5ca06ee0880c24409faad3e69a920d9a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-attribs\"></a>\nPublic Attributes</h2></td></tr>\n<tr class=\"memitem:a97bc75d46013e08d43881e1ee3725491\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">m_</a></td></tr>\n<tr class=\"separator:a97bc75d46013e08d43881e1ee3725491\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab177f24ed7071636dcd17e90a746dd2e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">data_</a></td></tr>\n<tr class=\"separator:ab177f24ed7071636dcd17e90a746dd2e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ab7f9177915b3d3837213abb15de9b939\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab7f9177915b3d3837213abb15de9b939\">&#9670;&nbsp;</a></span>Vector()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Vector::Vector </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>m</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">explicit</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aedde9ca3a3952dfd54addd21f8a63506\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aedde9ca3a3952dfd54addd21f8a63506\">&#9670;&nbsp;</a></span>~Vector()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">fasttext::Vector::~Vector </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a94d369014b965b42ead2deb5e3fa0b11\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a94d369014b965b42ead2deb5e3fa0b11\">&#9670;&nbsp;</a></span>addRow() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::addRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>A</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a100ad4f70094b54b84e43909da7be040\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a100ad4f70094b54b84e43909da7be040\">&#9670;&nbsp;</a></span>addRow() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::addRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>A</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a29196e26f7258ba61d7ea4d19c4b14a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29196e26f7258ba61d7ea4d19c4b14a7\">&#9670;&nbsp;</a></span>addRow() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::addRow </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>A</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>a</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aef57a1c3a853b8691f544e9f881a3394\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aef57a1c3a853b8691f544e9f881a3394\">&#9670;&nbsp;</a></span>addVector() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::addVector </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>source</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1bdce14007d4b8878a3a3dd36b467e95\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1bdce14007d4b8878a3a3dd36b467e95\">&#9670;&nbsp;</a></span>addVector() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::addVector </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>source</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>s</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5ca06ee0880c24409faad3e69a920d9a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5ca06ee0880c24409faad3e69a920d9a\">&#9670;&nbsp;</a></span>argmax()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Vector::argmax </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af14f0011942b0a98562ca2f677aa4395\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af14f0011942b0a98562ca2f677aa4395\">&#9670;&nbsp;</a></span>mul() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::mul </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td>\n          <td class=\"paramname\"><em>a</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aec343a9bf909342d633f09c4fa3da97d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aec343a9bf909342d633f09c4fa3da97d\">&#9670;&nbsp;</a></span>mul() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::mul </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>A</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>vec</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4540e8d1c7bf5110302f5ab41d601e0c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4540e8d1c7bf5110302f5ab41d601e0c\">&#9670;&nbsp;</a></span>mul() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::mul </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>A</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>vec</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa88e78466e3db802c403f6fe13421ff6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa88e78466e3db802c403f6fe13421ff6\">&#9670;&nbsp;</a></span>norm()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::Vector::norm </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad60a80620d695fc64062b9b493bc6232\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad60a80620d695fc64062b9b493bc6232\">&#9670;&nbsp;</a></span>operator[]() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &amp; fasttext::Vector::operator[] </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a06c176b63c43754de86ff01846ebd47b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a06c176b63c43754de86ff01846ebd47b\">&#9670;&nbsp;</a></span>operator[]() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> &amp; fasttext::Vector::operator[] </td>\n          <td>(</td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>i</em></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af3e8aa155da430d0911896d53db6789d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af3e8aa155da430d0911896d53db6789d\">&#9670;&nbsp;</a></span>size()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Vector::size </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td> const</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af0cd17b1bbdf212780c31e427e982793\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af0cd17b1bbdf212780c31e427e982793\">&#9670;&nbsp;</a></span>zero()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::Vector::zero </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"ab177f24ed7071636dcd17e90a746dd2e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab177f24ed7071636dcd17e90a746dd2e\">&#9670;&nbsp;</a></span>data_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* fasttext::Vector::data_</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a97bc75d46013e08d43881e1ee3725491\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a97bc75d46013e08d43881e1ee3725491\">&#9670;&nbsp;</a></span>m_</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Vector::m_</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following files:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a></li>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"vector_8cc.html\">vector.cc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/classfasttext_1_1Vector.js",
    "content": "var classfasttext_1_1Vector =\n[\n    [ \"Vector\", \"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\", null ],\n    [ \"~Vector\", \"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\", null ],\n    [ \"addRow\", \"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\", null ],\n    [ \"addRow\", \"classfasttext_1_1Vector.html#a100ad4f70094b54b84e43909da7be040\", null ],\n    [ \"addRow\", \"classfasttext_1_1Vector.html#a29196e26f7258ba61d7ea4d19c4b14a7\", null ],\n    [ \"addVector\", \"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\", null ],\n    [ \"addVector\", \"classfasttext_1_1Vector.html#a1bdce14007d4b8878a3a3dd36b467e95\", null ],\n    [ \"argmax\", \"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\", null ],\n    [ \"mul\", \"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\", null ],\n    [ \"mul\", \"classfasttext_1_1Vector.html#aec343a9bf909342d633f09c4fa3da97d\", null ],\n    [ \"mul\", \"classfasttext_1_1Vector.html#a4540e8d1c7bf5110302f5ab41d601e0c\", null ],\n    [ \"norm\", \"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\", null ],\n    [ \"operator[]\", \"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\", null ],\n    [ \"operator[]\", \"classfasttext_1_1Vector.html#a06c176b63c43754de86ff01846ebd47b\", null ],\n    [ \"size\", \"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\", null ],\n    [ \"zero\", \"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\", null ],\n    [ \"data_\", \"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\", null ],\n    [ \"m_\", \"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/dictionary_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/dictionary.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('dictionary_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">dictionary.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"dictionary_8h_source.html\">dictionary.h</a>&quot;</code><br />\n<code>#include &lt;assert.h&gt;</code><br />\n<code>#include &lt;iostream&gt;</code><br />\n<code>#include &lt;fstream&gt;</code><br />\n<code>#include &lt;algorithm&gt;</code><br />\n<code>#include &lt;iterator&gt;</code><br />\n<code>#include &lt;cmath&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dictionary_8cc.html\">dictionary.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/dictionary_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/dictionary.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('dictionary_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#typedef-members\">Typedefs</a> &#124;\n<a href=\"#enum-members\">Enumerations</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">dictionary.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;vector&gt;</code><br />\n<code>#include &lt;string&gt;</code><br />\n<code>#include &lt;istream&gt;</code><br />\n<code>#include &lt;ostream&gt;</code><br />\n<code>#include &lt;random&gt;</code><br />\n<code>#include &lt;memory&gt;</code><br />\n<code>#include &lt;unordered_map&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"args_8h_source.html\">args.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n</div>\n<p><a href=\"dictionary_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">fasttext::entry</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"typedef-members\"></a>\nTypedefs</h2></td></tr>\n<tr class=\"memitem:a6778f74ca8c360ba917216cb7fcbf497\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">fasttext::id_type</a></td></tr>\n<tr class=\"separator:a6778f74ca8c360ba917216cb7fcbf497\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a532eedeee97e8d66a96b519d165f4eb7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">fasttext::entry_type</a> : int8_t { <a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\">fasttext::entry_type::word</a> =0, \n<a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\">fasttext::entry_type::label</a> =1\n }</td></tr>\n<tr class=\"separator:a532eedeee97e8d66a96b519d165f4eb7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dictionary_8h.html\">dictionary.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/dictionary_8h.js",
    "content": "var dictionary_8h =\n[\n    [ \"entry\", \"structfasttext_1_1entry.html\", \"structfasttext_1_1entry\" ],\n    [ \"Dictionary\", \"classfasttext_1_1Dictionary.html\", \"classfasttext_1_1Dictionary\" ],\n    [ \"id_type\", \"dictionary_8h.html#a6778f74ca8c360ba917216cb7fcbf497\", null ],\n    [ \"entry_type\", \"dictionary_8h.html#a532eedeee97e8d66a96b519d165f4eb7\", [\n      [ \"word\", \"dictionary_8h.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\", null ],\n      [ \"label\", \"dictionary_8h.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\", null ]\n    ] ]\n];"
  },
  {
    "path": "website/static/docs/en/html/dictionary_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/dictionary.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('dictionary_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">dictionary.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"dictionary_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_DICTIONARY_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_DICTIONARY_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;vector&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;string&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"preprocessor\">#include &lt;istream&gt;</span></div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;<span class=\"preprocessor\">#include &lt;ostream&gt;</span></div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;<span class=\"preprocessor\">#include &lt;random&gt;</span></div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;<span class=\"preprocessor\">#include &lt;memory&gt;</span></div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;<span class=\"preprocessor\">#include &lt;unordered_map&gt;</span></div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;</div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"args_8h.html\">args.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;</div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">   26</a></span>&#160;<span class=\"keyword\">typedef</span> int32_t <a class=\"code\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">id_type</a>;</div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\"><a class=\"line\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">   27</a></span>&#160;<span class=\"keyword\">enum class</span> <a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> : int8_t {<a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\">word</a>=0, <a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\">label</a>=1};</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\">   28</span>&#160;</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1entry.html\">   29</a></span>&#160;<span class=\"keyword\">struct </span><a class=\"code\" href=\"structfasttext_1_1entry.html\">entry</a> {</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">   30</a></span>&#160;  std::string <a class=\"code\" href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">word</a>;</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">   31</a></span>&#160;  int64_t <a class=\"code\" href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">count</a>;</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">   32</a></span>&#160;  <a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> <a class=\"code\" href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">type</a>;</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">   33</a></span>&#160;  std::vector&lt;int32_t&gt; <a class=\"code\" href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">subwords</a>;</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\">   34</span>&#160;};</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\">   35</span>&#160;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html\">   36</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a> {</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\">   37</span>&#160;  <span class=\"keyword\">private</span>:</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7\">   38</a></span>&#160;    <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> int32_t MAX_VOCAB_SIZE = 30000000;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933\">   39</a></span>&#160;    <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> int32_t MAX_LINE_SIZE = 1024;</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\">   40</span>&#160;</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\">   41</span>&#160;    int32_t find(<span class=\"keyword\">const</span> std::string&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\">   42</span>&#160;    <span class=\"keywordtype\">void</span> initTableDiscard();</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\">   43</span>&#160;    <span class=\"keywordtype\">void</span> initNgrams();</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\">   44</span>&#160;</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">   45</a></span>&#160;    std::shared_ptr&lt;Args&gt; <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">args_</a>;</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">   46</a></span>&#160;    std::vector&lt;int32_t&gt; <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">word2int_</a>;</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">   47</a></span>&#160;    std::vector&lt;entry&gt; <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">words_</a>;</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">   49</a></span>&#160;    std::vector&lt;real&gt; <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">pdiscard_</a>;</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">   50</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">size_</a>;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">   51</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">nwords_</a>;</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">   52</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">nlabels_</a>;</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">   53</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">ntokens_</a>;</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;</div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\">   55</a></span>&#160;    int64_t pruneidx_size_ = -1;</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">   56</a></span>&#160;    std::unordered_map&lt;int32_t, int32_t&gt; <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">pruneidx_</a>;</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;    <span class=\"keywordtype\">void</span> addWordNgrams(</div><div class=\"line\"><a name=\"l00058\"></a><span class=\"lineno\">   58</span>&#160;        std::vector&lt;int32_t&gt;&amp; line,</div><div class=\"line\"><a name=\"l00059\"></a><span class=\"lineno\">   59</span>&#160;        <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp; hashes,</div><div class=\"line\"><a name=\"l00060\"></a><span class=\"lineno\">   60</span>&#160;        int32_t n) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00061\"></a><span class=\"lineno\">   61</span>&#160;</div><div class=\"line\"><a name=\"l00062\"></a><span class=\"lineno\">   62</span>&#160;</div><div class=\"line\"><a name=\"l00063\"></a><span class=\"lineno\">   63</span>&#160;   <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00064\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">   64</a></span>&#160;    <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::string <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">EOS</a>;</div><div class=\"line\"><a name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">   65</a></span>&#160;    <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::string <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">BOW</a>;</div><div class=\"line\"><a name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">   66</a></span>&#160;    <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::string <a class=\"code\" href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">EOW</a>;</div><div class=\"line\"><a name=\"l00067\"></a><span class=\"lineno\">   67</span>&#160;</div><div class=\"line\"><a name=\"l00068\"></a><span class=\"lineno\">   68</span>&#160;    <span class=\"keyword\">explicit</span> <a class=\"code\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a>(std::shared_ptr&lt;Args&gt;);</div><div class=\"line\"><a name=\"l00069\"></a><span class=\"lineno\">   69</span>&#160;    int32_t nwords() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00070\"></a><span class=\"lineno\">   70</span>&#160;    int32_t nlabels() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00071\"></a><span class=\"lineno\">   71</span>&#160;    int64_t ntokens() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00072\"></a><span class=\"lineno\">   72</span>&#160;    int32_t getId(<span class=\"keyword\">const</span> std::string&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00073\"></a><span class=\"lineno\">   73</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> getType(int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00074\"></a><span class=\"lineno\">   74</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> getType(<span class=\"keyword\">const</span> std::string&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00075\"></a><span class=\"lineno\">   75</span>&#160;    <span class=\"keywordtype\">bool</span> discard(int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00076\"></a><span class=\"lineno\">   76</span>&#160;    std::string getWord(int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00077\"></a><span class=\"lineno\">   77</span>&#160;    <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp; getSubwords(int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00078\"></a><span class=\"lineno\">   78</span>&#160;    <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt; getSubwords(<span class=\"keyword\">const</span> std::string&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00079\"></a><span class=\"lineno\">   79</span>&#160;    <span class=\"keywordtype\">void</span> computeSubwords(<span class=\"keyword\">const</span> std::string&amp;, std::vector&lt;int32_t&gt;&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00080\"></a><span class=\"lineno\">   80</span>&#160;    <span class=\"keywordtype\">void</span> computeSubwords(</div><div class=\"line\"><a name=\"l00081\"></a><span class=\"lineno\">   81</span>&#160;        <span class=\"keyword\">const</span> std::string&amp;,</div><div class=\"line\"><a name=\"l00082\"></a><span class=\"lineno\">   82</span>&#160;        std::vector&lt;int32_t&gt;&amp;,</div><div class=\"line\"><a name=\"l00083\"></a><span class=\"lineno\">   83</span>&#160;        std::vector&lt;std::string&gt;&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00084\"></a><span class=\"lineno\">   84</span>&#160;    <span class=\"keywordtype\">void</span> getSubwords(</div><div class=\"line\"><a name=\"l00085\"></a><span class=\"lineno\">   85</span>&#160;        <span class=\"keyword\">const</span> std::string&amp;,</div><div class=\"line\"><a name=\"l00086\"></a><span class=\"lineno\">   86</span>&#160;        std::vector&lt;int32_t&gt;&amp;,</div><div class=\"line\"><a name=\"l00087\"></a><span class=\"lineno\">   87</span>&#160;        std::vector&lt;std::string&gt;&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00088\"></a><span class=\"lineno\">   88</span>&#160;    uint32_t hash(<span class=\"keyword\">const</span> std::string&amp; str) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00089\"></a><span class=\"lineno\">   89</span>&#160;    <span class=\"keywordtype\">void</span> add(<span class=\"keyword\">const</span> std::string&amp;);</div><div class=\"line\"><a name=\"l00090\"></a><span class=\"lineno\">   90</span>&#160;    <span class=\"keywordtype\">bool</span> readWord(std::istream&amp;, std::string&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00091\"></a><span class=\"lineno\">   91</span>&#160;    <span class=\"keywordtype\">void</span> readFromFile(std::istream&amp;);</div><div class=\"line\"><a name=\"l00092\"></a><span class=\"lineno\">   92</span>&#160;    std::string getLabel(int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00093\"></a><span class=\"lineno\">   93</span>&#160;    <span class=\"keywordtype\">void</span> save(std::ostream&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00094\"></a><span class=\"lineno\">   94</span>&#160;    <span class=\"keywordtype\">void</span> load(std::istream&amp;);</div><div class=\"line\"><a name=\"l00095\"></a><span class=\"lineno\">   95</span>&#160;    std::vector&lt;int64_t&gt; getCounts(<a class=\"code\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a>) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00096\"></a><span class=\"lineno\">   96</span>&#160;    int32_t getLine(std::istream&amp;, std::vector&lt;int32_t&gt;&amp;, std::vector&lt;int32_t&gt;&amp;,</div><div class=\"line\"><a name=\"l00097\"></a><span class=\"lineno\">   97</span>&#160;                    std::vector&lt;int32_t&gt;&amp;, std::minstd_rand&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00098\"></a><span class=\"lineno\">   98</span>&#160;    int32_t getLine(std::istream&amp;, std::vector&lt;int32_t&gt;&amp;,</div><div class=\"line\"><a name=\"l00099\"></a><span class=\"lineno\">   99</span>&#160;                    std::vector&lt;int32_t&gt;&amp;, std::minstd_rand&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00100\"></a><span class=\"lineno\">  100</span>&#160;    <span class=\"keywordtype\">void</span> threshold(int64_t, int64_t);</div><div class=\"line\"><a name=\"l00101\"></a><span class=\"lineno\">  101</span>&#160;    <span class=\"keywordtype\">void</span> prune(std::vector&lt;int32_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00102\"></a><span class=\"lineno\">  102</span>&#160;};</div><div class=\"line\"><a name=\"l00103\"></a><span class=\"lineno\">  103</span>&#160;</div><div class=\"line\"><a name=\"l00104\"></a><span class=\"lineno\">  104</span>&#160;}</div><div class=\"line\"><a name=\"l00105\"></a><span class=\"lineno\">  105</span>&#160;</div><div class=\"line\"><a name=\"l00106\"></a><span class=\"lineno\">  106</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_af0b15349507137afbb934dfb07555921\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">fasttext::Dictionary::pruneidx_</a></div><div class=\"ttdeci\">std::unordered_map&lt; int32_t, int32_t &gt; pruneidx_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:56</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html\">fasttext::Dictionary</a></div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:36</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1entry_html_ae22a7e78ad207d2f90086a48a6f0d085\"><div class=\"ttname\"><a href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">fasttext::entry::word</a></div><div class=\"ttdeci\">std::string word</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:30</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a51554de7a2f0e807e931febc24bfef57\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">fasttext::Dictionary::pdiscard_</a></div><div class=\"ttdeci\">std::vector&lt; real &gt; pdiscard_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:49</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a9330bf13a50dea1a84545a5eed943e7b\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">fasttext::Dictionary::EOW</a></div><div class=\"ttdeci\">static const std::string EOW</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:66</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a534f33c9e34ed5185ea2a050d1140c62\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">fasttext::Dictionary::nwords_</a></div><div class=\"ttdeci\">int32_t nwords_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:51</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a1024c006f9f04d04653ea529f33888ec\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">fasttext::Dictionary::BOW</a></div><div class=\"ttdeci\">static const std::string BOW</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:65</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a875bb508d2a202b229e97e8295721f2c\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">fasttext::Dictionary::nlabels_</a></div><div class=\"ttdeci\">int32_t nlabels_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:52</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1entry_html_a345f716349f28b9a1a13e083b1cdb92d\"><div class=\"ttname\"><a href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">fasttext::entry::type</a></div><div class=\"ttdeci\">entry_type type</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:32</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a6778f74ca8c360ba917216cb7fcbf497\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">fasttext::id_type</a></div><div class=\"ttdeci\">int32_t id_type</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:26</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a6deee7ff65d22fc2509702dcc48bb889\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">fasttext::Dictionary::args_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Args &gt; args_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:45</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a3112f6337782249ffdfb4801363c5d7c\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">fasttext::Dictionary::word2int_</a></div><div class=\"ttdeci\">std::vector&lt; int32_t &gt; word2int_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:46</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1entry_html_a0487be0781a1d71b9bb2a9c039c4be9b\"><div class=\"ttname\"><a href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">fasttext::entry::subwords</a></div><div class=\"ttdeci\">std::vector&lt; int32_t &gt; subwords</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:33</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1entry_html\"><div class=\"ttname\"><a href=\"structfasttext_1_1entry.html\">fasttext::entry</a></div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:29</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\">fasttext::entry_type::word</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a532eedeee97e8d66a96b519d165f4eb7\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">fasttext::entry_type</a></div><div class=\"ttdeci\">entry_type</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:27</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\">fasttext::entry_type::label</a></div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1entry_html_ab1f793678a1669b826d48f8b9ddcee6a\"><div class=\"ttname\"><a href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">fasttext::entry::count</a></div><div class=\"ttdeci\">int64_t count</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:31</div></div>\n<div class=\"ttc\" id=\"args_8h_html\"><div class=\"ttname\"><a href=\"args_8h.html\">args.h</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a9b92bc5d615b81df69f035448d329108\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">fasttext::Dictionary::ntokens_</a></div><div class=\"ttdeci\">int64_t ntokens_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:53</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_a1a9a71e671291ed095b84fa5457bddb3\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">fasttext::Dictionary::size_</a></div><div class=\"ttdeci\">int32_t size_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:50</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_ab2661682cbe4837eb826cff941447086\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">fasttext::Dictionary::EOS</a></div><div class=\"ttdeci\">static const std::string EOS</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:64</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Dictionary_html_aa57c616c7bff0be7d9ac40b79bc7b2a7\"><div class=\"ttname\"><a href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">fasttext::Dictionary::words_</a></div><div class=\"ttdeci\">std::vector&lt; entry &gt; words_</div><div class=\"ttdef\"><b>Definition:</b> dictionary.h:47</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dictionary_8h.html\">dictionary.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">src Directory Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:args_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"args_8cc.html\">args.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:args_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"args_8h.html\">args.h</a> <a href=\"args_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:dictionary_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dictionary_8cc.html\">dictionary.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:dictionary_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dictionary_8h.html\">dictionary.h</a> <a href=\"dictionary_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:fasttext_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"fasttext_8cc.html\">fasttext.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:fasttext_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"fasttext_8h.html\">fasttext.h</a> <a href=\"fasttext_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:main_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html\">main.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:matrix_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"matrix_8cc.html\">matrix.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:matrix_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"matrix_8h.html\">matrix.h</a> <a href=\"matrix_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:model_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"model_8cc.html\">model.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:model_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"model_8h.html\">model.h</a> <a href=\"model_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:productquantizer_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"productquantizer_8cc.html\">productquantizer.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:productquantizer_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"productquantizer_8h.html\">productquantizer.h</a> <a href=\"productquantizer_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:qmatrix_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"qmatrix_8cc.html\">qmatrix.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:qmatrix_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"qmatrix_8h.html\">qmatrix.h</a> <a href=\"qmatrix_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:real_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"real_8h.html\">real.h</a> <a href=\"real_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:utils_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"utils_8cc.html\">utils.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:utils_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"utils_8h.html\">utils.h</a> <a href=\"utils_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:vector_8cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"vector_8cc.html\">vector.cc</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:vector_8h\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"vector_8h.html\">vector.h</a> <a href=\"vector_8h_source.html\">[code]</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js",
    "content": "var dir_68267d1309a1af8e8297ef4c3efbcdba =\n[\n    [ \"args.cc\", \"args_8cc.html\", null ],\n    [ \"args.h\", \"args_8h.html\", \"args_8h\" ],\n    [ \"dictionary.cc\", \"dictionary_8cc.html\", null ],\n    [ \"dictionary.h\", \"dictionary_8h.html\", \"dictionary_8h\" ],\n    [ \"fasttext.cc\", \"fasttext_8cc.html\", null ],\n    [ \"fasttext.h\", \"fasttext_8h.html\", \"fasttext_8h\" ],\n    [ \"main.cc\", \"main_8cc.html\", \"main_8cc\" ],\n    [ \"matrix.cc\", \"matrix_8cc.html\", null ],\n    [ \"matrix.h\", \"matrix_8h.html\", [\n      [ \"Matrix\", \"classfasttext_1_1Matrix.html\", \"classfasttext_1_1Matrix\" ]\n    ] ],\n    [ \"model.cc\", \"model_8cc.html\", null ],\n    [ \"model.h\", \"model_8h.html\", \"model_8h\" ],\n    [ \"productquantizer.cc\", \"productquantizer_8cc.html\", \"productquantizer_8cc\" ],\n    [ \"productquantizer.h\", \"productquantizer_8h.html\", [\n      [ \"ProductQuantizer\", \"classfasttext_1_1ProductQuantizer.html\", \"classfasttext_1_1ProductQuantizer\" ]\n    ] ],\n    [ \"qmatrix.cc\", \"qmatrix_8cc.html\", null ],\n    [ \"qmatrix.h\", \"qmatrix_8h.html\", [\n      [ \"QMatrix\", \"classfasttext_1_1QMatrix.html\", \"classfasttext_1_1QMatrix\" ]\n    ] ],\n    [ \"real.h\", \"real_8h.html\", \"real_8h\" ],\n    [ \"utils.cc\", \"utils_8cc.html\", \"utils_8cc\" ],\n    [ \"utils.h\", \"utils_8h.html\", \"utils_8h\" ],\n    [ \"vector.cc\", \"vector_8cc.html\", \"vector_8cc\" ],\n    [ \"vector.h\", \"vector_8h.html\", \"vector_8h\" ]\n];"
  },
  {
    "path": "website/static/docs/en/html/doxygen.css",
    "content": "/* The standard CSS for doxygen 1.8.13 */\n\nbody, table, div, p, dl {\n\tfont: 400 14px/22px Roboto,sans-serif;\n}\n\np.reference, p.definition {\n\tfont: 400 14px/22px Roboto,sans-serif;\n}\n\n/* @group Heading Levels */\n\nh1.groupheader {\n\tfont-size: 150%;\n}\n\n.title {\n\tfont: 400 14px/28px Roboto,sans-serif;\n\tfont-size: 150%;\n\tfont-weight: bold;\n\tmargin: 10px 2px;\n}\n\nh2.groupheader {\n\tborder-bottom: 1px solid #879ECB;\n\tcolor: #354C7B;\n\tfont-size: 150%;\n\tfont-weight: normal;\n\tmargin-top: 1.75em;\n\tpadding-top: 8px;\n\tpadding-bottom: 4px;\n\twidth: 100%;\n}\n\nh3.groupheader {\n\tfont-size: 100%;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\t-webkit-transition: text-shadow 0.5s linear;\n\t-moz-transition: text-shadow 0.5s linear;\n\t-ms-transition: text-shadow 0.5s linear;\n\t-o-transition: text-shadow 0.5s linear;\n\ttransition: text-shadow 0.5s linear;\n\tmargin-right: 15px;\n}\n\nh1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {\n\ttext-shadow: 0 0 15px cyan;\n}\n\ndt {\n\tfont-weight: bold;\n}\n\ndiv.multicol {\n\t-moz-column-gap: 1em;\n\t-webkit-column-gap: 1em;\n\t-moz-column-count: 3;\n\t-webkit-column-count: 3;\n}\n\np.startli, p.startdd {\n\tmargin-top: 2px;\n}\n\np.starttd {\n\tmargin-top: 0px;\n}\n\np.endli {\n\tmargin-bottom: 0px;\n}\n\np.enddd {\n\tmargin-bottom: 4px;\n}\n\np.endtd {\n\tmargin-bottom: 2px;\n}\n\n/* @end */\n\ncaption {\n\tfont-weight: bold;\n}\n\nspan.legend {\n        font-size: 70%;\n        text-align: center;\n}\n\nh3.version {\n        font-size: 90%;\n        text-align: center;\n}\n\ndiv.qindex, div.navtab{\n\tbackground-color: #EBEFF6;\n\tborder: 1px solid #A3B4D7;\n\ttext-align: center;\n}\n\ndiv.qindex, div.navpath {\n\twidth: 100%;\n\tline-height: 140%;\n}\n\ndiv.navtab {\n\tmargin-right: 15px;\n}\n\n/* @group Link Styling */\n\na {\n\tcolor: #3D578C;\n\tfont-weight: normal;\n\ttext-decoration: none;\n}\n\n.contents a:visited {\n\tcolor: #4665A2;\n}\n\na:hover {\n\ttext-decoration: underline;\n}\n\na.qindex {\n\tfont-weight: bold;\n}\n\na.qindexHL {\n\tfont-weight: bold;\n\tbackground-color: #9CAFD4;\n\tcolor: #ffffff;\n\tborder: 1px double #869DCA;\n}\n\n.contents a.qindexHL:visited {\n        color: #ffffff;\n}\n\na.el {\n\tfont-weight: bold;\n}\n\na.elRef {\n}\n\na.code, a.code:visited, a.line, a.line:visited {\n\tcolor: #4665A2; \n}\n\na.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {\n\tcolor: #4665A2; \n}\n\n/* @end */\n\ndl.el {\n\tmargin-left: -1cm;\n}\n\npre.fragment {\n        border: 1px solid #C4CFE5;\n        background-color: #FBFCFD;\n        padding: 4px 6px;\n        margin: 4px 8px 4px 2px;\n        overflow: auto;\n        word-wrap: break-word;\n        font-size:  9pt;\n        line-height: 125%;\n        font-family: monospace, fixed;\n        font-size: 105%;\n}\n\ndiv.fragment {\n        padding: 0px;\n        margin: 4px 8px 4px 2px;\n\tbackground-color: #FBFCFD;\n\tborder: 1px solid #C4CFE5;\n}\n\ndiv.line {\n\tfont-family: monospace, fixed;\n        font-size: 13px;\n\tmin-height: 13px;\n\tline-height: 1.0;\n\ttext-wrap: unrestricted;\n\twhite-space: -moz-pre-wrap; /* Moz */\n\twhite-space: -pre-wrap;     /* Opera 4-6 */\n\twhite-space: -o-pre-wrap;   /* Opera 7 */\n\twhite-space: pre-wrap;      /* CSS3  */\n\tword-wrap: break-word;      /* IE 5.5+ */\n\ttext-indent: -53px;\n\tpadding-left: 53px;\n\tpadding-bottom: 0px;\n\tmargin: 0px;\n\t-webkit-transition-property: background-color, box-shadow;\n\t-webkit-transition-duration: 0.5s;\n\t-moz-transition-property: background-color, box-shadow;\n\t-moz-transition-duration: 0.5s;\n\t-ms-transition-property: background-color, box-shadow;\n\t-ms-transition-duration: 0.5s;\n\t-o-transition-property: background-color, box-shadow;\n\t-o-transition-duration: 0.5s;\n\ttransition-property: background-color, box-shadow;\n\ttransition-duration: 0.5s;\n}\n\ndiv.line:after {\n    content:\"\\000A\";\n    white-space: pre;\n}\n\ndiv.line.glow {\n\tbackground-color: cyan;\n\tbox-shadow: 0 0 10px cyan;\n}\n\n\nspan.lineno {\n\tpadding-right: 4px;\n\ttext-align: right;\n\tborder-right: 2px solid #0F0;\n\tbackground-color: #E8E8E8;\n        white-space: pre;\n}\nspan.lineno a {\n\tbackground-color: #D8D8D8;\n}\n\nspan.lineno a:hover {\n\tbackground-color: #C8C8C8;\n}\n\n.lineno {\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\ndiv.ah, span.ah {\n\tbackground-color: black;\n\tfont-weight: bold;\n\tcolor: #ffffff;\n\tmargin-bottom: 3px;\n\tmargin-top: 3px;\n\tpadding: 0.2em;\n\tborder: solid thin #333;\n\tborder-radius: 0.5em;\n\t-webkit-border-radius: .5em;\n\t-moz-border-radius: .5em;\n\tbox-shadow: 2px 2px 3px #999;\n\t-webkit-box-shadow: 2px 2px 3px #999;\n\t-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;\n\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));\n\tbackground-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);\n}\n\ndiv.classindex ul {\n        list-style: none;\n        padding-left: 0;\n}\n\ndiv.classindex span.ai {\n        display: inline-block;\n}\n\ndiv.groupHeader {\n\tmargin-left: 16px;\n\tmargin-top: 12px;\n\tfont-weight: bold;\n}\n\ndiv.groupText {\n\tmargin-left: 16px;\n\tfont-style: italic;\n}\n\nbody {\n\tbackground-color: white;\n\tcolor: black;\n        margin: 0;\n}\n\ndiv.contents {\n\tmargin-top: 10px;\n\tmargin-left: 12px;\n\tmargin-right: 8px;\n}\n\ntd.indexkey {\n\tbackground-color: #EBEFF6;\n\tfont-weight: bold;\n\tborder: 1px solid #C4CFE5;\n\tmargin: 2px 0px 2px 0;\n\tpadding: 2px 10px;\n        white-space: nowrap;\n        vertical-align: top;\n}\n\ntd.indexvalue {\n\tbackground-color: #EBEFF6;\n\tborder: 1px solid #C4CFE5;\n\tpadding: 2px 10px;\n\tmargin: 2px 0px;\n}\n\ntr.memlist {\n\tbackground-color: #EEF1F7;\n}\n\np.formulaDsp {\n\ttext-align: center;\n}\n\nimg.formulaDsp {\n\t\n}\n\nimg.formulaInl {\n\tvertical-align: middle;\n}\n\ndiv.center {\n\ttext-align: center;\n        margin-top: 0px;\n        margin-bottom: 0px;\n        padding: 0px;\n}\n\ndiv.center img {\n\tborder: 0px;\n}\n\naddress.footer {\n\ttext-align: right;\n\tpadding-right: 12px;\n}\n\nimg.footer {\n\tborder: 0px;\n\tvertical-align: middle;\n}\n\n/* @group Code Colorization */\n\nspan.keyword {\n\tcolor: #008000\n}\n\nspan.keywordtype {\n\tcolor: #604020\n}\n\nspan.keywordflow {\n\tcolor: #e08000\n}\n\nspan.comment {\n\tcolor: #800000\n}\n\nspan.preprocessor {\n\tcolor: #806020\n}\n\nspan.stringliteral {\n\tcolor: #002080\n}\n\nspan.charliteral {\n\tcolor: #008080\n}\n\nspan.vhdldigit { \n\tcolor: #ff00ff \n}\n\nspan.vhdlchar { \n\tcolor: #000000 \n}\n\nspan.vhdlkeyword { \n\tcolor: #700070 \n}\n\nspan.vhdllogic { \n\tcolor: #ff0000 \n}\n\nblockquote {\n        background-color: #F7F8FB;\n        border-left: 2px solid #9CAFD4;\n        margin: 0 24px 0 4px;\n        padding: 0 12px 0 16px;\n}\n\n/* @end */\n\n/*\n.search {\n\tcolor: #003399;\n\tfont-weight: bold;\n}\n\nform.search {\n\tmargin-bottom: 0px;\n\tmargin-top: 0px;\n}\n\ninput.search {\n\tfont-size: 75%;\n\tcolor: #000080;\n\tfont-weight: normal;\n\tbackground-color: #e8eef2;\n}\n*/\n\ntd.tiny {\n\tfont-size: 75%;\n}\n\n.dirtab {\n\tpadding: 4px;\n\tborder-collapse: collapse;\n\tborder: 1px solid #A3B4D7;\n}\n\nth.dirtab {\n\tbackground: #EBEFF6;\n\tfont-weight: bold;\n}\n\nhr {\n\theight: 0px;\n\tborder: none;\n\tborder-top: 1px solid #4A6AAA;\n}\n\nhr.footer {\n\theight: 1px;\n}\n\n/* @group Member Descriptions */\n\ntable.memberdecls {\n\tborder-spacing: 0px;\n\tpadding: 0px;\n}\n\n.memberdecls td, .fieldtable tr {\n\t-webkit-transition-property: background-color, box-shadow;\n\t-webkit-transition-duration: 0.5s;\n\t-moz-transition-property: background-color, box-shadow;\n\t-moz-transition-duration: 0.5s;\n\t-ms-transition-property: background-color, box-shadow;\n\t-ms-transition-duration: 0.5s;\n\t-o-transition-property: background-color, box-shadow;\n\t-o-transition-duration: 0.5s;\n\ttransition-property: background-color, box-shadow;\n\ttransition-duration: 0.5s;\n}\n\n.memberdecls td.glow, .fieldtable tr.glow {\n\tbackground-color: cyan;\n\tbox-shadow: 0 0 15px cyan;\n}\n\n.mdescLeft, .mdescRight,\n.memItemLeft, .memItemRight,\n.memTemplItemLeft, .memTemplItemRight, .memTemplParams {\n\tbackground-color: #F9FAFC;\n\tborder: none;\n\tmargin: 4px;\n\tpadding: 1px 0 0 8px;\n}\n\n.mdescLeft, .mdescRight {\n\tpadding: 0px 8px 4px 8px;\n\tcolor: #555;\n}\n\n.memSeparator {\n        border-bottom: 1px solid #DEE4F0;\n        line-height: 1px;\n        margin: 0px;\n        padding: 0px;\n}\n\n.memItemLeft, .memTemplItemLeft {\n        white-space: nowrap;\n}\n\n.memItemRight {\n\twidth: 100%;\n}\n\n.memTemplParams {\n\tcolor: #4665A2;\n        white-space: nowrap;\n\tfont-size: 80%;\n}\n\n/* @end */\n\n/* @group Member Details */\n\n/* Styles for detailed member documentation */\n\n.memtitle {\n\tpadding: 8px;\n\tborder-top: 1px solid #A8B8D9;\n\tborder-left: 1px solid #A8B8D9;\n\tborder-right: 1px solid #A8B8D9;\n\tborder-top-right-radius: 4px;\n\tborder-top-left-radius: 4px;\n\tmargin-bottom: -1px;\n\tbackground-image: url('nav_f.png');\n\tbackground-repeat: repeat-x;\n\tbackground-color: #E2E8F2;\n\tline-height: 1.25;\n\tfont-weight: 300;\n\tfloat:left;\n}\n\n.permalink\n{\n        font-size: 65%;\n        display: inline-block;\n        vertical-align: middle;\n}\n\n.memtemplate {\n\tfont-size: 80%;\n\tcolor: #4665A2;\n\tfont-weight: normal;\n\tmargin-left: 9px;\n}\n\n.memnav {\n\tbackground-color: #EBEFF6;\n\tborder: 1px solid #A3B4D7;\n\ttext-align: center;\n\tmargin: 2px;\n\tmargin-right: 15px;\n\tpadding: 2px;\n}\n\n.mempage {\n\twidth: 100%;\n}\n\n.memitem {\n\tpadding: 0;\n\tmargin-bottom: 10px;\n\tmargin-right: 5px;\n        -webkit-transition: box-shadow 0.5s linear;\n        -moz-transition: box-shadow 0.5s linear;\n        -ms-transition: box-shadow 0.5s linear;\n        -o-transition: box-shadow 0.5s linear;\n        transition: box-shadow 0.5s linear;\n        display: table !important;\n        width: 100%;\n}\n\n.memitem.glow {\n         box-shadow: 0 0 15px cyan;\n}\n\n.memname {\n        font-weight: 400;\n        margin-left: 6px;\n}\n\n.memname td {\n\tvertical-align: bottom;\n}\n\n.memproto, dl.reflist dt {\n        border-top: 1px solid #A8B8D9;\n        border-left: 1px solid #A8B8D9;\n        border-right: 1px solid #A8B8D9;\n        padding: 6px 0px 6px 0px;\n        color: #253555;\n        font-weight: bold;\n        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);\n        background-color: #DFE5F1;\n        /* opera specific markup */\n        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n        border-top-right-radius: 4px;\n        /* firefox specific markup */\n        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;\n        -moz-border-radius-topright: 4px;\n        /* webkit specific markup */\n        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n        -webkit-border-top-right-radius: 4px;\n\n}\n\n.overload {\n        font-family: \"courier new\",courier,monospace;\n\tfont-size: 65%;\n}\n\n.memdoc, dl.reflist dd {\n        border-bottom: 1px solid #A8B8D9;      \n        border-left: 1px solid #A8B8D9;      \n        border-right: 1px solid #A8B8D9; \n        padding: 6px 10px 2px 10px;\n        background-color: #FBFCFD;\n        border-top-width: 0;\n        background-image:url('nav_g.png');\n        background-repeat:repeat-x;\n        background-color: #FFFFFF;\n        /* opera specific markup */\n        border-bottom-left-radius: 4px;\n        border-bottom-right-radius: 4px;\n        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n        /* firefox specific markup */\n        -moz-border-radius-bottomleft: 4px;\n        -moz-border-radius-bottomright: 4px;\n        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;\n        /* webkit specific markup */\n        -webkit-border-bottom-left-radius: 4px;\n        -webkit-border-bottom-right-radius: 4px;\n        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n}\n\ndl.reflist dt {\n        padding: 5px;\n}\n\ndl.reflist dd {\n        margin: 0px 0px 10px 0px;\n        padding: 5px;\n}\n\n.paramkey {\n\ttext-align: right;\n}\n\n.paramtype {\n\twhite-space: nowrap;\n}\n\n.paramname {\n\tcolor: #602020;\n\twhite-space: nowrap;\n}\n.paramname em {\n\tfont-style: normal;\n}\n.paramname code {\n        line-height: 14px;\n}\n\n.params, .retval, .exception, .tparams {\n        margin-left: 0px;\n        padding-left: 0px;\n}       \n\n.params .paramname, .retval .paramname {\n        font-weight: bold;\n        vertical-align: top;\n}\n        \n.params .paramtype {\n        font-style: italic;\n        vertical-align: top;\n}       \n        \n.params .paramdir {\n        font-family: \"courier new\",courier,monospace;\n        vertical-align: top;\n}\n\ntable.mlabels {\n\tborder-spacing: 0px;\n}\n\ntd.mlabels-left {\n\twidth: 100%;\n\tpadding: 0px;\n}\n\ntd.mlabels-right {\n\tvertical-align: bottom;\n\tpadding: 0px;\n\twhite-space: nowrap;\n}\n\nspan.mlabels {\n        margin-left: 8px;\n}\n\nspan.mlabel {\n        background-color: #728DC1;\n        border-top:1px solid #5373B4;\n        border-left:1px solid #5373B4;\n        border-right:1px solid #C4CFE5;\n        border-bottom:1px solid #C4CFE5;\n\ttext-shadow: none;\n\tcolor: white;\n\tmargin-right: 4px;\n\tpadding: 2px 3px;\n\tborder-radius: 3px;\n\tfont-size: 7pt;\n\twhite-space: nowrap;\n\tvertical-align: middle;\n}\n\n\n\n/* @end */\n\n/* these are for tree view inside a (index) page */\n\ndiv.directory {\n        margin: 10px 0px;\n        border-top: 1px solid #9CAFD4;\n        border-bottom: 1px solid #9CAFD4;\n        width: 100%;\n}\n\n.directory table {\n        border-collapse:collapse;\n}\n\n.directory td {\n        margin: 0px;\n        padding: 0px;\n\tvertical-align: top;\n}\n\n.directory td.entry {\n        white-space: nowrap;\n        padding-right: 6px;\n\tpadding-top: 3px;\n}\n\n.directory td.entry a {\n        outline:none;\n}\n\n.directory td.entry a img {\n        border: none;\n}\n\n.directory td.desc {\n        width: 100%;\n        padding-left: 6px;\n\tpadding-right: 6px;\n\tpadding-top: 3px;\n\tborder-left: 1px solid rgba(0,0,0,0.05);\n}\n\n.directory tr.even {\n\tpadding-left: 6px;\n\tbackground-color: #F7F8FB;\n}\n\n.directory img {\n\tvertical-align: -30%;\n}\n\n.directory .levels {\n        white-space: nowrap;\n        width: 100%;\n        text-align: right;\n        font-size: 9pt;\n}\n\n.directory .levels span {\n        cursor: pointer;\n        padding-left: 2px;\n        padding-right: 2px;\n\tcolor: #3D578C;\n}\n\n.arrow {\n    color: #9CAFD4;\n    -webkit-user-select: none;\n    -khtml-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    cursor: pointer;\n    font-size: 80%;\n    display: inline-block;\n    width: 16px;\n    height: 22px;\n}\n\n.icon {\n    font-family: Arial, Helvetica;\n    font-weight: bold;\n    font-size: 12px;\n    height: 14px;\n    width: 16px;\n    display: inline-block;\n    background-color: #728DC1;\n    color: white;\n    text-align: center;\n    border-radius: 4px;\n    margin-left: 2px;\n    margin-right: 2px;\n}\n\n.icona {\n    width: 24px;\n    height: 22px;\n    display: inline-block;\n}\n\n.iconfopen {\n    width: 24px;\n    height: 18px;\n    margin-bottom: 4px;\n    background-image:url('folderopen.png');\n    background-position: 0px -4px;\n    background-repeat: repeat-y;\n    vertical-align:top;\n    display: inline-block;\n}\n\n.iconfclosed {\n    width: 24px;\n    height: 18px;\n    margin-bottom: 4px;\n    background-image:url('folderclosed.png');\n    background-position: 0px -4px;\n    background-repeat: repeat-y;\n    vertical-align:top;\n    display: inline-block;\n}\n\n.icondoc {\n    width: 24px;\n    height: 18px;\n    margin-bottom: 4px;\n    background-image:url('doc.png');\n    background-position: 0px -4px;\n    background-repeat: repeat-y;\n    vertical-align:top;\n    display: inline-block;\n}\n\ntable.directory {\n    font: 400 14px Roboto,sans-serif;\n}\n\n/* @end */\n\ndiv.dynheader {\n        margin-top: 8px;\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\naddress {\n\tfont-style: normal;\n\tcolor: #2A3D61;\n}\n\ntable.doxtable caption {\n\tcaption-side: top;\n}\n\ntable.doxtable {\n\tborder-collapse:collapse;\n        margin-top: 4px;\n        margin-bottom: 4px;\n}\n\ntable.doxtable td, table.doxtable th {\n\tborder: 1px solid #2D4068;\n\tpadding: 3px 7px 2px;\n}\n\ntable.doxtable th {\n\tbackground-color: #374F7F;\n\tcolor: #FFFFFF;\n\tfont-size: 110%;\n\tpadding-bottom: 4px;\n\tpadding-top: 5px;\n}\n\ntable.fieldtable {\n        /*width: 100%;*/\n        margin-bottom: 10px;\n        border: 1px solid #A8B8D9;\n        border-spacing: 0px;\n        -moz-border-radius: 4px;\n        -webkit-border-radius: 4px;\n        border-radius: 4px;\n        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;\n        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);\n        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);\n}\n\n.fieldtable td, .fieldtable th {\n        padding: 3px 7px 2px;\n}\n\n.fieldtable td.fieldtype, .fieldtable td.fieldname {\n        white-space: nowrap;\n        border-right: 1px solid #A8B8D9;\n        border-bottom: 1px solid #A8B8D9;\n        vertical-align: top;\n}\n\n.fieldtable td.fieldname {\n        padding-top: 3px;\n}\n\n.fieldtable td.fielddoc {\n        border-bottom: 1px solid #A8B8D9;\n        /*width: 100%;*/\n}\n\n.fieldtable td.fielddoc p:first-child {\n        margin-top: 0px;\n}       \n        \n.fieldtable td.fielddoc p:last-child {\n        margin-bottom: 2px;\n}\n\n.fieldtable tr:last-child td {\n        border-bottom: none;\n}\n\n.fieldtable th {\n        background-image:url('nav_f.png');\n        background-repeat:repeat-x;\n        background-color: #E2E8F2;\n        font-size: 90%;\n        color: #253555;\n        padding-bottom: 4px;\n        padding-top: 5px;\n        text-align:left;\n        font-weight: 400;\n        -moz-border-radius-topleft: 4px;\n        -moz-border-radius-topright: 4px;\n        -webkit-border-top-left-radius: 4px;\n        -webkit-border-top-right-radius: 4px;\n        border-top-left-radius: 4px;\n        border-top-right-radius: 4px;\n        border-bottom: 1px solid #A8B8D9;\n}\n\n\n.tabsearch {\n\ttop: 0px;\n\tleft: 10px;\n\theight: 36px;\n\tbackground-image: url('tab_b.png');\n\tz-index: 101;\n\toverflow: hidden;\n\tfont-size: 13px;\n}\n\n.navpath ul\n{\n\tfont-size: 11px;\n\tbackground-image:url('tab_b.png');\n\tbackground-repeat:repeat-x;\n\tbackground-position: 0 -5px;\n\theight:30px;\n\tline-height:30px;\n\tcolor:#8AA0CC;\n\tborder:solid 1px #C2CDE4;\n\toverflow:hidden;\n\tmargin:0px;\n\tpadding:0px;\n}\n\n.navpath li\n{\n\tlist-style-type:none;\n\tfloat:left;\n\tpadding-left:10px;\n\tpadding-right:15px;\n\tbackground-image:url('bc_s.png');\n\tbackground-repeat:no-repeat;\n\tbackground-position:right;\n\tcolor:#364D7C;\n}\n\n.navpath li.navelem a\n{\n\theight:32px;\n\tdisplay:block;\n\ttext-decoration: none;\n\toutline: none;\n\tcolor: #283A5D;\n\tfont-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;\n\ttext-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);\n\ttext-decoration: none;        \n}\n\n.navpath li.navelem a:hover\n{\n\tcolor:#6884BD;\n}\n\n.navpath li.footer\n{\n        list-style-type:none;\n        float:right;\n        padding-left:10px;\n        padding-right:15px;\n        background-image:none;\n        background-repeat:no-repeat;\n        background-position:right;\n        color:#364D7C;\n        font-size: 8pt;\n}\n\n\ndiv.summary\n{\n\tfloat: right;\n\tfont-size: 8pt;\n\tpadding-right: 5px;\n\twidth: 50%;\n\ttext-align: right;\n}       \n\ndiv.summary a\n{\n\twhite-space: nowrap;\n}\n\ntable.classindex\n{\n        margin: 10px;\n        white-space: nowrap;\n        margin-left: 3%;\n        margin-right: 3%;\n        width: 94%;\n        border: 0;\n        border-spacing: 0; \n        padding: 0;\n}\n\ndiv.ingroups\n{\n\tfont-size: 8pt;\n\twidth: 50%;\n\ttext-align: left;\n}\n\ndiv.ingroups a\n{\n\twhite-space: nowrap;\n}\n\ndiv.header\n{\n        background-image:url('nav_h.png');\n        background-repeat:repeat-x;\n\tbackground-color: #F9FAFC;\n\tmargin:  0px;\n\tborder-bottom: 1px solid #C4CFE5;\n}\n\ndiv.headertitle\n{\n\tpadding: 5px 5px 5px 10px;\n}\n\ndl\n{\n        padding: 0 0 0 10px;\n}\n\n/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */\ndl.section\n{\n\tmargin-left: 0px;\n\tpadding-left: 0px;\n}\n\ndl.note\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #D0C000;\n}\n\ndl.warning, dl.attention\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #FF0000;\n}\n\ndl.pre, dl.post, dl.invariant\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #00D000;\n}\n\ndl.deprecated\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #505050;\n}\n\ndl.todo\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #00C0E0;\n}\n\ndl.test\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #3030E0;\n}\n\ndl.bug\n{\n        margin-left:-7px;\n        padding-left: 3px;\n        border-left:4px solid;\n        border-color: #C08050;\n}\n\ndl.section dd {\n\tmargin-bottom: 6px;\n}\n\n\n#projectlogo\n{\n\ttext-align: center;\n\tvertical-align: bottom;\n\tborder-collapse: separate;\n}\n \n#projectlogo img\n{ \n\tborder: 0px none;\n}\n \n#projectalign\n{\n        vertical-align: middle;\n}\n\n#projectname\n{\n\tfont: 300% Tahoma, Arial,sans-serif;\n\tmargin: 0px;\n\tpadding: 2px 0px;\n}\n    \n#projectbrief\n{\n\tfont: 120% Tahoma, Arial,sans-serif;\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n#projectnumber\n{\n\tfont: 50% Tahoma, Arial,sans-serif;\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n#titlearea\n{\n\tpadding: 0px;\n\tmargin: 0px;\n\twidth: 100%;\n\tborder-bottom: 1px solid #5373B4;\n}\n\n.image\n{\n        text-align: center;\n}\n\n.dotgraph\n{\n        text-align: center;\n}\n\n.mscgraph\n{\n        text-align: center;\n}\n\n.plantumlgraph\n{\n        text-align: center;\n}\n\n.diagraph\n{\n        text-align: center;\n}\n\n.caption\n{\n\tfont-weight: bold;\n}\n\ndiv.zoom\n{\n\tborder: 1px solid #90A5CE;\n}\n\ndl.citelist {\n        margin-bottom:50px;\n}\n\ndl.citelist dt {\n        color:#334975;\n        float:left;\n        font-weight:bold;\n        margin-right:10px;\n        padding:5px;\n}\n\ndl.citelist dd {\n        margin:2px 0;\n        padding:5px 0;\n}\n\ndiv.toc {\n        padding: 14px 25px;\n        background-color: #F4F6FA;\n        border: 1px solid #D8DFEE;\n        border-radius: 7px 7px 7px 7px;\n        float: right;\n        height: auto;\n        margin: 0 8px 10px 10px;\n        width: 200px;\n}\n\ndiv.toc li {\n        background: url(\"bdwn.png\") no-repeat scroll 0 5px transparent;\n        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;\n        margin-top: 5px;\n        padding-left: 10px;\n        padding-top: 2px;\n}\n\ndiv.toc h3 {\n        font: bold 12px/1.2 Arial,FreeSans,sans-serif;\n\tcolor: #4665A2;\n        border-bottom: 0 none;\n        margin: 0;\n}\n\ndiv.toc ul {\n        list-style: none outside none;\n        border: medium none;\n        padding: 0px;\n}       \n\ndiv.toc li.level1 {\n        margin-left: 0px;\n}\n\ndiv.toc li.level2 {\n        margin-left: 15px;\n}\n\ndiv.toc li.level3 {\n        margin-left: 30px;\n}\n\ndiv.toc li.level4 {\n        margin-left: 45px;\n}\n\n.inherit_header {\n        font-weight: bold;\n        color: gray;\n        cursor: pointer;\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\n.inherit_header td {\n        padding: 6px 0px 2px 5px;\n}\n\n.inherit {\n        display: none;\n}\n\ntr.heading h2 {\n        margin-top: 12px;\n        margin-bottom: 4px;\n}\n\n/* tooltip related style info */\n\n.ttc {\n        position: absolute;\n        display: none;\n}\n\n#powerTip {\n\tcursor: default;\n\twhite-space: nowrap;\n\tbackground-color: white;\n\tborder: 1px solid gray;\n\tborder-radius: 4px 4px 4px 4px;\n\tbox-shadow: 1px 1px 7px gray;\n\tdisplay: none;\n\tfont-size: smaller;\n\tmax-width: 80%;\n\topacity: 0.9;\n\tpadding: 1ex 1em 1em;\n\tposition: absolute;\n\tz-index: 2147483647;\n}\n\n#powerTip div.ttdoc {\n        color: grey;\n\tfont-style: italic;\n}\n\n#powerTip div.ttname a {\n        font-weight: bold;\n}\n\n#powerTip div.ttname {\n        font-weight: bold;\n}\n\n#powerTip div.ttdeci {\n        color: #006318;\n}\n\n#powerTip div {\n        margin: 0px;\n        padding: 0px;\n        font: 12px/16px Roboto,sans-serif;\n}\n\n#powerTip:before, #powerTip:after {\n\tcontent: \"\";\n\tposition: absolute;\n\tmargin: 0px;\n}\n\n#powerTip.n:after,  #powerTip.n:before,\n#powerTip.s:after,  #powerTip.s:before,\n#powerTip.w:after,  #powerTip.w:before,\n#powerTip.e:after,  #powerTip.e:before,\n#powerTip.ne:after, #powerTip.ne:before,\n#powerTip.se:after, #powerTip.se:before,\n#powerTip.nw:after, #powerTip.nw:before,\n#powerTip.sw:after, #powerTip.sw:before {\n\tborder: solid transparent;\n\tcontent: \" \";\n\theight: 0;\n\twidth: 0;\n\tposition: absolute;\n}\n\n#powerTip.n:after,  #powerTip.s:after,\n#powerTip.w:after,  #powerTip.e:after,\n#powerTip.nw:after, #powerTip.ne:after,\n#powerTip.sw:after, #powerTip.se:after {\n\tborder-color: rgba(255, 255, 255, 0);\n}\n\n#powerTip.n:before,  #powerTip.s:before,\n#powerTip.w:before,  #powerTip.e:before,\n#powerTip.nw:before, #powerTip.ne:before,\n#powerTip.sw:before, #powerTip.se:before {\n\tborder-color: rgba(128, 128, 128, 0);\n}\n\n#powerTip.n:after,  #powerTip.n:before,\n#powerTip.ne:after, #powerTip.ne:before,\n#powerTip.nw:after, #powerTip.nw:before {\n\ttop: 100%;\n}\n\n#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {\n\tborder-top-color: #ffffff;\n\tborder-width: 10px;\n\tmargin: 0px -10px;\n}\n#powerTip.n:before {\n\tborder-top-color: #808080;\n\tborder-width: 11px;\n\tmargin: 0px -11px;\n}\n#powerTip.n:after, #powerTip.n:before {\n\tleft: 50%;\n}\n\n#powerTip.nw:after, #powerTip.nw:before {\n\tright: 14px;\n}\n\n#powerTip.ne:after, #powerTip.ne:before {\n\tleft: 14px;\n}\n\n#powerTip.s:after,  #powerTip.s:before,\n#powerTip.se:after, #powerTip.se:before,\n#powerTip.sw:after, #powerTip.sw:before {\n\tbottom: 100%;\n}\n\n#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {\n\tborder-bottom-color: #ffffff;\n\tborder-width: 10px;\n\tmargin: 0px -10px;\n}\n\n#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {\n\tborder-bottom-color: #808080;\n\tborder-width: 11px;\n\tmargin: 0px -11px;\n}\n\n#powerTip.s:after, #powerTip.s:before {\n\tleft: 50%;\n}\n\n#powerTip.sw:after, #powerTip.sw:before {\n\tright: 14px;\n}\n\n#powerTip.se:after, #powerTip.se:before {\n\tleft: 14px;\n}\n\n#powerTip.e:after, #powerTip.e:before {\n\tleft: 100%;\n}\n#powerTip.e:after {\n\tborder-left-color: #ffffff;\n\tborder-width: 10px;\n\ttop: 50%;\n\tmargin-top: -10px;\n}\n#powerTip.e:before {\n\tborder-left-color: #808080;\n\tborder-width: 11px;\n\ttop: 50%;\n\tmargin-top: -11px;\n}\n\n#powerTip.w:after, #powerTip.w:before {\n\tright: 100%;\n}\n#powerTip.w:after {\n\tborder-right-color: #ffffff;\n\tborder-width: 10px;\n\ttop: 50%;\n\tmargin-top: -10px;\n}\n#powerTip.w:before {\n\tborder-right-color: #808080;\n\tborder-width: 11px;\n\ttop: 50%;\n\tmargin-top: -11px;\n}\n\n@media print\n{\n  #top { display: none; }\n  #side-nav { display: none; }\n  #nav-path { display: none; }\n  body { overflow:visible; }\n  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }\n  .summary { display: none; }\n  .memitem { page-break-inside: avoid; }\n  #doc-content\n  {\n    margin-left:0 !important;\n    height:auto !important;\n    width:auto !important;\n    overflow:inherit;\n    display:inline;\n  }\n}\n\n/* @group Markdown */\n\n/*\ntable.markdownTable {\n\tborder-collapse:collapse;\n        margin-top: 4px;\n        margin-bottom: 4px;\n}\n\ntable.markdownTable td, table.markdownTable th {\n\tborder: 1px solid #2D4068;\n\tpadding: 3px 7px 2px;\n}\n\ntable.markdownTableHead tr {\n}\n\ntable.markdownTableBodyLeft td, table.markdownTable th {\n\tborder: 1px solid #2D4068;\n\tpadding: 3px 7px 2px;\n}\n\nth.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {\n\tbackground-color: #374F7F;\n\tcolor: #FFFFFF;\n\tfont-size: 110%;\n\tpadding-bottom: 4px;\n\tpadding-top: 5px;\n}\n\nth.markdownTableHeadLeft {\n\ttext-align: left\n}\n\nth.markdownTableHeadRight {\n\ttext-align: right\n}\n\nth.markdownTableHeadCenter {\n\ttext-align: center\n}\n*/\n\ntable.markdownTable {\n\tborder-collapse:collapse;\n        margin-top: 4px;\n        margin-bottom: 4px;\n}\n\ntable.markdownTable td, table.markdownTable th {\n\tborder: 1px solid #2D4068;\n\tpadding: 3px 7px 2px;\n}\n\ntable.markdownTable tr {\n}\n\nth.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {\n\tbackground-color: #374F7F;\n\tcolor: #FFFFFF;\n\tfont-size: 110%;\n\tpadding-bottom: 4px;\n\tpadding-top: 5px;\n}\n\nth.markdownTableHeadLeft, td.markdownTableBodyLeft {\n\ttext-align: left\n}\n\nth.markdownTableHeadRight, td.markdownTableBodyRight {\n\ttext-align: right\n}\n\nth.markdownTableHeadCenter, td.markdownTableBodyCenter {\n\ttext-align: center\n}\n\n\n/* @end */\n"
  },
  {
    "path": "website/static/docs/en/html/dynsections.js",
    "content": "function toggleVisibility(linkObj)\n{\n var base = $(linkObj).attr('id');\n var summary = $('#'+base+'-summary');\n var content = $('#'+base+'-content');\n var trigger = $('#'+base+'-trigger');\n var src=$(trigger).attr('src');\n if (content.is(':visible')===true) {\n   content.hide();\n   summary.show();\n   $(linkObj).addClass('closed').removeClass('opened');\n   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');\n } else {\n   content.show();\n   summary.hide();\n   $(linkObj).removeClass('closed').addClass('opened');\n   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');\n } \n return false;\n}\n\nfunction updateStripes()\n{\n  $('table.directory tr').\n       removeClass('even').filter(':visible:even').addClass('even');\n}\n\nfunction toggleLevel(level)\n{\n  $('table.directory tr').each(function() {\n    var l = this.id.split('_').length-1;\n    var i = $('#img'+this.id.substring(3));\n    var a = $('#arr'+this.id.substring(3));\n    if (l<level+1) {\n      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');\n      a.html('&#9660;');\n      $(this).show();\n    } else if (l==level+1) {\n      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');\n      a.html('&#9658;');\n      $(this).show();\n    } else {\n      $(this).hide();\n    }\n  });\n  updateStripes();\n}\n\nfunction toggleFolder(id)\n{\n  // the clicked row\n  var currentRow = $('#row_'+id);\n\n  // all rows after the clicked row\n  var rows = currentRow.nextAll(\"tr\");\n\n  var re = new RegExp('^row_'+id+'\\\\d+_$', \"i\"); //only one sub\n\n  // only match elements AFTER this one (can't hide elements before)\n  var childRows = rows.filter(function() { return this.id.match(re); });\n\n  // first row is visible we are HIDING\n  if (childRows.filter(':first').is(':visible')===true) {\n    // replace down arrow by right arrow for current row\n    var currentRowSpans = currentRow.find(\"span\");\n    currentRowSpans.filter(\".iconfopen\").removeClass(\"iconfopen\").addClass(\"iconfclosed\");\n    currentRowSpans.filter(\".arrow\").html('&#9658;');\n    rows.filter(\"[id^=row_\"+id+\"]\").hide(); // hide all children\n  } else { // we are SHOWING\n    // replace right arrow by down arrow for current row\n    var currentRowSpans = currentRow.find(\"span\");\n    currentRowSpans.filter(\".iconfclosed\").removeClass(\"iconfclosed\").addClass(\"iconfopen\");\n    currentRowSpans.filter(\".arrow\").html('&#9660;');\n    // replace down arrows by right arrows for child rows\n    var childRowsSpans = childRows.find(\"span\");\n    childRowsSpans.filter(\".iconfopen\").removeClass(\"iconfopen\").addClass(\"iconfclosed\");\n    childRowsSpans.filter(\".arrow\").html('&#9658;');\n    childRows.show(); //show all children\n  }\n  updateStripes();\n}\n\n\nfunction toggleInherit(id)\n{\n  var rows = $('tr.inherit.'+id);\n  var img = $('tr.inherit_header.'+id+' img');\n  var src = $(img).attr('src');\n  if (rows.filter(':first').is(':visible')===true) {\n    rows.css('display','none');\n    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');\n  } else {\n    rows.css('display','table-row'); // using show() causes jump in firefox\n    $(img).attr('src',src.substring(0,src.length-10)+'open.png');\n  }\n}\n\n"
  },
  {
    "path": "website/static/docs/en/html/fasttext_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/fasttext.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('fasttext_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"fasttext_8h_source.html\">fasttext.h</a>&quot;</code><br />\n<code>#include &lt;math.h&gt;</code><br />\n<code>#include &lt;iostream&gt;</code><br />\n<code>#include &lt;sstream&gt;</code><br />\n<code>#include &lt;iomanip&gt;</code><br />\n<code>#include &lt;thread&gt;</code><br />\n<code>#include &lt;string&gt;</code><br />\n<code>#include &lt;vector&gt;</code><br />\n<code>#include &lt;queue&gt;</code><br />\n<code>#include &lt;algorithm&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"fasttext_8cc.html\">fasttext.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/fasttext_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/fasttext.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\"\n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('fasttext_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\"\n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#define-members\">Macros</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;time.h&gt;</code><br />\n<code>#include &lt;atomic&gt;</code><br />\n<code>#include &lt;memory&gt;</code><br />\n<code>#include &lt;set&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"args_8h_source.html\">args.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"dictionary_8h_source.html\">dictionary.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"qmatrix_8h_source.html\">qmatrix.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"model_8h_source.html\">model.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"utils_8h_source.html\">utils.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&quot;</code><br />\n</div>\n<p><a href=\"fasttext_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"define-members\"></a>\nMacros</h2></td></tr>\n<tr class=\"memitem:a74036bd705019bb33643e90202bf343e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"fasttext_8h.html#a74036bd705019bb33643e90202bf343e\">FASTTEXT_VERSION</a>&#160;&#160;&#160;11 /* Version 1a */</td></tr>\n<tr class=\"separator:a74036bd705019bb33643e90202bf343e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af5de14588083ef853a2863c8d625ee24\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"fasttext_8h.html#af5de14588083ef853a2863c8d625ee24\">FASTTEXT_FILEFORMAT_MAGIC_INT32</a>&#160;&#160;&#160;793712314</td></tr>\n<tr class=\"separator:af5de14588083ef853a2863c8d625ee24\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Macro Definition Documentation</h2>\n<a id=\"af5de14588083ef853a2863c8d625ee24\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af5de14588083ef853a2863c8d625ee24\">&#9670;&nbsp;</a></span>FASTTEXT_FILEFORMAT_MAGIC_INT32</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">#define FASTTEXT_FILEFORMAT_MAGIC_INT32&#160;&#160;&#160;793712314</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a74036bd705019bb33643e90202bf343e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a74036bd705019bb33643e90202bf343e\">&#9670;&nbsp;</a></span>FASTTEXT_VERSION</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">#define FASTTEXT_VERSION&#160;&#160;&#160;11 /* Version 1a */</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n<p>Copyright (c) 2016-present, Facebook, Inc. All rights reserved.</p>\n<p>This source code is licensed under the MIT-style license found in the LICENSE file in the root directory of this source tree. </p>\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"fasttext_8h.html\">fasttext.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/fasttext_8h.js",
    "content": "var fasttext_8h =\n[\n    [ \"FastText\", \"classfasttext_1_1FastText.html\", \"classfasttext_1_1FastText\" ],\n    [ \"FASTTEXT_FILEFORMAT_MAGIC_INT32\", \"fasttext_8h.html#af5de14588083ef853a2863c8d625ee24\", null ],\n    [ \"FASTTEXT_VERSION\", \"fasttext_8h.html#a74036bd705019bb33643e90202bf343e\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/fasttext_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/fasttext.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('fasttext_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"fasttext_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_FASTTEXT_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_FASTTEXT_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\"><a class=\"line\" href=\"fasttext_8h.html#a74036bd705019bb33643e90202bf343e\">   13</a></span>&#160;<span class=\"preprocessor\">#define FASTTEXT_VERSION 11 </span><span class=\"comment\">/* Version 1a */</span><span class=\"preprocessor\"></span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\"><a class=\"line\" href=\"fasttext_8h.html#af5de14588083ef853a2863c8d625ee24\">   14</a></span>&#160;<span class=\"preprocessor\">#define FASTTEXT_FILEFORMAT_MAGIC_INT32 793712314</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;</div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;<span class=\"preprocessor\">#include &lt;time.h&gt;</span></div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;</div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;<span class=\"preprocessor\">#include &lt;atomic&gt;</span></div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;<span class=\"preprocessor\">#include &lt;memory&gt;</span></div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;<span class=\"preprocessor\">#include &lt;set&gt;</span></div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"args_8h.html\">args.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"dictionary_8h.html\">dictionary.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"matrix_8h.html\">matrix.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"qmatrix_8h.html\">qmatrix.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\">   26</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"model_8h.html\">model.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\">   27</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\">   28</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"utils_8h.html\">utils.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\">   29</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"vector_8h.html\">vector.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\">   30</span>&#160;</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\">   31</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\">   32</span>&#160;</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html\">   33</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1FastText.html\">FastText</a> {</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\">   34</span>&#160;  <span class=\"keyword\">private</span>:</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">   35</a></span>&#160;    std::shared_ptr&lt;Args&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">args_</a>;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">   36</a></span>&#160;    std::shared_ptr&lt;Dictionary&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">dict_</a>;</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\">   37</span>&#160;</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">   38</a></span>&#160;    std::shared_ptr&lt;Matrix&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">input_</a>;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">   39</a></span>&#160;    std::shared_ptr&lt;Matrix&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">output_</a>;</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\">   40</span>&#160;</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">   41</a></span>&#160;    std::shared_ptr&lt;QMatrix&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">qinput_</a>;</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">   42</a></span>&#160;    std::shared_ptr&lt;QMatrix&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">qoutput_</a>;</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\">   43</span>&#160;</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">   44</a></span>&#160;    std::shared_ptr&lt;Model&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">model_</a>;</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\">   45</span>&#160;</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">   46</a></span>&#160;    std::atomic&lt;int64_t&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">tokenCount</a>;</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">   47</a></span>&#160;    clock_t <a class=\"code\" href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">start</a>;</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\">signModel</a>(std::ostream&amp;);</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\">   49</span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\">checkModel</a>(std::istream&amp;);</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\">   50</span>&#160;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">   51</a></span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">quant_</a>;</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\">   52</span>&#160;</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\">   53</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\">FastText</a>();</div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\">   55</span>&#160;</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\">   56</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\">getVector</a>(<a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <span class=\"keyword\">const</span> std::string&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\">saveVectors</a>();</div><div class=\"line\"><a name=\"l00058\"></a><span class=\"lineno\">   58</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\">saveOutput</a>();</div><div class=\"line\"><a name=\"l00059\"></a><span class=\"lineno\">   59</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\">saveModel</a>();</div><div class=\"line\"><a name=\"l00060\"></a><span class=\"lineno\">   60</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">loadModel</a>(std::istream&amp;);</div><div class=\"line\"><a name=\"l00061\"></a><span class=\"lineno\">   61</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">loadModel</a>(<span class=\"keyword\">const</span> std::string&amp;);</div><div class=\"line\"><a name=\"l00062\"></a><span class=\"lineno\">   62</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\">printInfo</a>(<a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00063\"></a><span class=\"lineno\">   63</span>&#160;</div><div class=\"line\"><a name=\"l00064\"></a><span class=\"lineno\">   64</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\">supervised</a>(<a class=\"code\" href=\"classfasttext_1_1Model.html\">Model</a>&amp;, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;,</div><div class=\"line\"><a name=\"l00065\"></a><span class=\"lineno\">   65</span>&#160;                    <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00066\"></a><span class=\"lineno\">   66</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\">cbow</a>(<a class=\"code\" href=\"classfasttext_1_1Model.html\">Model</a>&amp;, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00067\"></a><span class=\"lineno\">   67</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\">skipgram</a>(<a class=\"code\" href=\"classfasttext_1_1Model.html\">Model</a>&amp;, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>, <span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00068\"></a><span class=\"lineno\">   68</span>&#160;    std::vector&lt;int32_t&gt; <a class=\"code\" href=\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\">selectEmbeddings</a>(int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00069\"></a><span class=\"lineno\">   69</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\">quantize</a>(std::shared_ptr&lt;Args&gt;);</div><div class=\"line\"><a name=\"l00070\"></a><span class=\"lineno\">   70</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\">test</a>(std::istream&amp;, int32_t);</div><div class=\"line\"><a name=\"l00071\"></a><span class=\"lineno\">   71</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\">predict</a>(std::istream&amp;, int32_t, <span class=\"keywordtype\">bool</span>);</div><div class=\"line\"><a name=\"l00072\"></a><span class=\"lineno\">   72</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\">predict</a>(</div><div class=\"line\"><a name=\"l00073\"></a><span class=\"lineno\">   73</span>&#160;        std::istream&amp;,</div><div class=\"line\"><a name=\"l00074\"></a><span class=\"lineno\">   74</span>&#160;        int32_t,</div><div class=\"line\"><a name=\"l00075\"></a><span class=\"lineno\">   75</span>&#160;        std::vector&lt;std::pair&lt;real, std::string&gt;&gt;&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00076\"></a><span class=\"lineno\">   76</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">wordVectors</a>();</div><div class=\"line\"><a name=\"l00077\"></a><span class=\"lineno\">   77</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\">sentenceVectors</a>();</div><div class=\"line\"><a name=\"l00078\"></a><span class=\"lineno\">   78</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\">ngramVectors</a>(std::string);</div><div class=\"line\"><a name=\"l00079\"></a><span class=\"lineno\">   79</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\">textVectors</a>();</div><div class=\"line\"><a name=\"l00080\"></a><span class=\"lineno\">   80</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\">printWordVectors</a>();</div><div class=\"line\"><a name=\"l00081\"></a><span class=\"lineno\">   81</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\">printSentenceVectors</a>();</div><div class=\"line\"><a name=\"l00082\"></a><span class=\"lineno\">   82</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\">precomputeWordVectors</a>(<a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;);</div><div class=\"line\"><a name=\"l00083\"></a><span class=\"lineno\">   83</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\">findNN</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;, <span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, int32_t,</div><div class=\"line\"><a name=\"l00084\"></a><span class=\"lineno\">   84</span>&#160;                <span class=\"keyword\">const</span> std::set&lt;std::string&gt;&amp;);</div><div class=\"line\"><a name=\"l00085\"></a><span class=\"lineno\">   85</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\">nn</a>(int32_t);</div><div class=\"line\"><a name=\"l00086\"></a><span class=\"lineno\">   86</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\">analogies</a>(int32_t);</div><div class=\"line\"><a name=\"l00087\"></a><span class=\"lineno\">   87</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\">trainThread</a>(int32_t);</div><div class=\"line\"><a name=\"l00088\"></a><span class=\"lineno\">   88</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\">train</a>(std::shared_ptr&lt;Args&gt;);</div><div class=\"line\"><a name=\"l00089\"></a><span class=\"lineno\">   89</span>&#160;</div><div class=\"line\"><a name=\"l00090\"></a><span class=\"lineno\">   90</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\">loadVectors</a>(std::string);</div><div class=\"line\"><a name=\"l00091\"></a><span class=\"lineno\">   91</span>&#160;    <span class=\"keywordtype\">int</span> <a class=\"code\" href=\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\">getDimension</a>() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00092\"></a><span class=\"lineno\">   92</span>&#160;};</div><div class=\"line\"><a name=\"l00093\"></a><span class=\"lineno\">   93</span>&#160;</div><div class=\"line\"><a name=\"l00094\"></a><span class=\"lineno\">   94</span>&#160;}</div><div class=\"line\"><a name=\"l00095\"></a><span class=\"lineno\">   95</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1FastText_html_aadb72a552ff01b6d6efe9b161ad8dd49\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\">fasttext::FastText::textVectors</a></div><div class=\"ttdeci\">void textVectors()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:402</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a4b599ce1e4fa1dedae97bd7fad225cb8\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">fasttext::FastText::model_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Model &gt; model_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:44</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_af4d659c58cd72b67f5cc0cce2c1925cf\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\">fasttext::FastText::printSentenceVectors</a></div><div class=\"ttdeci\">void printSentenceVectors()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:422</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a3c56524cdccf6f9d23b75460bbea5d5f\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\">fasttext::FastText::supervised</a></div><div class=\"ttdeci\">void supervised(Model &amp;, real, const std::vector&lt; int32_t &gt; &amp;, const std::vector&lt; int32_t &gt; &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:257</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a3bc5bf68cf6e1f487fa57ddc750f2099\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\">fasttext::FastText::saveModel</a></div><div class=\"ttdeci\">void saveModel()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:93</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_ace850e40405e56ab488d32f25e5d3533\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\">fasttext::FastText::getVector</a></div><div class=\"ttdeci\">void getVector(Vector &amp;, const std::string &amp;) const</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:28</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a62a84e26a04b64eb35edfa110dd8dc32\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\">fasttext::FastText::ngramVectors</a></div><div class=\"ttdeci\">void ngramVectors(std::string)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:388</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html\">fasttext::FastText</a></div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:33</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a9e503be304e98ead00a2eaed3127f64a\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\">fasttext::FastText::loadVectors</a></div><div class=\"ttdeci\">void loadVectors(std::string)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:551</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_af34de232baec78782ede73041209dd7b\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">fasttext::FastText::tokenCount</a></div><div class=\"ttdeci\">std::atomic&lt; int64_t &gt; tokenCount</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:46</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a62ad59060370a16588e407ce3ffebfaa\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">fasttext::FastText::qoutput_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; QMatrix &gt; qoutput_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:42</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a5c8825c522415d89478a54ecf28642c9\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\">fasttext::FastText::findNN</a></div><div class=\"ttdeci\">void findNN(const Matrix &amp;, const Vector &amp;, int32_t, const std::set&lt; std::string &gt; &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:443</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a592036d3a8ae545637db4864dbe5274f\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\">fasttext::FastText::cbow</a></div><div class=\"ttdeci\">void cbow(Model &amp;, real, const std::vector&lt; int32_t &gt; &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:266</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a06fbfe68049942cab56eb85ebb2ca4d9\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\">fasttext::FastText::selectEmbeddings</a></div><div class=\"ttdeci\">std::vector&lt; int32_t &gt; selectEmbeddings(int32_t) const</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:194</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a5509f491ca6c2fa3e57bc3443536f885\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\">fasttext::FastText::nn</a></div><div class=\"ttdeci\">void nn(int32_t)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:467</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a32a93e0bc4389be11aa4be0990a9e010\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\">fasttext::FastText::getDimension</a></div><div class=\"ttdeci\">int getDimension() const</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:645</div></div>\n<div class=\"ttc\" id=\"model_8h_html\"><div class=\"ttname\"><a href=\"model_8h.html\">model.h</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a3f1c81aafc45ad71824b332f5cb577d5\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\">fasttext::FastText::FastText</a></div><div class=\"ttdeci\">FastText()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:26</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></div><div class=\"ttdef\"><b>Definition:</b> vector.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a1b6d83563616330a64d6db4921e835f1\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\">fasttext::FastText::trainThread</a></div><div class=\"ttdeci\">void trainThread(int32_t)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:511</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a34e7fade7f758870ffcd28015555ba74\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\">fasttext::FastText::analogies</a></div><div class=\"ttdeci\">void analogies(int32_t)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:483</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_af13c347cb7dde5fea3b0122f029a0b5b\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\">fasttext::FastText::test</a></div><div class=\"ttdeci\">void test(std::istream &amp;, int32_t)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:297</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a7a874ab83984dc05dca56a74edae25c1\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\">fasttext::FastText::checkModel</a></div><div class=\"ttdeci\">bool checkModel(std::istream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:72</div></div>\n<div class=\"ttc\" id=\"utils_8h_html\"><div class=\"ttname\"><a href=\"utils_8h.html\">utils.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_ae0e6922404294aabbb9d6322e6f464cd\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">fasttext::FastText::loadModel</a></div><div class=\"ttdeci\">void loadModel(std::istream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:140</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a70fdc2b9419ebdb3a3adb582b713ecce\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">fasttext::FastText::start</a></div><div class=\"ttdeci\">clock_t start</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:47</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html\">fasttext::Model</a></div><div class=\"ttdef\"><b>Definition:</b> model.h:38</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_aeb75b28c20c01110cfcf807a518076c8\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">fasttext::FastText::quant_</a></div><div class=\"ttdeci\">bool quant_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:51</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a74e01ba3737bd625bf0602fb808b1501\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\">fasttext::FastText::printWordVectors</a></div><div class=\"ttdeci\">void printWordVectors()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:418</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a7430c17374a28e7f1fd50a9c86ac659b\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\">fasttext::FastText::train</a></div><div class=\"ttdeci\">void train(std::shared_ptr&lt; Args &gt;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:591</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a64fc781f7e3e60a3794562a03477398f\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\">fasttext::FastText::saveVectors</a></div><div class=\"ttdeci\">void saveVectors()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:39</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_adbe7666386c0d7cb9017fa641e391b9f\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\">fasttext::FastText::saveOutput</a></div><div class=\"ttdeci\">void saveOutput()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:55</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a39efb50f61237890cbf2e30b7a516618\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\">fasttext::FastText::sentenceVectors</a></div><div class=\"ttdeci\">void sentenceVectors()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:368</div></div>\n<div class=\"ttc\" id=\"matrix_8h_html\"><div class=\"ttname\"><a href=\"matrix_8h.html\">matrix.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a831dff689fbc2af4f93c91ee1bde7e95\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\">fasttext::FastText::predict</a></div><div class=\"ttdeci\">void predict(std::istream &amp;, int32_t, bool)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:338</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_aa4f1d5f2269feee25ae8119bc8e778c4\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">fasttext::FastText::qinput_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; QMatrix &gt; qinput_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:41</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a48ba03fda3c2cceef301b24b5a2c2b38\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">fasttext::FastText::output_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Matrix &gt; output_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:39</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_aa25683f12eed057c159fd11fd3a55efb\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">fasttext::FastText::input_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Matrix &gt; input_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:38</div></div>\n<div class=\"ttc\" id=\"vector_8h_html\"><div class=\"ttname\"><a href=\"vector_8h.html\">vector.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_adb5bfe8d98e11ae5dd3498f9ee4829ee\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">fasttext::FastText::args_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Args &gt; args_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:35</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_ace82dc820d98f504af16b8b8c501a6f4\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\">fasttext::FastText::precomputeWordVectors</a></div><div class=\"ttdeci\">void precomputeWordVectors(Matrix &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:430</div></div>\n<div class=\"ttc\" id=\"args_8h_html\"><div class=\"ttname\"><a href=\"args_8h.html\">args.h</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></div><div class=\"ttdef\"><b>Definition:</b> matrix.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_aa1855802a2a1f2f1398fdad79f73b66a\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\">fasttext::FastText::skipgram</a></div><div class=\"ttdeci\">void skipgram(Model &amp;, real, const std::vector&lt; int32_t &gt; &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:283</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_adb757902284f53288aa41a5ae45e001f\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\">fasttext::FastText::printInfo</a></div><div class=\"ttdeci\">void printInfo(real, real)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:178</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a1a5d918e595e00a8ea7b9bc5ac8f6c35\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">fasttext::FastText::wordVectors</a></div><div class=\"ttdeci\">void wordVectors()</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:359</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_a2f5648d532a7ff4f46ac425197082422\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">fasttext::FastText::dict_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Dictionary &gt; dict_</div><div class=\"ttdef\"><b>Definition:</b> fasttext.h:36</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_aa01f053de2afa22056c594d96988c1ad\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\">fasttext::FastText::quantize</a></div><div class=\"ttdeci\">void quantize(std::shared_ptr&lt; Args &gt;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:208</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1FastText_html_afe7b85dd466c4ccef45e4c590edae585\"><div class=\"ttname\"><a href=\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\">fasttext::FastText::signModel</a></div><div class=\"ttdeci\">void signModel(std::ostream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> fasttext.cc:86</div></div>\n<div class=\"ttc\" id=\"dictionary_8h_html\"><div class=\"ttname\"><a href=\"dictionary_8h.html\">dictionary.h</a></div></div>\n<div class=\"ttc\" id=\"qmatrix_8h_html\"><div class=\"ttname\"><a href=\"qmatrix_8h.html\">qmatrix.h</a></div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"fasttext_8h.html\">fasttext.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/files.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: File List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('files.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">File List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all files with brief descriptions:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:toggleLevel(1);\">1</span><span onclick=\"javascript:toggleLevel(2);\">2</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_0_\" class=\"arrow\" onclick=\"toggleFolder('0_')\">&#9660;</span><span id=\"img_0_\" class=\"iconfopen\" onclick=\"toggleFolder('0_')\">&#160;</span><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\" target=\"_self\">src</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"args_8cc.html\" target=\"_self\">args.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"args_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"args_8h.html\" target=\"_self\">args.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"dictionary_8cc.html\" target=\"_self\">dictionary.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_3_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"dictionary_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"dictionary_8h.html\" target=\"_self\">dictionary.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_4_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"fasttext_8cc.html\" target=\"_self\">fasttext.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_5_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"fasttext_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"fasttext_8h.html\" target=\"_self\">fasttext.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_6_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"main_8cc.html\" target=\"_self\">main.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_7_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"matrix_8cc.html\" target=\"_self\">matrix.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_8_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"matrix_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"matrix_8h.html\" target=\"_self\">matrix.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_9_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"model_8cc.html\" target=\"_self\">model.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_10_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"model_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"model_8h.html\" target=\"_self\">model.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_11_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"productquantizer_8cc.html\" target=\"_self\">productquantizer.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_12_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"productquantizer_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"productquantizer_8h.html\" target=\"_self\">productquantizer.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_13_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"qmatrix_8cc.html\" target=\"_self\">qmatrix.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_14_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"qmatrix_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"qmatrix_8h.html\" target=\"_self\">qmatrix.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_15_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"real_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"real_8h.html\" target=\"_self\">real.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_16_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"utils_8cc.html\" target=\"_self\">utils.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_17_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"utils_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"utils_8h.html\" target=\"_self\">utils.h</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_18_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"></span><a class=\"el\" href=\"vector_8cc.html\" target=\"_self\">vector.cc</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_19_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><a href=\"vector_8h_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"vector_8h.html\" target=\"_self\">vector.h</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/files.js",
    "content": "var files =\n[\n    [ \"src\", \"dir_68267d1309a1af8e8297ef4c3efbcdba.html\", \"dir_68267d1309a1af8e8297ef4c3efbcdba\" ]\n];"
  },
  {
    "path": "website/static/docs/en/html/functions.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_a\"></a>- a -</h3><ul>\n<li>add()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56\">fasttext::Dictionary</a>\n</li>\n<li>addcode()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\">fasttext::ProductQuantizer</a>\n</li>\n<li>addRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">fasttext::Vector</a>\n</li>\n<li>addToVector()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\">fasttext::QMatrix</a>\n</li>\n<li>addVector()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">fasttext::Vector</a>\n</li>\n<li>addWordNgrams()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\">fasttext::Dictionary</a>\n</li>\n<li>analogies()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\">fasttext::FastText</a>\n</li>\n<li>argmax()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\">fasttext::Vector</a>\n</li>\n<li>Args()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03\">fasttext::Args</a>\n</li>\n<li>args_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">fasttext::Dictionary</a>\n, <a class=\"el\" href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">fasttext::Model</a>\n</li>\n<li>assign_centroid()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\">fasttext::ProductQuantizer</a>\n</li>\n<li>at()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">fasttext::Matrix</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_0x7e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_0x7e.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_0x7e\"></a>- ~ -</h3><ul>\n<li>~Matrix()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\">fasttext::Matrix</a>\n</li>\n<li>~Model()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72\">fasttext::Model</a>\n</li>\n<li>~QMatrix()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\">fasttext::QMatrix</a>\n</li>\n<li>~Vector()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\">fasttext::Vector</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_b.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_b\"></a>- b -</h3><ul>\n<li>binary\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">fasttext::Node</a>\n</li>\n<li>binaryLogistic()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0\">fasttext::Model</a>\n</li>\n<li>BOW\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">fasttext::Dictionary</a>\n</li>\n<li>bucket\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">fasttext::Args</a>\n</li>\n<li>buildTree()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd\">fasttext::Model</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_c.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_c\"></a>- c -</h3><ul>\n<li>cbow()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\">fasttext::FastText</a>\n</li>\n<li>centroids_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">fasttext::ProductQuantizer</a>\n</li>\n<li>checkModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\">fasttext::FastText</a>\n</li>\n<li>codes\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">fasttext::Model</a>\n</li>\n<li>codes_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">fasttext::QMatrix</a>\n</li>\n<li>codesize_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">fasttext::QMatrix</a>\n</li>\n<li>comparePairs()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ac475c67452b62dd374b6253f99167816\">fasttext::Model</a>\n</li>\n<li>compute_code()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\">fasttext::ProductQuantizer</a>\n</li>\n<li>compute_codes()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\">fasttext::ProductQuantizer</a>\n</li>\n<li>computeHidden()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110\">fasttext::Model</a>\n</li>\n<li>computeOutputSoftmax()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6\">fasttext::Model</a>\n</li>\n<li>computeSubwords()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf\">fasttext::Dictionary</a>\n</li>\n<li>count\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">fasttext::entry</a>\n, <a class=\"el\" href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">fasttext::Node</a>\n</li>\n<li>cutoff\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">fasttext::Args</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_d.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_d\"></a>- d -</h3><ul>\n<li>data_\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">fasttext::Vector</a>\n</li>\n<li>dfs()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77\">fasttext::Model</a>\n</li>\n<li>dict_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">fasttext::FastText</a>\n</li>\n<li>Dictionary()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e\">fasttext::Dictionary</a>\n</li>\n<li>dim\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">fasttext::Args</a>\n</li>\n<li>dim_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">fasttext::ProductQuantizer</a>\n</li>\n<li>discard()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5\">fasttext::Dictionary</a>\n</li>\n<li>divideRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\">fasttext::Matrix</a>\n</li>\n<li>dotRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\">fasttext::QMatrix</a>\n</li>\n<li>dsub\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">fasttext::Args</a>\n</li>\n<li>dsub_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_dup.js",
    "content": "var functions_dup =\n[\n    [ \"a\", \"functions.html\", null ],\n    [ \"b\", \"functions_b.html\", null ],\n    [ \"c\", \"functions_c.html\", null ],\n    [ \"d\", \"functions_d.html\", null ],\n    [ \"e\", \"functions_e.html\", null ],\n    [ \"f\", \"functions_f.html\", null ],\n    [ \"g\", \"functions_g.html\", null ],\n    [ \"h\", \"functions_h.html\", null ],\n    [ \"i\", \"functions_i.html\", null ],\n    [ \"k\", \"functions_k.html\", null ],\n    [ \"l\", \"functions_l.html\", null ],\n    [ \"m\", \"functions_m.html\", null ],\n    [ \"n\", \"functions_n.html\", null ],\n    [ \"o\", \"functions_o.html\", null ],\n    [ \"p\", \"functions_p.html\", null ],\n    [ \"q\", \"functions_q.html\", null ],\n    [ \"r\", \"functions_r.html\", null ],\n    [ \"s\", \"functions_s.html\", null ],\n    [ \"t\", \"functions_t.html\", null ],\n    [ \"u\", \"functions_u.html\", null ],\n    [ \"v\", \"functions_v.html\", null ],\n    [ \"w\", \"functions_w.html\", null ],\n    [ \"z\", \"functions_z.html\", null ],\n    [ \"~\", \"functions_0x7e.html\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/functions_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_e.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_e\"></a>- e -</h3><ul>\n<li>EOS\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">fasttext::Dictionary</a>\n</li>\n<li>EOW\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">fasttext::Dictionary</a>\n</li>\n<li>epoch\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">fasttext::Args</a>\n</li>\n<li>eps_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">fasttext::ProductQuantizer</a>\n</li>\n<li>Estep()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_f.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_f\"></a>- f -</h3><ul>\n<li>FastText()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\">fasttext::FastText</a>\n</li>\n<li>find()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f\">fasttext::Dictionary</a>\n</li>\n<li>findKBest()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5\">fasttext::Model</a>\n</li>\n<li>findNN()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\">fasttext::FastText</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_func.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_func.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;\n\n<h3><a id=\"index_a\"></a>- a -</h3><ul>\n<li>add()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56\">fasttext::Dictionary</a>\n</li>\n<li>addcode()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\">fasttext::ProductQuantizer</a>\n</li>\n<li>addRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">fasttext::Vector</a>\n</li>\n<li>addToVector()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\">fasttext::QMatrix</a>\n</li>\n<li>addVector()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">fasttext::Vector</a>\n</li>\n<li>addWordNgrams()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\">fasttext::Dictionary</a>\n</li>\n<li>analogies()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\">fasttext::FastText</a>\n</li>\n<li>argmax()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\">fasttext::Vector</a>\n</li>\n<li>Args()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03\">fasttext::Args</a>\n</li>\n<li>assign_centroid()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\">fasttext::ProductQuantizer</a>\n</li>\n<li>at()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">fasttext::Matrix</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_b\"></a>- b -</h3><ul>\n<li>binaryLogistic()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0\">fasttext::Model</a>\n</li>\n<li>buildTree()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_c\"></a>- c -</h3><ul>\n<li>cbow()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\">fasttext::FastText</a>\n</li>\n<li>checkModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\">fasttext::FastText</a>\n</li>\n<li>comparePairs()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ac475c67452b62dd374b6253f99167816\">fasttext::Model</a>\n</li>\n<li>compute_code()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\">fasttext::ProductQuantizer</a>\n</li>\n<li>compute_codes()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\">fasttext::ProductQuantizer</a>\n</li>\n<li>computeHidden()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110\">fasttext::Model</a>\n</li>\n<li>computeOutputSoftmax()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6\">fasttext::Model</a>\n</li>\n<li>computeSubwords()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_d\"></a>- d -</h3><ul>\n<li>dfs()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77\">fasttext::Model</a>\n</li>\n<li>Dictionary()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e\">fasttext::Dictionary</a>\n</li>\n<li>discard()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5\">fasttext::Dictionary</a>\n</li>\n<li>divideRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\">fasttext::Matrix</a>\n</li>\n<li>dotRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\">fasttext::QMatrix</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_e\"></a>- e -</h3><ul>\n<li>Estep()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_f\"></a>- f -</h3><ul>\n<li>FastText()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\">fasttext::FastText</a>\n</li>\n<li>find()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f\">fasttext::Dictionary</a>\n</li>\n<li>findKBest()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5\">fasttext::Model</a>\n</li>\n<li>findNN()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\">fasttext::FastText</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_g\"></a>- g -</h3><ul>\n<li>get_centroids()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">fasttext::ProductQuantizer</a>\n</li>\n<li>getCounts()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f\">fasttext::Dictionary</a>\n</li>\n<li>getDimension()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\">fasttext::FastText</a>\n</li>\n<li>getId()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d\">fasttext::Dictionary</a>\n</li>\n<li>getLabel()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864\">fasttext::Dictionary</a>\n</li>\n<li>getLine()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543\">fasttext::Dictionary</a>\n</li>\n<li>getLoss()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1\">fasttext::Model</a>\n</li>\n<li>getM()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\">fasttext::QMatrix</a>\n</li>\n<li>getN()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\">fasttext::QMatrix</a>\n</li>\n<li>getNegative()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc\">fasttext::Model</a>\n</li>\n<li>getSubwords()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24\">fasttext::Dictionary</a>\n</li>\n<li>getType()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f\">fasttext::Dictionary</a>\n</li>\n<li>getVector()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\">fasttext::FastText</a>\n</li>\n<li>getWord()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_h\"></a>- h -</h3><ul>\n<li>hash()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0\">fasttext::Dictionary</a>\n</li>\n<li>hierarchicalSoftmax()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_i\"></a>- i -</h3><ul>\n<li>initLog()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07\">fasttext::Model</a>\n</li>\n<li>initNgrams()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1\">fasttext::Dictionary</a>\n</li>\n<li>initSigmoid()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780\">fasttext::Model</a>\n</li>\n<li>initTableDiscard()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e\">fasttext::Dictionary</a>\n</li>\n<li>initTableNegatives()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_k\"></a>- k -</h3><ul>\n<li>kmeans()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_l\"></a>- l -</h3><ul>\n<li>l2NormRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">fasttext::Matrix</a>\n</li>\n<li>load()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4\">fasttext::Args</a>\n, <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3\">fasttext::Dictionary</a>\n, <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\">fasttext::ProductQuantizer</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\">fasttext::QMatrix</a>\n</li>\n<li>loadModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">fasttext::FastText</a>\n</li>\n<li>loadVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\">fasttext::FastText</a>\n</li>\n<li>log()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_m\"></a>- m -</h3><ul>\n<li>Matrix()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">fasttext::Matrix</a>\n</li>\n<li>Model()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338\">fasttext::Model</a>\n</li>\n<li>MStep()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\">fasttext::ProductQuantizer</a>\n</li>\n<li>mul()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">fasttext::Vector</a>\n</li>\n<li>mulcode()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">fasttext::ProductQuantizer</a>\n</li>\n<li>multiplyRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\">fasttext::Matrix</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_n\"></a>- n -</h3><ul>\n<li>negativeSampling()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660\">fasttext::Model</a>\n</li>\n<li>ngramVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\">fasttext::FastText</a>\n</li>\n<li>nlabels()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895\">fasttext::Dictionary</a>\n</li>\n<li>nn()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\">fasttext::FastText</a>\n</li>\n<li>norm()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\">fasttext::Vector</a>\n</li>\n<li>ntokens()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972\">fasttext::Dictionary</a>\n</li>\n<li>nwords()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_o\"></a>- o -</h3><ul>\n<li>operator=()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\">fasttext::Matrix</a>\n</li>\n<li>operator[]()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">fasttext::Vector</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_p\"></a>- p -</h3><ul>\n<li>parseArgs()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765\">fasttext::Args</a>\n</li>\n<li>precomputeWordVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\">fasttext::FastText</a>\n</li>\n<li>predict()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86\">fasttext::Model</a>\n</li>\n<li>printBasicHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e\">fasttext::Args</a>\n</li>\n<li>printDictionaryHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe\">fasttext::Args</a>\n</li>\n<li>printHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6\">fasttext::Args</a>\n</li>\n<li>printInfo()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\">fasttext::FastText</a>\n</li>\n<li>printQuantizationHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd\">fasttext::Args</a>\n</li>\n<li>printSentenceVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\">fasttext::FastText</a>\n</li>\n<li>printTrainingHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7\">fasttext::Args</a>\n</li>\n<li>printWordVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\">fasttext::FastText</a>\n</li>\n<li>ProductQuantizer()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">fasttext::ProductQuantizer</a>\n</li>\n<li>prune()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_q\"></a>- q -</h3><ul>\n<li>QMatrix()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">fasttext::QMatrix</a>\n</li>\n<li>quantize()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\">fasttext::QMatrix</a>\n</li>\n<li>quantizeNorm()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\">fasttext::QMatrix</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_r\"></a>- r -</h3><ul>\n<li>readFromFile()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136\">fasttext::Dictionary</a>\n</li>\n<li>readWord()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_s\"></a>- s -</h3><ul>\n<li>save()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392\">fasttext::Args</a>\n, <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b\">fasttext::Dictionary</a>\n, <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\">fasttext::ProductQuantizer</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\">fasttext::QMatrix</a>\n</li>\n<li>saveModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\">fasttext::FastText</a>\n</li>\n<li>saveOutput()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\">fasttext::FastText</a>\n</li>\n<li>saveVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\">fasttext::FastText</a>\n</li>\n<li>selectEmbeddings()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\">fasttext::FastText</a>\n</li>\n<li>sentenceVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\">fasttext::FastText</a>\n</li>\n<li>setQuantizePointer()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713\">fasttext::Model</a>\n</li>\n<li>setTargetCounts()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b\">fasttext::Model</a>\n</li>\n<li>sigmoid()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf\">fasttext::Model</a>\n</li>\n<li>signModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\">fasttext::FastText</a>\n</li>\n<li>size()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\">fasttext::Vector</a>\n</li>\n<li>skipgram()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\">fasttext::FastText</a>\n</li>\n<li>softmax()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e\">fasttext::Model</a>\n</li>\n<li>supervised()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\">fasttext::FastText</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_t\"></a>- t -</h3><ul>\n<li>test()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\">fasttext::FastText</a>\n</li>\n<li>textVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\">fasttext::FastText</a>\n</li>\n<li>threshold()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1\">fasttext::Dictionary</a>\n</li>\n<li>train()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\">fasttext::ProductQuantizer</a>\n</li>\n<li>trainThread()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\">fasttext::FastText</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_u\"></a>- u -</h3><ul>\n<li>uniform()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\">fasttext::Matrix</a>\n</li>\n<li>update()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_v\"></a>- v -</h3><ul>\n<li>Vector()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\">fasttext::Vector</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_w\"></a>- w -</h3><ul>\n<li>wordVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">fasttext::FastText</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_z\"></a>- z -</h3><ul>\n<li>zero()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\">fasttext::Vector</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_0x7e\"></a>- ~ -</h3><ul>\n<li>~Matrix()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\">fasttext::Matrix</a>\n</li>\n<li>~Model()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72\">fasttext::Model</a>\n</li>\n<li>~QMatrix()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\">fasttext::QMatrix</a>\n</li>\n<li>~Vector()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\">fasttext::Vector</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_g.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_g\"></a>- g -</h3><ul>\n<li>get_centroids()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">fasttext::ProductQuantizer</a>\n</li>\n<li>getCounts()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f\">fasttext::Dictionary</a>\n</li>\n<li>getDimension()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\">fasttext::FastText</a>\n</li>\n<li>getId()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d\">fasttext::Dictionary</a>\n</li>\n<li>getLabel()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864\">fasttext::Dictionary</a>\n</li>\n<li>getLine()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659\">fasttext::Dictionary</a>\n</li>\n<li>getLoss()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1\">fasttext::Model</a>\n</li>\n<li>getM()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\">fasttext::QMatrix</a>\n</li>\n<li>getN()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\">fasttext::QMatrix</a>\n</li>\n<li>getNegative()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc\">fasttext::Model</a>\n</li>\n<li>getSubwords()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130\">fasttext::Dictionary</a>\n</li>\n<li>getType()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448\">fasttext::Dictionary</a>\n</li>\n<li>getVector()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\">fasttext::FastText</a>\n</li>\n<li>getWord()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8\">fasttext::Dictionary</a>\n</li>\n<li>grad_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">fasttext::Model</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_h\"></a>- h -</h3><ul>\n<li>hash()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0\">fasttext::Dictionary</a>\n</li>\n<li>hidden_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">fasttext::Model</a>\n</li>\n<li>hierarchicalSoftmax()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51\">fasttext::Model</a>\n</li>\n<li>hsz_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">fasttext::Model</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_i.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_i.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_i\"></a>- i -</h3><ul>\n<li>initLog()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07\">fasttext::Model</a>\n</li>\n<li>initNgrams()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1\">fasttext::Dictionary</a>\n</li>\n<li>initSigmoid()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780\">fasttext::Model</a>\n</li>\n<li>initTableDiscard()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e\">fasttext::Dictionary</a>\n</li>\n<li>initTableNegatives()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c\">fasttext::Model</a>\n</li>\n<li>input\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">fasttext::Args</a>\n</li>\n<li>input_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">fasttext::FastText</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_k.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_k.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_k\"></a>- k -</h3><ul>\n<li>kmeans()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\">fasttext::ProductQuantizer</a>\n</li>\n<li>ksub_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_l.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_l.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_l\"></a>- l -</h3><ul>\n<li>l2NormRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">fasttext::Matrix</a>\n</li>\n<li>label\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">fasttext::Args</a>\n</li>\n<li>lastdsub_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">fasttext::ProductQuantizer</a>\n</li>\n<li>left\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">fasttext::Node</a>\n</li>\n<li>load()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4\">fasttext::Args</a>\n, <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3\">fasttext::Dictionary</a>\n, <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\">fasttext::ProductQuantizer</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\">fasttext::QMatrix</a>\n</li>\n<li>loadModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\">fasttext::FastText</a>\n</li>\n<li>loadVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\">fasttext::FastText</a>\n</li>\n<li>log()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816\">fasttext::Model</a>\n</li>\n<li>loss\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">fasttext::Args</a>\n</li>\n<li>loss_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">fasttext::Model</a>\n</li>\n<li>lr\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">fasttext::Args</a>\n</li>\n<li>lrUpdateRate\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">fasttext::Args</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_m.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_m.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_m\"></a>- m -</h3><ul>\n<li>m_\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">fasttext::QMatrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">fasttext::Vector</a>\n</li>\n<li>Matrix()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">fasttext::Matrix</a>\n</li>\n<li>MAX_LINE_SIZE\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933\">fasttext::Dictionary</a>\n</li>\n<li>max_points_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">fasttext::ProductQuantizer</a>\n</li>\n<li>max_points_per_cluster_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">fasttext::ProductQuantizer</a>\n</li>\n<li>MAX_VOCAB_SIZE\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7\">fasttext::Dictionary</a>\n</li>\n<li>maxn\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">fasttext::Args</a>\n</li>\n<li>minCount\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">fasttext::Args</a>\n</li>\n<li>minCountLabel\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">fasttext::Args</a>\n</li>\n<li>minn\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">fasttext::Args</a>\n</li>\n<li>model\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">fasttext::Args</a>\n</li>\n<li>Model()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338\">fasttext::Model</a>\n</li>\n<li>model_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">fasttext::FastText</a>\n</li>\n<li>MStep()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\">fasttext::ProductQuantizer</a>\n</li>\n<li>mul()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">fasttext::Vector</a>\n</li>\n<li>mulcode()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">fasttext::ProductQuantizer</a>\n</li>\n<li>multiplyRow()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\">fasttext::Matrix</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_n.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_n.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_n\"></a>- n -</h3><ul>\n<li>n_\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">fasttext::QMatrix</a>\n</li>\n<li>nbits_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">fasttext::ProductQuantizer</a>\n</li>\n<li>neg\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">fasttext::Args</a>\n</li>\n<li>NEGATIVE_TABLE_SIZE\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c\">fasttext::Model</a>\n</li>\n<li>negatives\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">fasttext::Model</a>\n</li>\n<li>negativeSampling()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660\">fasttext::Model</a>\n</li>\n<li>negpos\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">fasttext::Model</a>\n</li>\n<li>nexamples_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">fasttext::Model</a>\n</li>\n<li>ngramVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\">fasttext::FastText</a>\n</li>\n<li>niter_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">fasttext::ProductQuantizer</a>\n</li>\n<li>nlabels()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895\">fasttext::Dictionary</a>\n</li>\n<li>nlabels_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">fasttext::Dictionary</a>\n</li>\n<li>nn()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\">fasttext::FastText</a>\n</li>\n<li>norm()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\">fasttext::Vector</a>\n</li>\n<li>norm_codes_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">fasttext::QMatrix</a>\n</li>\n<li>npq_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">fasttext::QMatrix</a>\n</li>\n<li>nsubq_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">fasttext::ProductQuantizer</a>\n</li>\n<li>ntokens()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972\">fasttext::Dictionary</a>\n</li>\n<li>ntokens_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">fasttext::Dictionary</a>\n</li>\n<li>nwords()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d\">fasttext::Dictionary</a>\n</li>\n<li>nwords_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">fasttext::Dictionary</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_o.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_o.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_o\"></a>- o -</h3><ul>\n<li>operator=()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\">fasttext::Matrix</a>\n</li>\n<li>operator[]()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">fasttext::Vector</a>\n</li>\n<li>osz_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">fasttext::Model</a>\n</li>\n<li>output\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">fasttext::Args</a>\n</li>\n<li>output_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">fasttext::Model</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_p.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_p.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_p\"></a>- p -</h3><ul>\n<li>parent\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">fasttext::Node</a>\n</li>\n<li>parseArgs()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765\">fasttext::Args</a>\n</li>\n<li>paths\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">fasttext::Model</a>\n</li>\n<li>pdiscard_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">fasttext::Dictionary</a>\n</li>\n<li>pq_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">fasttext::QMatrix</a>\n</li>\n<li>precomputeWordVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\">fasttext::FastText</a>\n</li>\n<li>predict()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86\">fasttext::Model</a>\n</li>\n<li>pretrainedVectors\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">fasttext::Args</a>\n</li>\n<li>printBasicHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e\">fasttext::Args</a>\n</li>\n<li>printDictionaryHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe\">fasttext::Args</a>\n</li>\n<li>printHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6\">fasttext::Args</a>\n</li>\n<li>printInfo()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\">fasttext::FastText</a>\n</li>\n<li>printQuantizationHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd\">fasttext::Args</a>\n</li>\n<li>printSentenceVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\">fasttext::FastText</a>\n</li>\n<li>printTrainingHelp()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7\">fasttext::Args</a>\n</li>\n<li>printWordVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\">fasttext::FastText</a>\n</li>\n<li>ProductQuantizer()\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">fasttext::ProductQuantizer</a>\n</li>\n<li>prune()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01\">fasttext::Dictionary</a>\n</li>\n<li>pruneidx_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">fasttext::Dictionary</a>\n</li>\n<li>pruneidx_size_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\">fasttext::Dictionary</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_q.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_q.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_q\"></a>- q -</h3><ul>\n<li>qinput_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">fasttext::FastText</a>\n</li>\n<li>QMatrix()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">fasttext::QMatrix</a>\n</li>\n<li>qnorm\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">fasttext::Args</a>\n</li>\n<li>qnorm_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">fasttext::QMatrix</a>\n</li>\n<li>qout\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">fasttext::Args</a>\n</li>\n<li>qoutput_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">fasttext::FastText</a>\n</li>\n<li>quant_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">fasttext::Model</a>\n</li>\n<li>quantize()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\">fasttext::QMatrix</a>\n</li>\n<li>quantizeNorm()\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\">fasttext::QMatrix</a>\n</li>\n<li>qwi_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">fasttext::Model</a>\n</li>\n<li>qwo_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">fasttext::Model</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_r.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_r.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_r\"></a>- r -</h3><ul>\n<li>readFromFile()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136\">fasttext::Dictionary</a>\n</li>\n<li>readWord()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d\">fasttext::Dictionary</a>\n</li>\n<li>retrain\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">fasttext::Args</a>\n</li>\n<li>right\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">fasttext::Node</a>\n</li>\n<li>rng\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">fasttext::Model</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_s.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_s.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_s\"></a>- s -</h3><ul>\n<li>save()\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392\">fasttext::Args</a>\n, <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b\">fasttext::Dictionary</a>\n, <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\">fasttext::ProductQuantizer</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\">fasttext::QMatrix</a>\n</li>\n<li>saveModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\">fasttext::FastText</a>\n</li>\n<li>saveOutput\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">fasttext::Args</a>\n, <a class=\"el\" href=\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\">fasttext::FastText</a>\n</li>\n<li>saveVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\">fasttext::FastText</a>\n</li>\n<li>seed_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">fasttext::ProductQuantizer</a>\n</li>\n<li>selectEmbeddings()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\">fasttext::FastText</a>\n</li>\n<li>sentenceVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\">fasttext::FastText</a>\n</li>\n<li>setQuantizePointer()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713\">fasttext::Model</a>\n</li>\n<li>setTargetCounts()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b\">fasttext::Model</a>\n</li>\n<li>sigmoid()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf\">fasttext::Model</a>\n</li>\n<li>signModel()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\">fasttext::FastText</a>\n</li>\n<li>size()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\">fasttext::Vector</a>\n</li>\n<li>size_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">fasttext::Dictionary</a>\n</li>\n<li>skipgram()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\">fasttext::FastText</a>\n</li>\n<li>softmax()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e\">fasttext::Model</a>\n</li>\n<li>start\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">fasttext::FastText</a>\n</li>\n<li>subwords\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">fasttext::entry</a>\n</li>\n<li>supervised()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\">fasttext::FastText</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_t.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_t.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_t\"></a>- t -</h3><ul>\n<li>t\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">fasttext::Args</a>\n</li>\n<li>t_log\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">fasttext::Model</a>\n</li>\n<li>t_sigmoid\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">fasttext::Model</a>\n</li>\n<li>test\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">fasttext::Args</a>\n, <a class=\"el\" href=\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\">fasttext::FastText</a>\n</li>\n<li>textVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\">fasttext::FastText</a>\n</li>\n<li>thread\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">fasttext::Args</a>\n</li>\n<li>threshold()\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1\">fasttext::Dictionary</a>\n</li>\n<li>tokenCount\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">fasttext::FastText</a>\n</li>\n<li>train()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\">fasttext::ProductQuantizer</a>\n</li>\n<li>trainThread()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\">fasttext::FastText</a>\n</li>\n<li>tree\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">fasttext::Model</a>\n</li>\n<li>type\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">fasttext::entry</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_u.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_u.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_u\"></a>- u -</h3><ul>\n<li>uniform()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\">fasttext::Matrix</a>\n</li>\n<li>update()\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b\">fasttext::Model</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_v.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_v.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_v\"></a>- v -</h3><ul>\n<li>Vector()\n: <a class=\"el\" href=\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\">fasttext::Vector</a>\n</li>\n<li>verbose\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">fasttext::Args</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_vars.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members - Variables</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_vars.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;\n\n<h3><a id=\"index_a\"></a>- a -</h3><ul>\n<li>args_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\">fasttext::Dictionary</a>\n, <a class=\"el\" href=\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_b\"></a>- b -</h3><ul>\n<li>binary\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">fasttext::Node</a>\n</li>\n<li>BOW\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec\">fasttext::Dictionary</a>\n</li>\n<li>bucket\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\">fasttext::Args</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_c\"></a>- c -</h3><ul>\n<li>centroids_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">fasttext::ProductQuantizer</a>\n</li>\n<li>codes\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">fasttext::Model</a>\n</li>\n<li>codes_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">fasttext::QMatrix</a>\n</li>\n<li>codesize_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">fasttext::QMatrix</a>\n</li>\n<li>count\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">fasttext::entry</a>\n, <a class=\"el\" href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">fasttext::Node</a>\n</li>\n<li>cutoff\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\">fasttext::Args</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_d\"></a>- d -</h3><ul>\n<li>data_\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">fasttext::Vector</a>\n</li>\n<li>dict_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\">fasttext::FastText</a>\n</li>\n<li>dim\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\">fasttext::Args</a>\n</li>\n<li>dim_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">fasttext::ProductQuantizer</a>\n</li>\n<li>dsub\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\">fasttext::Args</a>\n</li>\n<li>dsub_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_e\"></a>- e -</h3><ul>\n<li>EOS\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086\">fasttext::Dictionary</a>\n</li>\n<li>EOW\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b\">fasttext::Dictionary</a>\n</li>\n<li>epoch\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\">fasttext::Args</a>\n</li>\n<li>eps_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_g\"></a>- g -</h3><ul>\n<li>grad_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_h\"></a>- h -</h3><ul>\n<li>hidden_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">fasttext::Model</a>\n</li>\n<li>hsz_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_i\"></a>- i -</h3><ul>\n<li>input\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\">fasttext::Args</a>\n</li>\n<li>input_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\">fasttext::FastText</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_k\"></a>- k -</h3><ul>\n<li>ksub_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_l\"></a>- l -</h3><ul>\n<li>label\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\">fasttext::Args</a>\n</li>\n<li>lastdsub_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">fasttext::ProductQuantizer</a>\n</li>\n<li>left\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">fasttext::Node</a>\n</li>\n<li>loss\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\">fasttext::Args</a>\n</li>\n<li>loss_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">fasttext::Model</a>\n</li>\n<li>lr\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\">fasttext::Args</a>\n</li>\n<li>lrUpdateRate\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\">fasttext::Args</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_m\"></a>- m -</h3><ul>\n<li>m_\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">fasttext::QMatrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">fasttext::Vector</a>\n</li>\n<li>MAX_LINE_SIZE\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933\">fasttext::Dictionary</a>\n</li>\n<li>max_points_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">fasttext::ProductQuantizer</a>\n</li>\n<li>max_points_per_cluster_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">fasttext::ProductQuantizer</a>\n</li>\n<li>MAX_VOCAB_SIZE\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7\">fasttext::Dictionary</a>\n</li>\n<li>maxn\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\">fasttext::Args</a>\n</li>\n<li>minCount\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\">fasttext::Args</a>\n</li>\n<li>minCountLabel\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\">fasttext::Args</a>\n</li>\n<li>minn\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\">fasttext::Args</a>\n</li>\n<li>model\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\">fasttext::Args</a>\n</li>\n<li>model_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\">fasttext::FastText</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_n\"></a>- n -</h3><ul>\n<li>n_\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">fasttext::QMatrix</a>\n</li>\n<li>nbits_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">fasttext::ProductQuantizer</a>\n</li>\n<li>neg\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\">fasttext::Args</a>\n</li>\n<li>NEGATIVE_TABLE_SIZE\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c\">fasttext::Model</a>\n</li>\n<li>negatives\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">fasttext::Model</a>\n</li>\n<li>negpos\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">fasttext::Model</a>\n</li>\n<li>nexamples_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">fasttext::Model</a>\n</li>\n<li>niter_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">fasttext::ProductQuantizer</a>\n</li>\n<li>nlabels_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\">fasttext::Dictionary</a>\n</li>\n<li>norm_codes_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">fasttext::QMatrix</a>\n</li>\n<li>npq_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">fasttext::QMatrix</a>\n</li>\n<li>nsubq_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">fasttext::ProductQuantizer</a>\n</li>\n<li>ntokens_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\">fasttext::Dictionary</a>\n</li>\n<li>nwords_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_o\"></a>- o -</h3><ul>\n<li>osz_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">fasttext::Model</a>\n</li>\n<li>output\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\">fasttext::Args</a>\n</li>\n<li>output_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_p\"></a>- p -</h3><ul>\n<li>parent\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">fasttext::Node</a>\n</li>\n<li>paths\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">fasttext::Model</a>\n</li>\n<li>pdiscard_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\">fasttext::Dictionary</a>\n</li>\n<li>pq_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">fasttext::QMatrix</a>\n</li>\n<li>pretrainedVectors\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\">fasttext::Args</a>\n</li>\n<li>pruneidx_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\">fasttext::Dictionary</a>\n</li>\n<li>pruneidx_size_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\">fasttext::Dictionary</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_q\"></a>- q -</h3><ul>\n<li>qinput_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\">fasttext::FastText</a>\n</li>\n<li>qnorm\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\">fasttext::Args</a>\n</li>\n<li>qnorm_\n: <a class=\"el\" href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">fasttext::QMatrix</a>\n</li>\n<li>qout\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\">fasttext::Args</a>\n</li>\n<li>qoutput_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\">fasttext::FastText</a>\n</li>\n<li>quant_\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\">fasttext::FastText</a>\n, <a class=\"el\" href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">fasttext::Model</a>\n</li>\n<li>qwi_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">fasttext::Model</a>\n</li>\n<li>qwo_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">fasttext::Model</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_r\"></a>- r -</h3><ul>\n<li>retrain\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\">fasttext::Args</a>\n</li>\n<li>right\n: <a class=\"el\" href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">fasttext::Node</a>\n</li>\n<li>rng\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">fasttext::Model</a>\n, <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">fasttext::ProductQuantizer</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_s\"></a>- s -</h3><ul>\n<li>saveOutput\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\">fasttext::Args</a>\n</li>\n<li>seed_\n: <a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">fasttext::ProductQuantizer</a>\n</li>\n<li>size_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\">fasttext::Dictionary</a>\n</li>\n<li>start\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\">fasttext::FastText</a>\n</li>\n<li>subwords\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">fasttext::entry</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_t\"></a>- t -</h3><ul>\n<li>t\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\">fasttext::Args</a>\n</li>\n<li>t_log\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">fasttext::Model</a>\n</li>\n<li>t_sigmoid\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">fasttext::Model</a>\n</li>\n<li>test\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\">fasttext::Args</a>\n</li>\n<li>thread\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\">fasttext::Args</a>\n</li>\n<li>tokenCount\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\">fasttext::FastText</a>\n</li>\n<li>tree\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">fasttext::Model</a>\n</li>\n<li>type\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">fasttext::entry</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_v\"></a>- v -</h3><ul>\n<li>verbose\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\">fasttext::Args</a>\n</li>\n</ul>\n\n\n<h3><a id=\"index_w\"></a>- w -</h3><ul>\n<li>wi_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">fasttext::Model</a>\n</li>\n<li>wo_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">fasttext::Model</a>\n</li>\n<li>word\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">fasttext::entry</a>\n</li>\n<li>word2int_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">fasttext::Dictionary</a>\n</li>\n<li>wordNgrams\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">fasttext::Args</a>\n</li>\n<li>words_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">fasttext::Dictionary</a>\n</li>\n<li>ws\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">fasttext::Args</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_w.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_w.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_w\"></a>- w -</h3><ul>\n<li>wi_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">fasttext::Model</a>\n</li>\n<li>wo_\n: <a class=\"el\" href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">fasttext::Model</a>\n</li>\n<li>word\n: <a class=\"el\" href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">fasttext::entry</a>\n</li>\n<li>word2int_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\">fasttext::Dictionary</a>\n</li>\n<li>wordNgrams\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\">fasttext::Args</a>\n</li>\n<li>words_\n: <a class=\"el\" href=\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\">fasttext::Dictionary</a>\n</li>\n<li>wordVectors()\n: <a class=\"el\" href=\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\">fasttext::FastText</a>\n</li>\n<li>ws\n: <a class=\"el\" href=\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\">fasttext::Args</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/functions_z.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('functions_z.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3><a id=\"index_z\"></a>- z -</h3><ul>\n<li>zero()\n: <a class=\"el\" href=\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\">fasttext::Matrix</a>\n, <a class=\"el\" href=\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\">fasttext::Vector</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/globals.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: File Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('globals.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all file members with links to the files they belong to:</div><ul>\n<li>analogies()\n: <a class=\"el\" href=\"main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4\">main.cc</a>\n</li>\n<li>FASTTEXT_FILEFORMAT_MAGIC_INT32\n: <a class=\"el\" href=\"fasttext_8h.html#af5de14588083ef853a2863c8d625ee24\">fasttext.h</a>\n</li>\n<li>FASTTEXT_VERSION\n: <a class=\"el\" href=\"fasttext_8h.html#a74036bd705019bb33643e90202bf343e\">fasttext.h</a>\n</li>\n<li>LOG_TABLE_SIZE\n: <a class=\"el\" href=\"model_8h.html#a39f445c336c3e871eccbaa0423b6daef\">model.h</a>\n</li>\n<li>main()\n: <a class=\"el\" href=\"main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627\">main.cc</a>\n</li>\n<li>MAX_SIGMOID\n: <a class=\"el\" href=\"model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34\">model.h</a>\n</li>\n<li>nn()\n: <a class=\"el\" href=\"main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4\">main.cc</a>\n</li>\n<li>predict()\n: <a class=\"el\" href=\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\">main.cc</a>\n</li>\n<li>printAnalogiesUsage()\n: <a class=\"el\" href=\"main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15\">main.cc</a>\n</li>\n<li>printNgrams()\n: <a class=\"el\" href=\"main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705\">main.cc</a>\n</li>\n<li>printNNUsage()\n: <a class=\"el\" href=\"main_8cc.html#a8126ecd2d93d3b73b1c516e323575052\">main.cc</a>\n</li>\n<li>printPredictUsage()\n: <a class=\"el\" href=\"main_8cc.html#aa858ef5149aa995107818c079d930037\">main.cc</a>\n</li>\n<li>printPrintNgramsUsage()\n: <a class=\"el\" href=\"main_8cc.html#a086a02edc37d73f760db2882df2ea57d\">main.cc</a>\n</li>\n<li>printPrintSentenceVectorsUsage()\n: <a class=\"el\" href=\"main_8cc.html#a4328b0d06690e73334e2e7e1135efc37\">main.cc</a>\n</li>\n<li>printPrintWordVectorsUsage()\n: <a class=\"el\" href=\"main_8cc.html#ab9897a3337e4f0833d547e044fd033eb\">main.cc</a>\n</li>\n<li>printQuantizeUsage()\n: <a class=\"el\" href=\"main_8cc.html#aa743c1f04268af8569712a85c561a67f\">main.cc</a>\n</li>\n<li>printSentenceVectors()\n: <a class=\"el\" href=\"main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d\">main.cc</a>\n</li>\n<li>printTestUsage()\n: <a class=\"el\" href=\"main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8\">main.cc</a>\n</li>\n<li>printUsage()\n: <a class=\"el\" href=\"main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6\">main.cc</a>\n</li>\n<li>printWordVectors()\n: <a class=\"el\" href=\"main_8cc.html#a133e93a6033465d23657e023a022c16e\">main.cc</a>\n</li>\n<li>quantize()\n: <a class=\"el\" href=\"main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd\">main.cc</a>\n</li>\n<li>SIGMOID_TABLE_SIZE\n: <a class=\"el\" href=\"model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532\">model.h</a>\n</li>\n<li>test()\n: <a class=\"el\" href=\"main_8cc.html#a425a56e6d14ed741a6565821124c9413\">main.cc</a>\n</li>\n<li>train()\n: <a class=\"el\" href=\"main_8cc.html#a7137053a88d8b242fcac8625ce302b16\">main.cc</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/globals_defs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: File Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('globals_defs.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;<ul>\n<li>FASTTEXT_FILEFORMAT_MAGIC_INT32\n: <a class=\"el\" href=\"fasttext_8h.html#af5de14588083ef853a2863c8d625ee24\">fasttext.h</a>\n</li>\n<li>FASTTEXT_VERSION\n: <a class=\"el\" href=\"fasttext_8h.html#a74036bd705019bb33643e90202bf343e\">fasttext.h</a>\n</li>\n<li>LOG_TABLE_SIZE\n: <a class=\"el\" href=\"model_8h.html#a39f445c336c3e871eccbaa0423b6daef\">model.h</a>\n</li>\n<li>MAX_SIGMOID\n: <a class=\"el\" href=\"model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34\">model.h</a>\n</li>\n<li>SIGMOID_TABLE_SIZE\n: <a class=\"el\" href=\"model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532\">model.h</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/globals_func.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: File Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('globals_func.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;<ul>\n<li>analogies()\n: <a class=\"el\" href=\"main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4\">main.cc</a>\n</li>\n<li>main()\n: <a class=\"el\" href=\"main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627\">main.cc</a>\n</li>\n<li>nn()\n: <a class=\"el\" href=\"main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4\">main.cc</a>\n</li>\n<li>predict()\n: <a class=\"el\" href=\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\">main.cc</a>\n</li>\n<li>printAnalogiesUsage()\n: <a class=\"el\" href=\"main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15\">main.cc</a>\n</li>\n<li>printNgrams()\n: <a class=\"el\" href=\"main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705\">main.cc</a>\n</li>\n<li>printNNUsage()\n: <a class=\"el\" href=\"main_8cc.html#a8126ecd2d93d3b73b1c516e323575052\">main.cc</a>\n</li>\n<li>printPredictUsage()\n: <a class=\"el\" href=\"main_8cc.html#aa858ef5149aa995107818c079d930037\">main.cc</a>\n</li>\n<li>printPrintNgramsUsage()\n: <a class=\"el\" href=\"main_8cc.html#a086a02edc37d73f760db2882df2ea57d\">main.cc</a>\n</li>\n<li>printPrintSentenceVectorsUsage()\n: <a class=\"el\" href=\"main_8cc.html#a4328b0d06690e73334e2e7e1135efc37\">main.cc</a>\n</li>\n<li>printPrintWordVectorsUsage()\n: <a class=\"el\" href=\"main_8cc.html#ab9897a3337e4f0833d547e044fd033eb\">main.cc</a>\n</li>\n<li>printQuantizeUsage()\n: <a class=\"el\" href=\"main_8cc.html#aa743c1f04268af8569712a85c561a67f\">main.cc</a>\n</li>\n<li>printSentenceVectors()\n: <a class=\"el\" href=\"main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d\">main.cc</a>\n</li>\n<li>printTestUsage()\n: <a class=\"el\" href=\"main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8\">main.cc</a>\n</li>\n<li>printUsage()\n: <a class=\"el\" href=\"main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6\">main.cc</a>\n</li>\n<li>printWordVectors()\n: <a class=\"el\" href=\"main_8cc.html#a133e93a6033465d23657e023a022c16e\">main.cc</a>\n</li>\n<li>quantize()\n: <a class=\"el\" href=\"main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd\">main.cc</a>\n</li>\n<li>test()\n: <a class=\"el\" href=\"main_8cc.html#a425a56e6d14ed741a6565821124c9413\">main.cc</a>\n</li>\n<li>train()\n: <a class=\"el\" href=\"main_8cc.html#a7137053a88d8b242fcac8625ce302b16\">main.cc</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Main Page</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('index.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fastText Documentation</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v1.7.1\n * http://jquery.com/\n *\n * Copyright 2011, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n * Copyright 2011, The Dojo Foundation\n * Released under the MIT, BSD, and GPL Licenses.\n *\n * Date: Mon Nov 21 21:11:03 2011 -0500\n */\n(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/,bM=/\\S/,bI=/^\\s+/,bE=/\\s+$/,bA=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,bN=/^[\\],:{}\\s]*$/,bW=/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,bJ=/(?:^|:|,)(?:\\s*\\[)+/g,by=/(webkit)[ \\/]([\\w.]+)/,bR=/(opera)(?:.*version)?[ \\/]([\\w.]+)/,bQ=/(msie) ([\\w.]+)/,bS=/(mozilla)(?:.*? rv:([\\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+\"\").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0===\"body\"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0===\"string\"){if(b0.charAt(0)===\"<\"&&b0.charAt(b0.length-1)===\">\"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:\"\",jquery:\"1.7.1\",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3===\"find\"){b2.selector=this.selector+(this.selector?\" \":\"\")+b0}else{if(b3){b2.selector=this.selector+\".\"+b3+\"(\"+b0+\")\"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),\"slice\",bK.call(arguments).join(\",\"))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5===\"boolean\"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!==\"object\"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger(\"ready\").off(\"ready\")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks(\"once memory\");if(av.readyState===\"complete\"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener(\"DOMContentLoaded\",e,false);bb.addEventListener(\"load\",bF.ready,false)}else{if(av.attachEvent){av.attachEvent(\"onreadystatechange\",e);bb.attachEvent(\"onload\",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)===\"function\"},isArray:Array.isArray||function(b0){return bF.type(b0)===\"array\"},isWindow:function(b0){return b0&&typeof b0===\"object\"&&\"setInterval\" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||\"object\"},isPlainObject:function(b2){if(!b2||bF.type(b2)!==\"object\"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,\"constructor\")&&!bG.call(b2.constructor.prototype,\"isPrototypeOf\")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!==\"string\"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,\"@\").replace(bP,\"]\").replace(bJ,\"\"))){return(new Function(\"return \"+b0))()}bF.error(\"Invalid JSON: \"+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,\"text/xml\")}else{b0=new ActiveXObject(\"Microsoft.XMLDOM\");b0.async=\"false\";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName(\"parsererror\").length){bF.error(\"Invalid XML: \"+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb[\"eval\"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,\"ms-\").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?\"\":bO.call(b0)}:function(b0){return b0==null?\"\":b0.toString().replace(bI,\"\").replace(bE,\"\")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2===\"string\"||b2===\"function\"||b2===\"regexp\"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length===\"number\"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1===\"number\"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3===\"string\"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8===\"object\"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf(\"compatible\")<0&&bS.exec(b1)||[];return{browser:b0[1]||\"\",version:b0[2]||\"0\"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each(\"Boolean Number String Function Array Date RegExp Object\".split(\" \"),function(b1,b0){bx[\"[object \"+b0+\"]\"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test(\"\\xA0\")){bI=/^[\\s\\xA0]+/;bE=/[\\s\\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener(\"DOMContentLoaded\",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState===\"complete\"){av.detachEvent(\"onreadystatechange\",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll(\"left\")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH===\"array\"){bE(bI)}else{if(bH===\"function\"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks(\"once memory\"),bw=b.Callbacks(\"once memory\"),bv=b.Callbacks(\"memory\"),e=\"pending\",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,\"resolve\"],fail:[bE,\"reject\"],progress:[bD,\"notify\"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+\"With\"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+\"With\"]=bA[bz].fireWith}bB.done(function(){e=\"resolved\"},bw.disable,bv.lock).fail(function(){e=\"rejected\"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement(\"div\"),bH=av.documentElement;bv.setAttribute(\"className\",\"t\");bv.innerHTML=\"   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>\";bI=bv.getElementsByTagName(\"*\");bF=bv.getElementsByTagName(\"a\")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement(\"select\");bx=bG.appendChild(av.createElement(\"option\"));bE=bv.getElementsByTagName(\"input\")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName(\"tbody\").length,htmlSerialize:!!bv.getElementsByTagName(\"link\").length,style:/top/.test(bF.getAttribute(\"style\")),hrefNormalized:(bF.getAttribute(\"href\")===\"/a\"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value===\"on\"),optSelected:bx.selected,getSetAttribute:bv.className!==\"t\",enctype:!!av.createElement(\"form\").enctype,html5Clone:av.createElement(\"nav\").cloneNode(true).outerHTML!==\"<:nav></:nav>\",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent(\"onclick\",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent(\"onclick\")}bE=av.createElement(\"input\");bE.value=\"t\";bE.setAttribute(\"type\",\"radio\");bJ.radioValue=bE.value===\"t\";bE.setAttribute(\"checked\",\"checked\");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML=\"\";if(bb.getComputedStyle){bA=av.createElement(\"div\");bA.style.width=\"0\";bA.style.marginRight=\"0\";bv.style.width=\"2px\";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB=\"on\"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,\"return;\");bw=(typeof bv[bB]===\"function\")}bJ[by+\"Bubbles\"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName(\"body\")[0];if(!bQ){return}bL=1;bS=\"position:absolute;top:0;left:0;width:1px;height:1px;margin:0;\";bR=\"visibility:hidden;border:0;\";e=\"style='\"+bS+\"border:5px solid #000;padding:0;'\";bP=\"<div \"+e+\"><div></div></div><table \"+e+\" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>\";bM=av.createElement(\"div\");bM.style.cssText=bR+\"width:0;height:0;position:static;top:0;margin-top:\"+bL+\"px\";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement(\"div\");bM.appendChild(bv);bv.innerHTML=\"<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>\";bz=bv.getElementsByTagName(\"td\");bw=(bz[0].offsetHeight===0);bz[0].style.display=\"\";bz[1].style.display=\"none\";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML=\"\";bv.style.width=bv.style.paddingLeft=\"1px\";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!==\"undefined\"){bv.style.display=\"inline\";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display=\"\";bv.innerHTML=\"<div style='width:4px;'></div>\";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position=\"fixed\";bV.style.top=\"20px\";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top=\"\";bU.style.overflow=\"hidden\";bU.style.position=\"relative\";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\\{.*\\}|\\[.*\\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:\"jQuery\"+(b.fn.jquery+Math.random()).replace(/\\D/g,\"\"),noData:{embed:true,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv===\"string\",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv===\"events\";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv===\"object\"||typeof bv===\"function\"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(\" \")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute(\"classid\")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by===\"undefined\"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],\"parsedAttrs\")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf(\"data-\")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],\"parsedAttrs\",true)}}return bz}else{if(typeof by===\"object\"){return this.each(function(){b.data(this,by)})}}bB=by.split(\".\");bB[1]=bB[1]?\".\"+bB[1]:\"\";if(bA===L){bz=this.triggerHandler(\"getData\"+bB[1]+\"!\",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler(\"setData\"+bB[1]+\"!\",bD);b.data(this,by,bA);bC.triggerHandler(\"changeData\"+bB[1]+\"!\",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv=\"data-\"+bw.replace(aA,\"-$1\").toLowerCase();by=bx.getAttribute(bv);if(typeof by===\"string\"){try{by=by===\"true\"?true:by===\"false\"?false:by===\"null\"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e===\"data\"&&b.isEmptyObject(bv[e])){continue}if(e!==\"toJSON\"){return false}}return true}function bi(by,bx,bA){var bw=bx+\"defer\",bv=bx+\"queue\",e=bx+\"mark\",bz=b._data(by,bw);if(bz&&(bA===\"queue\"||!b._data(by,bv))&&(bA===\"mark\"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||\"fx\")+\"mark\";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||\"fx\";var e=bv+\"mark\",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,\"mark\")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||\"fx\")+\"queue\";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||\"fx\";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw===\"inprogress\"){bw=bv.shift()}if(bw){if(bx===\"fx\"){bv.unshift(\"inprogress\")}b._data(by,bx+\".run\",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+\"queue \"+bx+\".run\",true);bi(by,bx,\"queue\")}}});b.fn.extend({queue:function(e,bv){if(typeof e!==\"string\"){bv=e;e=\"fx\"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e===\"fx\"&&bw[0]!==\"inprogress\"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||\"fx\";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(bD,bw){if(typeof bD!==\"string\"){bw=bD;bD=L}bD=bD||\"fx\";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+\"defer\",bA=bD+\"queue\",bC=bD+\"mark\",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks(\"once memory\"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\\n\\t\\r]/g,af=/\\s+/,aU=/\\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by===\"string\"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=\" \"+bx.className+\" \";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(\" \"+bA[bB]+\" \")){bz+=bA[bB]+\" \"}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz===\"string\")||bz===L){bA=(bz||\"\").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(\" \"+by.className+\" \").replace(aP,\" \");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(\" \"+bA[bB]+\" \",\" \")}by.className=b.trim(bx)}else{by.className=\"\"}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv===\"boolean\";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw===\"string\"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?\"addClass\":\"removeClass\"](bA)}}else{if(bw===\"undefined\"||bw===\"boolean\"){if(this.className){b._data(this,\"__className__\",this.className)}this.className=this.className||bx===false?\"\":b._data(this,\"__className__\")||\"\"}}})},hasClass:function(e){var bx=\" \"+e+\" \",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(\" \"+this[bw].className+\" \").replace(aP,\" \").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&\"get\" in e&&(bv=e.get(bw,\"value\"))!==L){return bv}bv=bw.value;return typeof bv===\"string\"?bv.replace(aU,\"\"):bv==null?\"\":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=\"\"}else{if(typeof bB===\"number\"){bB+=\"\"}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?\"\":bC+\"\"})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!(\"set\" in e)||e.set(this,bB,\"value\")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type===\"select-one\";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute(\"disabled\")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,\"optgroup\"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find(\"option\").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute===\"undefined\"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&\"set\" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,\"\"+bB);return bB}}}else{if(e&&\"get\" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,\"\");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error(\"type property can't be changed\")}else{if(!b.support.radioValue&&bv===\"radio\"&&b.nodeName(e,\"input\")){var bw=e.value;e.setAttribute(\"type\",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,\"button\")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,\"button\")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:\"tabIndex\",readonly:\"readOnly\",\"for\":\"htmlFor\",\"class\":\"className\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",cellpadding:\"cellPadding\",rowspan:\"rowSpan\",colspan:\"colSpan\",usemap:\"useMap\",frameborder:\"frameBorder\",contenteditable:\"contentEditable\"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&\"set\" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&\"get\" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode(\"tabindex\");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!==\"boolean\"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!==\"\":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+\"\")}};b.attrHooks.tabindex.set=be.set;b.each([\"width\",\"height\"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===\"\"){bw.setAttribute(e,\"auto\");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===\"\"){bw=\"false\"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each([\"href\",\"src\",\"width\",\"height\"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=\"\"+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype=\"encoding\"}if(!b.support.checkOn){b.each([\"radio\",\"checkbox\"],function(){b.valHooks[this]={get:function(e){return e.getAttribute(\"value\")===null?\"on\":e.value}}})}b.each([\"radio\",\"checkbox\"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\\.]*)?(?:\\.(.+))?$/,J=/\\bhover(\\.\\S+)?\\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\\w*)(?:#([\\w\\-]+))?(?:\\.([\\w\\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||\"\").toLowerCase();bv[3]=bv[3]&&new RegExp(\"(?:^|\\\\s)\"+bv[3]+\"(?:\\\\s|$)\")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv[\"class\"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,\"mouseenter$1 mouseleave$1\")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!==\"undefined\"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(\" \");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||\"\").split(\".\").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(\".\")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent(\"on\"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||\"\")).split(\" \");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp(\"(^|\\\\.)\"+bC.split(\".\").sort().join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH===\"**\"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,[\"events\",\"handle\"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf(\"!\")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(\".\")>=0){bx=bG.split(\".\");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv===\"object\"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(\".\");bv.namespace_re=bv.namespace?new RegExp(\"(^|\\\\.)\"+bx.join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\"):null;by=bG.indexOf(\":\")<0?\"on\"+bG:\"\";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,\"events\")||{})[bv.type]&&b._data(bH,\"handle\");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG===\"click\"&&b.nodeName(bA,\"a\"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!==\"focus\"&&bG!==\"blur\")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,\"events\")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type===\"click\")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:\"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:\"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:\"focusin\"},blur:{delegateType:\"focusout\"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent(\"on\"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,\"form\")){return false}b.event.add(this,\"click._submit keypress._submit\",function(bx){var bw=bx.target,bv=b.nodeName(bw,\"input\")||b.nodeName(bw,\"button\")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,\"submit._submit\",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate(\"submit\",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,\"form\")){return false}b.event.remove(this,\"._submit\")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type===\"checkbox\"||this.type===\"radio\"){b.event.add(this,\"propertychange._change\",function(e){if(e.originalEvent.propertyName===\"checked\"){this._just_changed=true}});b.event.add(this,\"click._change\",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate(\"change\",this,e,true)}})}return false}b.event.add(this,\"beforeactivate._change\",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,\"change._change\",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate(\"change\",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!==\"radio\"&&e.type!==\"checkbox\")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,\"._change\");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:\"focusin\",blur:\"focusout\"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw===\"object\"){if(typeof e!==\"string\"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e===\"string\"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+\".\"+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw===\"object\"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e===\"function\"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||\"**\",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,\"**\"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,\"lastToggle\"+bx.guid)||0)%bw;b._data(this,\"lastToggle\"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each((\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu\").split(\" \"),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});\n/*!\n * Sizzle CSS Selector Engine\n *  Copyright 2011, The Dojo Foundation\n *  Released under the MIT, BSD, and GPL Licenses.\n *  More information: http://sizzlejs.com/\n */\n(function(){var bH=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,bC=\"sizcache\"+(Math.random()+\"\").replace(\".\",\"\"),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\\\/g,bO=/\\r\\n/g,bQ=/\\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!==\"string\"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec(\"\");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]===\"~\"||bW[0]===\"+\")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=\"\"}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)===\"[object Array]\"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!==\"\\\\\"){bT[1]=(bT[1]||\"\").replace(bK,\"\");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],\"\");break}}}}if(!bW){bW=typeof e.getElementsByTagName!==\"undefined\"?e.getElementsByTagName(\"*\"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)===\"\\\\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],\"\");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR=\"\";if(e){if(e===1||e===9){if(typeof bU.textContent===\"string\"){return bU.textContent}else{if(typeof bU.innerText===\"string\"){return bU.innerText.replace(bO,\"\")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/,CLASS:/\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/,NAME:/\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(?:(['\"])(.*?)\\3|(#?(?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)*)|)|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*\\-]|\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\(\\s*(even|odd|(?:[+\\-]?\\d+|(?:[+\\-]?\\d*)?n\\s*(?:[+\\-]\\s*\\d+)?))\\s*\\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},leftMatch:{},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:function(e){return e.getAttribute(\"href\")},type:function(e){return e.getAttribute(\"type\")}},relative:{\"+\":function(bW,bR){var bT=typeof bR===\"string\",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},\">\":function(bW,bR){var bV,bU=typeof bR===\"string\",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},\"\":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR===\"string\"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e(\"parentNode\",bR,bS,bT,bU,bV)},\"~\":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR===\"string\"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e(\"previousSibling\",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!==\"undefined\"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!==\"undefined\"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute(\"name\")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!==\"undefined\"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=\" \"+bT[1].replace(bK,\"\")+\" \";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(\" \"+bV.className+\" \").replace(/[\\t\\n\\r]/g,\" \").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,\"\")},TAG:function(bR,e){return bR[1].replace(bK,\"\").toLowerCase()},CHILD:function(e){if(e[1]===\"nth\"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\\+|\\s*/g,\"\");var bR=/(-?)(\\d*)(?:n([+\\-]?\\d*))?/.exec(e[2]===\"even\"&&\"2n\"||e[2]===\"odd\"&&\"2n+1\"||!/\\D/.test(e[2])&&\"0n+\"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,\"\");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||\"\").replace(bK,\"\");if(bU[2]===\"~=\"){bU[4]=\" \"+bU[4]+\" \"}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]===\"not\"){if((bH.exec(bU[3])||\"\").length>1||/^\\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!==\"hidden\"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute(\"type\"),bR=bS.type;return bS.nodeName.toLowerCase()===\"input\"&&\"text\"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()===\"input\"&&\"radio\"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()===\"input\"&&\"checkbox\"===e.type},file:function(e){return e.nodeName.toLowerCase()===\"input\"&&\"file\"===e.type},password:function(e){return e.nodeName.toLowerCase()===\"input\"&&\"password\"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e===\"input\"||e===\"button\")&&\"submit\"===bR.type},image:function(e){return e.nodeName.toLowerCase()===\"input\"&&\"image\"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e===\"input\"||e===\"button\")&&\"reset\"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e===\"input\"&&\"button\"===bR.type||e===\"button\"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e===\"contains\"){return(bS.textContent||bS.innerText||bw([bS])||\"\").indexOf(bX[3])>=0}else{if(e===\"not\"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case\"only\":case\"first\":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX===\"first\"){return true}bR=bS;case\"last\":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case\"nth\":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute(\"id\")===e},TAG:function(bR,e){return(e===\"*\"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(\" \"+(bR.className||bR.getAttribute(\"class\"))+\" \").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+\"\",bU=bT[2],bR=bT[4];return e==null?bU===\"!=\":!bU&&by.attr?e!=null:bU===\"=\"?bW===bR:bU===\"*=\"?bW.indexOf(bR)>=0:bU===\"~=\"?(\" \"+bW+\" \").indexOf(bR)>=0:!bR?bW&&e!==false:bU===\"!=\"?bW!==bR:bU===\"^=\"?bW.indexOf(bR)===0:bU===\"$=\"?bW.substr(bW.length-bR.length)===bR:bU===\"|=\"?bW===bR||bW.substr(0,bR.length+1)===bR+\"-\":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return\"\\\\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\\[]*\\])(?![^\\(]*\\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+bE.match[bz].source.replace(/\\\\(\\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)===\"[object Array]\"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length===\"number\"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement(\"div\"),bS=\"script\"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML=\"<a name='\"+bS+\"'/>\";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!==\"undefined\"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!==\"undefined\"&&bT.getAttributeNode(\"id\").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!==\"undefined\"&&bV.getAttributeNode(\"id\");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement(\"div\");e.appendChild(av.createComment(\"\"));if(e.getElementsByTagName(\"*\").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]===\"*\"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML=\"<a href='#'></a>\";if(e.firstChild&&typeof e.firstChild.getAttribute!==\"undefined\"&&e.firstChild.getAttribute(\"href\")!==\"#\"){bE.attrHandle.href=function(bR){return bR.getAttribute(\"href\",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement(\"div\"),bS=\"__sizzle__\";bT.innerHTML=\"<p class='TEST'></p>\";if(bT.querySelectorAll&&bT.querySelectorAll(\".TEST\").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\\w+$)|^\\.([\\w\\-]+$)|^#([\\w\\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4===\"body\"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!==\"object\"){var bW=bV,bX=bV.getAttribute(\"id\"),bU=bX||bS,b6=bV.parentNode,b5=/^\\s*[+~]/.test(b4);if(!bX){bV.setAttribute(\"id\",bU)}else{bU=bU.replace(/'/g,\"\\\\$&\")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll(\"[id='\"+bU+\"'] \"+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute(\"id\")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement(\"div\"),\"div\"),bR=false;try{bS.call(av.documentElement,\"[test!='']:sizzle\")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\\=\\s*([^'\"\\]]*)\\s*\\]/g,\"='$1']\");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement(\"div\");e.innerHTML=\"<div class='test e'></div><div class='test'></div>\";if(!e.getElementsByClassName||e.getElementsByClassName(\"e\").length===0){return}e.lastChild.className=\"e\";if(e.getElementsByClassName(\"e\").length===1){return}bE.order.splice(1,0,\"CLASS\");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!==\"undefined\"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!==\"string\"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!==\"HTML\":false};var bM=function(bS,e,bW){var bV,bX=[],bU=\"\",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,\"\")}bS=bE.relative[bS]?bS+\"*\":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[\":\"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\\[\\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!==\"string\"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack(\"\",\"find\",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),\"not\",e)},filter:function(e){return this.pushStack(aG(this,e,true),\"filter\",e)},is:function(e){return !!e&&(typeof e===\"string\"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!==\"string\"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,\"closest\",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e===\"string\"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e===\"string\"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,\"parentNode\")},parentsUntil:function(bv,e,bw){return b.dir(bv,\"parentNode\",bw)},next:function(e){return b.nth(e,2,\"nextSibling\")},prev:function(e){return b.nth(e,2,\"previousSibling\")},nextAll:function(e){return b.dir(e,\"nextSibling\")},prevAll:function(e){return b.dir(e,\"previousSibling\")},nextUntil:function(bv,e,bw){return b.dir(bv,\"nextSibling\",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,\"previousSibling\",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,\"iframe\")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw===\"string\"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(\",\"))}});b.extend({filter:function(bw,e,bv){if(bv){bw=\":not(\"+bw+\")\"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw===\"string\"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split(\"|\"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR=\"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",ag=/ jQuery\\d+=\"(?:\\d+|null)\"/g,ar=/^\\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,d=/<([\\w:]+)/,w=/<tbody/i,W=/<|&#?\\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp(\"<(?:\"+aR+\")\",\"i\"),o=/checked\\s*(?:[^=]|=\\s*.checked.)/i,bm=/\\/(java|ecma)script/i,aN=/^\\s*<!(?:\\[CDATA\\[|\\-\\-)/,ax={option:[1,\"<select multiple='multiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,\"div<div>\",\"</div>\"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!==\"object\"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,\"body\")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,\"before\",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,\"after\",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName(\"*\"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName(\"*\"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,\"\"):null}else{if(typeof bx===\"string\"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||[\"\",\"\"])[1].toLowerCase()]){bx=bx.replace(R,\"<$1></$2>\");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName(\"*\"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!==\"string\"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),\"replaceWith\",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC===\"string\"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,\"tr\");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,\"table\")?(e.getElementsByTagName(\"tbody\")[0]||e.appendChild(e.ownerDocument.createElement(\"tbody\"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?\".\":\"\")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw===\"object\"){e.outerHTML=bv.outerHTML}else{if(bw===\"input\"&&(bv.type===\"checkbox\"||bv.type===\"radio\")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw===\"option\"){e.selected=bv.defaultSelected}else{if(bw===\"input\"||bw===\"textarea\"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB===\"string\"&&bB.length<512&&bA===av&&bB.charAt(0)===\"<\"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!==\"undefined\"){return e.getElementsByTagName(\"*\")}else{if(typeof e.querySelectorAll!==\"undefined\"){return e.querySelectorAll(\"*\")}else{return[]}}}function az(e){if(e.type===\"checkbox\"||e.type===\"radio\"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||\"\").toLowerCase();if(bv===\"input\"){az(e)}else{if(bv!==\"script\"&&typeof e.getElementsByTagName!==\"undefined\"){b.grep(e.getElementsByTagName(\"input\"),az)}}}function al(e){var bv=av.createElement(\"div\");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test(\"<\"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement===\"undefined\"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz===\"number\"){bz+=\"\"}if(!bz){continue}if(typeof bz===\"string\"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,\"<$1></$2>\");var bK=(d.exec(bz)||[\"\",\"\"])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement(\"div\");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK===\"table\"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===\"<table>\"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],\"tbody\")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)===\"number\"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],\"script\")&&(!bI[bE].type||bI[bE].type.toLowerCase()===\"text/javascript\")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName(\"script\"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:\"script\"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||\"\").replace(aN,\"/*$0*/\"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\\([^)]*\\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\\d+(?:px)?$/i,bn=/^-?\\d/,I=/^([\\-+])=([\\-+.\\de]+)/,a7={position:\"absolute\",visibility:\"hidden\",display:\"block\"},an=[\"Left\",\"Right\"],a1=[\"Top\",\"Bottom\"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,\"opacity\",\"opacity\");return e===\"\"?\"1\":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{\"float\":b.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC===\"string\"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC=\"number\"}if(bD==null||bC===\"number\"&&isNaN(bD)){return}if(bC===\"number\"&&!b.cssNumber[bz]){bD+=\"px\"}if(!bE||!(\"set\" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&\"get\" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx===\"cssFloat\"){bx=\"float\"}if(e&&\"get\" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each([\"height\",\"width\"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+\"px\"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||\"\")?(parseFloat(RegExp.$1)/100)+\"\":e?\"1\":\"\"},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?\"alpha(opacity=\"+bz*100+\")\":\"\",bw=bv&&bv.filter||bx.filter||\"\";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,\"\"))===\"\"){bx.removeAttribute(\"filter\");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+\" \"+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:\"inline-block\"},function(){if(bv){e=Z(bw,\"margin-right\",\"marginRight\")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,\"-$1\").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===\"\"&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw===\"fontSize\"?\"1em\":(bv||0);bv=bx.pixelLeft+\"px\";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===\"\"?\"auto\":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw===\"width\"?by.offsetWidth:by.offsetHeight,bz=bw===\"width\"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!==\"border\"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,\"padding\"+bz[bx]))||0}if(bv===\"margin\"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,\"border\"+bz[bx]+\"Width\"))||0}}}return bA+\"px\"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,\"padding\"+bz[bx]))||0;if(bv!==\"padding\"){bA+=parseFloat(b.css(by,\"border\"+bz[bx]+\"Width\"))||0}if(bv===\"margin\"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+\"px\"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,\"display\"))===\"none\")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\\[\\]$/,bs=/\\r?\\n/g,bq=/#.*$/,aD=/^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\\-storage|.+\\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\\/\\//,M=/\\?/,a6=/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,q=/^(?:select|textarea)/i,h=/\\s+/,br=/([?&])_=[^&]*/,K=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=[\"*/\"]+[\"*\"];try{aE=bl.href}catch(aw){aE=av.createElement(\"a\");aE.href=\"\";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!==\"string\"){bA=by;by=\"*\"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\\+/.test(bv);if(bC){bv=bv.substr(1)||\"*\"}bB=e[bv]=e[bv]||[];bB[bC?\"unshift\":\"push\"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC===\"string\"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx[\"*\"]){bC=aW(bv,bE,bz,bD,\"*\",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!==\"string\"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(\" \");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx=\"GET\";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz===\"object\"){bz=b.param(bz,b.ajaxSettings.traditional);bx=\"POST\"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:\"html\",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b(\"<div>\").append(bD.replace(a6,\"\")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,\"\\r\\n\")}}):{name:bv.name,value:bw.replace(bs,\"\\r\\n\")}}).get()}});b.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each([\"get\",\"post\"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,\"script\")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,\"json\")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:\"GET\",contentType:\"application/x-www-form-urlencoded\",processData:true,async:true,accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"application/json, text/javascript\",\"*\":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converters:{\"* text\":bb.String,\"text html\":true,\"text json\":b.parseJSON,\"text xml\":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz===\"object\"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks(\"once memory\"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||\"abort\";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||\"\";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader(\"Last-Modified\"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader(\"Etag\"))){b.etag[bC]=b2}}if(bZ===304){bX=\"notmodified\";bT=true}else{try{b4=G(bD,bY);bX=\"success\";bT=true}catch(b1){bX=\"parsererror\";b3=b1}}}else{b3=bX;if(!bX||bZ){bX=\"error\";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=\"\"+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger(\"ajax\"+(bT?\"Success\":\"Error\"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger(\"ajaxComplete\",[bJ,bD]);if(!(--b.active)){b.event.trigger(\"ajaxStop\")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+\"\").replace(bq,\"\").replace(c,s[1]+\"//\");bD.dataTypes=b.trim(bD.dataType||\"*\").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]===\"http:\"?80:443))!=(s[3]||(s[1]===\"http:\"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!==\"string\"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger(\"ajaxStart\")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?\"&\":\"?\")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,\"$1_=\"+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?\"&\":\"?\")+\"_=\"+bv:\"\")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader(\"Content-Type\",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader(\"If-Modified-Since\",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader(\"If-None-Match\",b.etag[bC])}}bJ.setRequestHeader(\"Accept\",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!==\"*\"?\", \"+aV+\"; q=0.01\":\"\"):bD.accepts[\"*\"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,\"No Transport\")}else{bJ.readyState=1;if(bw){bG.trigger(\"ajaxSend\",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort(\"timeout\")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+\"=\"+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join(\"&\").replace(k,\"+\")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+\"[\"+(typeof bz===\"object\"||b.isArray(bz)?bA:\"\")+\"]\",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by===\"object\"){for(var e in by){v(bw+\"[\"+e+\"]\",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]===\"*\"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader(\"content-type\")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+\" \"+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE===\"string\"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC===\"*\"){bC=bx}else{if(bx!==\"*\"&&bx!==bC){by=bx+\" \"+bC;bF=bG[by]||bG[\"* \"+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(\" \");if(bB[0]===bx||bB[0]===\"*\"){e=bG[bB[1]+\" \"+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error(\"No conversion from \"+by.replace(\" \",\" to \"))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\\=)\\?(&|$)|\\?\\?/i;b.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){return b.expando+\"_\"+(aC++)}});b.ajaxPrefilter(\"json jsonp\",function(bD,bA,bC){var bx=bD.contentType===\"application/x-www-form-urlencoded\"&&(typeof bD.data===\"string\");if(bD.dataTypes[0]===\"jsonp\"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv=\"$1\"+bw+\"$2\";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\\?/.test(e)?\"&\":\"?\")+bD.jsonp+\"=\"+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters[\"script json\"]=function(){if(!bB){b.error(bw+\" was not called\")}return bB[0]};bD.dataTypes[0]=\"json\";return\"script\"}});b.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecmascript/},converters:{\"text script\":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter(\"script\",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type=\"GET\";e.global=false}});b.ajaxTransport(\"script\",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName(\"head\")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement(\"script\");e.async=\"async\";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,\"success\")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&(\"withCredentials\" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB[\"X-Requested-With\"]){bB[\"X-Requested-With\"]=\"XMLHttpRequest\"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=\"\"}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\\-]=)?([\\d+.\\-]+)([a-z%]*)$/i,a3,aH=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"],[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\"opacity\"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0(\"show\",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,\"olddisplay\")&&by===\"none\"){by=bw.style.display=\"\"}if(by===\"\"&&b.css(bw,\"display\")===\"none\"){b._data(bw,\"olddisplay\",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===\"\"||by===\"none\"){bw.style.display=b._data(bw,\"olddisplay\")||\"\"}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0(\"hide\",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,\"display\");if(by!==\"none\"&&!b._data(bw,\"olddisplay\")){b._data(bw,\"olddisplay\",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display=\"none\"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw===\"boolean\";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(\":hidden\");b(this)[by?\"show\":\"hide\"]()})}else{this.animate(a0(\"toggle\",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(\":hidden\").css(\"opacity\",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(\":hidden\"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||\"swing\"}if(bF===\"hide\"&&bI||bF===\"show\"&&!bI){return bE.complete.call(this)}if(bK&&(bB===\"height\"||bB===\"width\")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,\"display\")===\"inline\"&&b.css(this,\"float\")===\"none\"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)===\"inline\"){this.style.display=\"inline-block\"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow=\"hidden\"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,\"toggle\"+bD)||(bF===\"toggle\"?bI?\"show\":\"hide\":0);if(bA){b._data(this,\"toggle\"+bD,bA===\"show\"?\"hide\":\"show\");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?\"\":\"px\");if(bL!==\"px\"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]===\"-=\"?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,\"\")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!==\"string\"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||\"fx\",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(\".run\")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+\".run\"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0(\"show\",1),slideUp:a0(\"hide\",1),slideToggle:a0(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw===\"object\"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration===\"number\"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue=\"fx\"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv===\"auto\"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?\"\":\"px\");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,\"fxshow\"+e.prop)===L){b._data(e.elem,\"fxshow\"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,\"fxshow\"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop===\"width\"||this.prop===\"height\"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,\"fxshow\"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each([\"\",\"X\",\"Y\"],function(bC,bD){bz.style[\"overflow\"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,\"fxshow\"+bA,true);b.removeData(bz,\"toggle\"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,\"opacity\",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each([\"width\",\"height\"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b(\"<\"+bx+\">\").appendTo(e),bw=bv.css(\"display\");bv.remove();if(bw===\"none\"||bw===\"\"){if(!a8){a8=av.createElement(\"iframe\");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode===\"CSS1Compat\"?\"<!doctype html>\":\"\")+\"<html><body>\");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,\"display\");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if(\"getBoundingClientRect\" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position===\"fixed\"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!==\"visible\"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position===\"relative\"||e.position===\"static\"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position===\"fixed\"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,\"marginTop\"))||0;bv+=parseFloat(b.css(e,\"marginLeft\"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,\"position\");if(bB===\"static\"){bx.style.position=\"relative\"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,\"top\"),bE=b.css(bx,\"left\"),bF=(bB===\"absolute\"||bB===\"fixed\")&&b.inArray(\"auto\",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if(\"using\" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,\"marginTop\"))||0;bx.left-=parseFloat(b.css(bw,\"marginLeft\"))||0;e.top+=parseFloat(b.css(bv[0],\"borderTopWidth\"))||0;e.left+=parseFloat(b.css(bv[0],\"borderLeftWidth\"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,\"position\")===\"static\")){e=e.offsetParent}return e})}});b.each([\"Left\",\"Top\"],function(bv,e){var bw=\"scroll\"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?(\"pageXOffset\" in by)?by[bv?\"pageYOffset\":\"pageXOffset\"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each([\"Height\",\"Width\"],function(bv,e){var bw=e.toLowerCase();b.fn[\"inner\"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,\"padding\")):this[bw]():null};b.fn[\"outer\"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?\"margin\":\"border\")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement[\"client\"+e],bx=bA.document.body;return bA.document.compatMode===\"CSS1Compat\"&&bB||bx&&bx[\"client\"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement[\"client\"+e],bA.body[\"scroll\"+e],bA.documentElement[\"scroll\"+e],bA.body[\"offset\"+e],bA.documentElement[\"offset\"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz===\"string\"?bz:bz+\"px\")}}}}});bb.jQuery=bb.$=b;if(typeof define===\"function\"&&define.amd&&define.amd.jQuery){define(\"jquery\",[],function(){return b})}})(window);/*!\n * jQuery UI 1.8.18\n *\n * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * http://docs.jquery.com/UI\n */\n(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:\"1.8.18\",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e===\"number\"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css(\"position\")))||(/absolute/).test(this.css(\"position\"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,\"position\",1))&&(/(auto|scroll)/).test(a.curCSS(this,\"overflow\",1)+a.curCSS(this,\"overflow-y\",1)+a.curCSS(this,\"overflow-x\",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,\"overflow\",1)+a.curCSS(this,\"overflow-y\",1)+a.curCSS(this,\"overflow-x\",1))}).eq(0)}return(/fixed/).test(this.css(\"position\"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css(\"zIndex\",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css(\"position\");if(e===\"absolute\"||e===\"relative\"||e===\"fixed\"){g=parseInt(f.css(\"zIndex\"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?\"selectstart\":\"mousedown\")+\".ui-disableSelection\",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(\".ui-disableSelection\")}});a.each([\"Width\",\"Height\"],function(g,e){var f=e===\"Width\"?[\"Left\",\"Right\"]:[\"Top\",\"Bottom\"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,\"padding\"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,\"border\"+this+\"Width\",true))||0}if(n){l-=parseFloat(a.curCSS(m,\"margin\"+this,true))||0}});return l}a.fn[\"inner\"+e]=function(i){if(i===d){return k[\"inner\"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+\"px\")})};a.fn[\"outer\"+e]=function(i,l){if(typeof i!==\"number\"){return k[\"outer\"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+\"px\")})}});function c(g,e){var j=g.nodeName.toLowerCase();if(\"area\"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!==\"map\"){return false}f=a(\"img[usemap=#\"+h+\"]\")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:\"a\"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,\"visibility\")===\"hidden\"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[\":\"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,\"tabindex\")))},tabbable:function(g){var e=a.attr(g,\"tabindex\"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement(\"div\"));f.offsetHeight;a.extend(f.style,{minHeight:\"100px\",height:\"auto\",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart=\"onselectstart\" in f;e.removeChild(f).style.display=\"none\"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css(\"overflow\")===\"hidden\"){return false}var e=(f&&f===\"left\")?\"scrollLeft\":\"scrollTop\",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!\n * jQuery UI Widget 1.8.18\n *\n * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * http://docs.jquery.com/UI/Widget\n */\n(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler(\"remove\")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b(\"*\",this).add([this]).each(function(){try{b(this).triggerHandler(\"remove\")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(\".\")[0],j;f=f.split(\".\")[1];j=g+\"-\"+f;if(!e){e=h;h=b.Widget}b.expr[\":\"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i===\"string\",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)===\"_\"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind(\"remove.\"+this.widgetName,function(){e.destroy()});this._create();this._trigger(\"create\");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind(\".\"+this.widgetName).removeData(this.widgetName);this.widget().unbind(\".\"+this.widgetName).removeAttr(\"aria-disabled\").removeClass(this.widgetBaseClass+\"-disabled ui-state-disabled\")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f===\"string\"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e===\"disabled\"){this.widget()[f?\"addClass\":\"removeClass\"](this.widgetBaseClass+\"-disabled ui-state-disabled\").attr(\"aria-disabled\",f)}return this},enable:function(){return this._setOption(\"disabled\",false)},disable:function(){return this._setOption(\"disabled\",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!\n * jQuery UI Mouse 1.8.18\n *\n * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * http://docs.jquery.com/UI/Mouse\n *\n * Depends:\n *\tjquery.ui.widget.js\n */\n(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget(\"ui.mouse\",{options:{cancel:\":input,option\",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind(\"mousedown.\"+this.widgetName,function(e){return d._mouseDown(e)}).bind(\"click.\"+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+\".preventClickEvent\")){b.removeData(e.target,d.widgetName+\".preventClickEvent\");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind(\".\"+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel==\"string\"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+\".preventClickEvent\")){b.removeData(f.target,this.widgetName+\".preventClickEvent\")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).bind(\"mouseup.\"+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).unbind(\"mouseup.\"+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+\".preventClickEvent\",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget(\"ui.resizable\",c.ui.mouse,{widgetEventPrefix:\"resize\",options:{alsoResize:false,animate:false,animateDuration:\"slow\",animateEasing:\"swing\",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:\"e,s,se\",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass(\"ui-resizable\");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||\"ui-resizable-helper\":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class=\"ui-wrapper\" style=\"overflow: hidden;\"></div>').css({position:this.element.css(\"position\"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css(\"top\"),left:this.element.css(\"left\")}));this.element=this.element.parent().data(\"resizable\",this.element.data(\"resizable\"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css(\"marginLeft\"),marginTop:this.originalElement.css(\"marginTop\"),marginRight:this.originalElement.css(\"marginRight\"),marginBottom:this.originalElement.css(\"marginBottom\")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css(\"resize\");this.originalElement.css(\"resize\",\"none\");this._proportionallyResizeElements.push(this.originalElement.css({position:\"static\",zoom:1,display:\"block\"}));this.originalElement.css({margin:this.originalElement.css(\"margin\")});this._proportionallyResize()}this.handles=k.handles||(!c(\".ui-resizable-handle\",this.element).length?\"e,s,se\":{n:\".ui-resizable-n\",e:\".ui-resizable-e\",s:\".ui-resizable-s\",w:\".ui-resizable-w\",se:\".ui-resizable-se\",sw:\".ui-resizable-sw\",ne:\".ui-resizable-ne\",nw:\".ui-resizable-nw\"});if(this.handles.constructor==String){if(this.handles==\"all\"){this.handles=\"n,e,s,w,se,sw,ne,nw\"}var l=this.handles.split(\",\");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e=\"ui-resizable-\"+j;var h=c('<div class=\"ui-resizable-handle '+e+'\"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if(\"se\"==j){h.addClass(\"ui-icon ui-icon-gripsmall-diagonal-se\")}this.handles[j]=\".ui-resizable-\"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=[\"padding\",/ne|nw|n/.test(n)?\"Top\":/se|sw|s/.test(n)?\"Bottom\":/^e$/.test(n)?\"Right\":\"Left\"].join(\"\");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(\".ui-resizable-handle\",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:\"se\"}});if(k.autoHide){this._handles.hide();c(this.element).addClass(\"ui-resizable-autohide\").hover(function(){if(k.disabled){return}c(this).removeClass(\"ui-resizable-autohide\");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass(\"ui-resizable-autohide\");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass(\"ui-resizable ui-resizable-disabled ui-resizable-resizing\").removeData(\"resizable\").unbind(\".resizable\").find(\".ui-resizable-handle\").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css(\"position\"),width:f.outerWidth(),height:f.outerHeight(),top:f.css(\"top\"),left:f.css(\"left\")})).remove()}this.originalElement.css(\"resize\",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(\".ui-draggable\")||(/absolute/).test(e.css(\"position\"))){e.css({position:\"absolute\",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css(\"left\")),h=b(this.helper.css(\"top\"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio==\"number\")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(\".ui-resizable-\"+this.axis).css(\"cursor\");c(\"body\").css(\"cursor\",i==\"auto\"?this.axis+\"-resize\":i);e.addClass(\"ui-resizable-resizing\");this._propagate(\"start\",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate(\"resize\",e);h.css({top:this.position.top+\"px\",left:this.position.left+\"px\",width:this.size.width+\"px\",height:this.size.height+\"px\"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger(\"resize\",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],\"left\")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css(\"left\"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css(\"top\"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c(\"body\").css(\"cursor\",\"auto\");this.element.removeClass(\"ui-resizable-resizing\");this._propagate(\"stop\",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e==\"sw\"){h.left=j.left+(f.width-h.width);h.top=null}if(e==\"nw\"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css(\"borderTopWidth\"),h.css(\"borderRightWidth\"),h.css(\"borderBottomWidth\"),h.css(\"borderLeftWidth\")],j=[h.css(\"paddingTop\"),h.css(\"paddingRight\"),h.css(\"paddingBottom\"),h.css(\"paddingLeft\")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(\":hidden\")||c(g).parents(\":hidden\").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style=\"overflow:hidden;\"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:\"absolute\",left:this.elementOffset.left-g+\"px\",top:this.elementOffset.top-g+\"px\",zIndex:++i.zIndex});this.helper.appendTo(\"body\").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!=\"resize\"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:\"1.8.18\"});c.ui.plugin.add(\"resizable\",\"alsoResize\",{start:function(f,g){var e=c(this).data(\"resizable\"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data(\"resizable-alsoresize\",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css(\"left\"),10),top:parseInt(k.css(\"top\"),10)})})};if(typeof(i.alsoResize)==\"object\"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data(\"resizable\"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data(\"resizable-alsoresize\"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?[\"width\",\"height\"]:[\"width\",\"height\",\"top\",\"left\"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)==\"object\"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData(\"resizable-alsoresize\")}});c.ui.plugin.add(\"resizable\",\"animate\",{stop:function(i,n){var p=c(this).data(\"resizable\"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],\"left\")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css(\"left\"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css(\"top\"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css(\"width\"),10),height:parseInt(p.element.css(\"height\"),10),top:parseInt(p.element.css(\"top\"),10),left:parseInt(p.element.css(\"left\"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate(\"resize\",i)}})}});c.ui.plugin.add(\"resizable\",\"containment\",{start:function(f,r){var t=c(this).data(\"resizable\"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c([\"Top\",\"Right\",\"Left\",\"Bottom\"]).each(function(p,o){i[p]=b(n.css(\"padding\"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,\"left\")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data(\"resizable\"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css(\"position\"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css(\"position\"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data(\"resizable\"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css(\"position\"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css(\"position\"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add(\"resizable\",\"ghost\",{start:function(g,h){var e=c(this).data(\"resizable\"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:\"block\",position:\"relative\",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass(\"ui-resizable-ghost\").addClass(typeof i.ghost==\"string\"?i.ghost:\"\");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data(\"resizable\"),h=e.options;if(e.ghost){e.ghost.css({position:\"relative\",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data(\"resizable\"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add(\"resizable\",\"grid\",{resize:function(e,m){var p=c(this).data(\"resizable\"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid==\"number\"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!\n * jQuery hashchange event - v1.3 - 7/21/2010\n * http://benalman.com/projects/jquery-hashchange-plugin/\n * \n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n */\n(function($,e,b){var c=\"hashchange\",h=document,f,g=$.event.special,i=h.documentMode,d=\"on\"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return\"#\"+j.replace(/^[^#]*#?(.*)$/,\"$1\")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,\"\")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex=\"-1\" title=\"empty\"/>').hide().one(\"load\",function(){r||l(a());n()}).attr(\"src\",r||\"javascript:0\").insertAfter(\"body\")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName===\"title\"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain=\"'+t+'\"<\\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:\"xy\",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),[\"iframe\",\"#document\",\"html\",\"body\"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode==\"BackCompat\"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e==\"object\"){d=e;e=0}if(typeof d==\"function\"){d={onAfter:d}}if(f==\"max\"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is(\"html,body\");switch(typeof k){case\"number\":case\"string\":if(/^([+-]=)?\\d+(\\.\\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case\"object\":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(\"\"),function(q,r){var s=r==\"x\"?\"Left\":\"Top\",u=s.toLowerCase(),p=\"scroll\"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css(\"margin\"+s))||0;g[p]-=parseInt(k.css(\"border\"+s+\"Width\"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r==\"x\"?\"width\":\"height\"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)==\"%\"?parseFloat(t)/100*n:t}if(/^\\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i==\"x\"?\"Width\":\"Height\",e=\"scroll\"+h;if(!c(j).is(\"html,body\")){return j[e]-c(j)[h.toLowerCase()]()}var g=\"client\"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d==\"object\"?d:{top:d,left:d}}})(jQuery);/*!\n PowerTip - v1.2.0 - 2013-04-03\n http://stevenbenner.github.com/jquery-powertip/\n Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).\n Released under MIT license.\n https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt\n*/\n(function(a){if(typeof define===\"function\"&&define.amd){define([\"jquery\"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k(\"body\");var n=\"displayController\",e=\"hasActiveHover\",d=\"forcedOpen\",u=\"hasMouseMove\",f=\"mouseOnToPopup\",g=\"originalTitle\",y=\"powertip\",o=\"powertipjq\",l=\"powertiptarget\",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)===\"string\"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr(\"title\");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr(\"title\")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({\"mouseenter.powertip\":function J(P){k.powerTip.show(this,P)},\"mouseleave.powertip\":function L(){k.powerTip.hide(this)},\"focus.powertip\":function K(){k.powerTip.show(this)},\"blur.powertip\":function H(){k.powerTip.hide(this,true)},\"keydown.powertip\":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:\"powerTip\",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:\"n\",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:[\"n\",\"ne\",\"nw\",\"s\"],e:[\"e\",\"ne\",\"se\",\"w\",\"nw\",\"sw\",\"n\",\"s\",\"e\"],s:[\"s\",\"se\",\"sw\",\"n\"],w:[\"w\",\"nw\",\"sw\",\"e\",\"ne\",\"se\",\"n\",\"s\",\"w\"],nw:[\"nw\",\"w\",\"sw\",\"n\",\"s\",\"se\",\"nw\"],ne:[\"ne\",\"e\",\"se\",\"n\",\"s\",\"sw\",\"ne\"],sw:[\"sw\",\"w\",\"nw\",\"s\",\"n\",\"ne\",\"sw\"],se:[\"se\",\"e\",\"ne\",\"s\",\"n\",\"nw\",\"se\"],\"nw-alt\":[\"nw-alt\",\"n\",\"ne-alt\",\"sw-alt\",\"s\",\"se-alt\",\"w\",\"e\"],\"ne-alt\":[\"ne-alt\",\"n\",\"nw-alt\",\"se-alt\",\"s\",\"sw-alt\",\"e\",\"w\"],\"sw-alt\":[\"sw-alt\",\"s\",\"se-alt\",\"nw-alt\",\"n\",\"ne-alt\",\"w\",\"e\"],\"se-alt\":[\"se-alt\",\"s\",\"sw-alt\",\"ne-alt\",\"n\",\"nw-alt\",\"e\",\"w\"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(\".powertip\").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr(\"title\",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top=\"auto\";F.left=\"auto\";F.right=\"auto\";F.bottom=\"auto\";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split(\"-\")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case\"n\":N.set(\"left\",I.left-(J/2));N.set(\"bottom\",c.windowHeight-I.top+P);break;case\"e\":N.set(\"left\",I.left+P);N.set(\"top\",I.top-(O/2));break;case\"s\":N.set(\"left\",I.left-(J/2));N.set(\"top\",I.top+P);break;case\"w\":N.set(\"top\",I.top-(O/2));N.set(\"right\",c.windowWidth-I.left+P);break;case\"nw\":N.set(\"bottom\",c.windowHeight-I.top+P);N.set(\"right\",c.windowWidth-I.left-20);break;case\"nw-alt\":N.set(\"left\",I.left);N.set(\"bottom\",c.windowHeight-I.top+P);break;case\"ne\":N.set(\"left\",I.left-20);N.set(\"bottom\",c.windowHeight-I.top+P);break;case\"ne-alt\":N.set(\"bottom\",c.windowHeight-I.top+P);N.set(\"right\",c.windowWidth-I.left);break;case\"sw\":N.set(\"top\",I.top+P);N.set(\"right\",c.windowWidth-I.left-20);break;case\"sw-alt\":N.set(\"left\",I.left);N.set(\"top\",I.top+P);break;case\"se\":N.set(\"left\",I.left-20);N.set(\"top\",I.top+P);break;case\"se-alt\":N.set(\"top\",I.top+P);N.set(\"right\",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case\"n\":M=O.left+N/2;L=O.top;break;case\"e\":M=O.left+N;L=O.top+I/2;break;case\"s\":M=O.left+N/2;L=O.top+I;break;case\"w\":M=O.left;L=O.top+I/2;break;case\"nw\":M=O.left;L=O.top;break;case\"ne\":M=O.left+N;L=O.top;break;case\"sw\":M=O.left;L=O.top+I;break;case\"se\":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest(\"svg\")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=[\"nw\",\"n\",\"ne\",\"e\",\"se\",\"s\",\"sw\",\"w\"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k(\"#\"+Q.popupId);if(O.length===0){O=k(\"<div/>\",{id:Q.popupId});if(w.length===0){w=k(\"body\")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on(\"mousemove\",M);s.on(\"scroll\",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger(\"powerTipPreRender\");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger(\"powerTipRender\");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger(\"powerTipOpen\")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set(\"top\",c.currentY+Q.offset);T.set(\"left\",c.currentX+Q.offset);O.css(T);R.trigger(\"powerTipClose\")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set(\"top\",c.currentY+Q.offset);U.set(\"left\",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set(\"left\",c.windowWidth-R)}else{if(S===p.bottom){U.set(\"top\",c.scrollTop+c.windowHeight-V)}}}else{U.set(\"left\",c.currentX-R-Q.offset);U.set(\"top\",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set(\"top\",0);V.set(\"left\",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(\":disabled\")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(\":focus\")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on(\"mousemove\",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k(\"#\"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));/*!\n * jQuery UI Touch Punch 0.2.3\n *\n * Copyright 2011–2014, Dave Furfero\n * Dual licensed under the MIT or GPL Version 2 licenses.\n *\n * Depends:\n *  jquery.ui.widget.js\n *  jquery.ui.mouse.js\n */\n(function(b){b.support.touch=\"ontouchend\" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent(\"MouseEvents\");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,\"mouseover\");e(h,\"mousemove\");e(h,\"mousedown\")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,\"mousemove\")};d._touchEnd=function(g){if(!a){return}e(g,\"mouseup\");e(g,\"mouseout\");if(!this._touchMoved){e(g,\"click\")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,\"_touchStart\"),touchmove:b.proxy(g,\"_touchMove\"),touchend:b.proxy(g,\"_touchEnd\")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,\"_touchStart\"),touchmove:b.proxy(g,\"_touchMove\"),touchend:b.proxy(g,\"_touchEnd\")});c.call(g)}})(jQuery);/*!\n * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016\n * http://www.smartmenus.org/\n *\n * Copyright Vasil Dinkov, Vadikom Web Ltd.\n * http://vadikom.com\n *\n * Licensed MIT\n */\n(function(a){if(typeof define===\"function\"&&define.amd){define([\"jquery\"],a)}else{if(typeof module===\"object\"&&typeof module.exports===\"object\"){module.exports=a(require(\"jquery\"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d=\"ontouchstart\" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=\".smartmenus_mouse\";if(!h&&!m){var o=true,l=null;a(document).bind(i([[\"mousemove\",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest(\"a\");if(r.is(\"a\")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?\"touchstart\":\"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut\",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=\"\"}var m={};a.each(l,function(o,p){m[p[0].split(\" \").join(n+\" \")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId=\"\";this.accessIdPrefix=\"\";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d=\"perspective\" in m.style||\"webkitPerspective\" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+\"\").replace(/\\D/g,\"\");this.accessIdPrefix=\"sm-\"+this.rootId+\"-\";if(this.$root.hasClass(\"sm-rtl\")){this.opts.rightToLeftSubMenus=true}var r=\".smartmenus\";this.$root.data(\"smartmenus\",this).attr(\"data-smartmenus-id\",this.rootId).dataSM(\"level\",1).bind(i([[\"mouseover focusin\",a.proxy(this.rootOver,this)],[\"mouseout focusout\",a.proxy(this.rootOut,this)],[\"keydown\",a.proxy(this.rootKeyDown,this)]],r)).delegate(\"a\",i([[\"mouseenter\",a.proxy(this.itemEnter,this)],[\"mouseleave\",a.proxy(this.itemLeave,this)],[\"mousedown\",a.proxy(this.itemDown,this)],[\"focus\",a.proxy(this.itemFocus,this)],[\"blur\",a.proxy(this.itemBlur,this)],[\"click\",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([[\"touchstart\",a.proxy(this.docTouchStart,this)],[\"touchmove\",a.proxy(this.docTouchMove,this)],[\"touchend\",a.proxy(this.docTouchEnd,this)],[\"click\",a.proxy(this.docClick,this)]],r))}a(window).bind(i([[\"resize orientationchange\",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a(\"<span/>\").addClass(\"sub-arrow\");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find(\"ul\").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find(\"a\").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\\.[^#\\?\\/]*/i,m=/#.*/,q=window.location.href.replace(p,\"\"),o=q.replace(m,\"\");this.$root.find(\"a\").each(function(){var s=this.href.replace(p,\"\"),t=a(this);if(s==q||s==o){t.addClass(\"current\");if(l.opts.markCurrentTree){t.parentsUntil(\"[data-smartmenus-id]\",\"ul\").each(function(){a(this).dataSM(\"parent-a\").addClass(\"current\")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=\".smartmenus\";this.$root.removeData(\"smartmenus\").removeAttr(\"data-smartmenus-id\").removeDataSM(\"level\").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find(\"ul\").each(function(){var o=a(this);if(o.dataSM(\"scroll-arrows\")){o.dataSM(\"scroll-arrows\").remove()}if(o.dataSM(\"shown-before\")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:\"\",minWidth:\"\",maxWidth:\"\"}).removeClass(\"sm-nowrap\")}if(o.dataSM(\"scroll-arrows\")){o.dataSM(\"scroll-arrows\").remove()}o.css({zIndex:\"\",top:\"\",left:\"\",marginLeft:\"\",marginTop:\"\",display:\"\"})}if((o.attr(\"id\")||\"\").indexOf(l.accessIdPrefix)==0){o.removeAttr(\"id\")}}).removeDataSM(\"in-mega\").removeDataSM(\"shown-before\").removeDataSM(\"ie-shim\").removeDataSM(\"scroll-arrows\").removeDataSM(\"parent-a\").removeDataSM(\"level\").removeDataSM(\"beforefirstshowfired\").removeAttr(\"role\").removeAttr(\"aria-hidden\").removeAttr(\"aria-labelledby\").removeAttr(\"aria-expanded\");this.$root.find(\"a.has-submenu\").each(function(){var o=a(this);if(o.attr(\"id\").indexOf(l.accessIdPrefix)==0){o.removeAttr(\"id\")}}).removeClass(\"has-submenu\").removeDataSM(\"sub\").removeAttr(\"aria-haspopup\").removeAttr(\"aria-controls\").removeAttr(\"aria-expanded\").closest(\"li\").removeDataSM(\"sub\");if(this.opts.subIndicators){this.$root.find(\"span.sub-arrow\").remove()}if(this.opts.markCurrentItem){this.$root.find(\"a.current\").removeClass(\"current\")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(\":visible\")){var m=this.$root.offset();this.$disableOverlay=a('<div class=\"sm-jquery-disable-overlay\"/>').css({position:\"absolute\",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is(\"a\")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest(\"ul\");while(l.dataSM(\"in-mega\")){l=l.parent().closest(\"ul\")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css(\"display\")==\"none\"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:\"absolute\",visibility:\"hidden\"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?\"$root\":\"$firstSub\"].css(\"z-index\"));if(!l&&isNaN(m)){m=parseInt(this.$root.css(\"z-index\"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?\"Height\":\"Width\",o=document.documentElement[\"client\"+m],n=window[\"inner\"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css(\"position\")==\"static\"},isCSSOn:function(){return this.$firstLink.css(\"display\")==\"block\"},isFixed:function(){var l=this.$root.css(\"position\")==\"fixed\";if(!l){this.$root.parentsUntil(\"body\").each(function(){if(a(this).css(\"position\")==\"fixed\"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass(\"mega-menu\")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest(\"ul\"),q=n.dataSM(\"level\");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM(\"parent-a\")[0])){var m=this;a(n.parentsUntil(\"[data-smartmenus-id]\",\"ul\").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM(\"parent-a\"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler(\"activate.smapi\",p[0])===false){return}var o=p.dataSM(\"sub\");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler(\"blur.smapi\",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest(\"ul\")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler(\"click.smapi\",n[0])===false){return false}var p=a(o.target).is(\"span.sub-arrow\"),m=n.dataSM(\"sub\"),l=m?m.dataSM(\"level\")==2:false;if(m&&!m.is(\":visible\")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(\":visible\")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass(\"disabled\")||this.$root.triggerHandler(\"select.smapi\",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM(\"mousedown\",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest(\"ul\").dataSM(\"level\")==1?1:this.opts.showTimeout)}this.$root.triggerHandler(\"mouseenter.smapi\",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM(\"mousedown\"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler(\"focus.smapi\",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM(\"mousedown\");this.$root.triggerHandler(\"mouseleave.smapi\",l[0])},menuHide:function(m){if(this.$root.triggerHandler(\"beforehide.smapi\",m[0])===false){return}m.stop(true,true);if(m.css(\"display\")!=\"none\"){var l=function(){m.css(\"z-index\",\"\")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM(\"ie-shim\")){m.dataSM(\"ie-shim\").remove().css({\"-webkit-transform\":\"\",transform:\"\"})}if(m.dataSM(\"scroll\")){this.menuScrollStop(m);m.css({\"touch-action\":\"\",\"-ms-touch-action\":\"\",\"-webkit-transform\":\"\",transform:\"\"}).unbind(\".smartmenus_scroll\").removeDataSM(\"scroll\").dataSM(\"scroll-arrows\").hide()}m.dataSM(\"parent-a\").removeClass(\"highlighted\").attr(\"aria-expanded\",\"false\");m.attr({\"aria-expanded\":\"false\",\"aria-hidden\":\"true\"});var n=m.dataSM(\"level\");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler(\"hide.smapi\",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(\":visible\")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM(\"ie-shim\")){this.$root.dataSM(\"ie-shim\").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler(\"hideAll.smapi\")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM(\"sub\");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM(\"ie-shim\")){l.dataSM(\"ie-shim\",a(\"<iframe/>\").attr({src:\"javascript:0\",tabindex:-9}).css({position:\"absolute\",top:\"auto\",left:\"0\",opacity:0,border:\"0\"}))}},menuInit:function(l){if(!l.dataSM(\"in-mega\")){if(l.hasClass(\"mega-menu\")){l.find(\"ul\").dataSM(\"in-mega\",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll(\"a\").eq(-1);if(!n.length){n=l.prevAll().find(\"a\").eq(-1)}n.addClass(\"has-submenu\").dataSM(\"sub\",l);l.dataSM(\"parent-a\",n).dataSM(\"level\",q).parent().dataSM(\"sub\",l);var o=n.attr(\"id\")||this.accessIdPrefix+(++this.idInc),p=l.attr(\"id\")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,\"aria-haspopup\":\"true\",\"aria-controls\":p,\"aria-expanded\":\"false\"});l.attr({id:p,role:\"group\",\"aria-hidden\":\"true\",\"aria-labelledby\":o,\"aria-expanded\":\"false\"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM(\"parent-a\"),D=r.closest(\"li\"),E=D.parent(),l=K.dataSM(\"level\"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is(\"[data-sm-horizontal-sub]\")||l==2&&!E.hasClass(\"sm-vertical\"),B=this.opts.rightToLeftSubMenus&&!D.is(\"[data-sm-reverse]\")||!this.opts.rightToLeftSubMenus&&D.is(\"[data-sm-reverse]\"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM(\"scroll-arrows\")){K.dataSM(\"scroll-arrows\",a([a('<span class=\"scroll-up\"><span class=\"scroll-up-arrow\"></span></span>')[0],a('<span class=\"scroll-down\"><span class=\"scroll-down-arrow\"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM(\"scroll\").up=a(this).hasClass(\"scroll-up\");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},\"mousewheel DOMMouseScroll\":function(x){x.preventDefault()}}).insertAfter(K))}var I=\".smartmenus_scroll\";K.dataSM(\"scroll\",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM(\"scroll-arrows\").eq(1))}).bind(i([[\"mouseover\",function(x){G.menuScrollOver(K,x)}],[\"mouseout\",function(x){G.menuScrollOut(K,x)}],[\"mousewheel DOMMouseScroll\",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM(\"scroll-arrows\").css({top:\"auto\",left:\"0\",marginLeft:C+(parseInt(K.css(\"border-left-width\"))||0),width:t-(parseInt(K.css(\"border-left-width\"))||0)-(parseInt(K.css(\"border-right-width\"))||0),zIndex:K.css(\"z-index\")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({\"touch-action\":\"none\",\"-ms-touch-action\":\"none\"}).bind(i([[d?\"touchstart touchmove touchend\":\"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp\",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:\"auto\",left:\"0\",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM(\"ie-shim\")){K.dataSM(\"ie-shim\").css({zIndex:K.css(\"z-index\"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM(\"scroll\"),q=r.dataSM(\"scroll-arrows\"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM(\"level\");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM(\"sub\")&&this.activatedItems[l-1].dataSM(\"sub\").is(\":visible\")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM(\"ie-shim\")).css(this.cssTransforms3d?{\"-webkit-transform\":\"translate3d(0, \"+p.y+\"px, 0)\",transform:\"translate3d(0, \"+p.y+\"px, 0)\"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM(\"scroll-arrows\").eq(l?0:1).is(\":visible\")){m.dataSM(\"scroll\").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||\"\").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM(\"scroll-arrows\").css(\"visibility\",\"hidden\")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM(\"scroll\"),l=a(window).scrollTop()-n.dataSM(\"parent-a\").offset().top-m.itemH;n.dataSM(\"scroll-arrows\").eq(0).css(\"margin-top\",l).end().eq(1).css(\"margin-top\",l+this.getViewportHeight()-m.arrowDownH).end().css(\"visibility\",\"visible\")}}},menuScrollRefreshData:function(n){var m=n.dataSM(\"scroll\"),l=a(window).scrollTop()-n.dataSM(\"parent-a\").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css(\"margin-top\"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM(\"scroll\").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM(\"scroll\");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM(\"beforefirstshowfired\")){n.dataSM(\"beforefirstshowfired\",true);if(this.$root.triggerHandler(\"beforefirstshow.smapi\",n[0])===false){return}}if(this.$root.triggerHandler(\"beforeshow.smapi\",n[0])===false){return}n.dataSM(\"shown-before\",true).stop(true,true);if(!n.is(\":visible\")){var m=n.dataSM(\"parent-a\");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass(\"highlighted\")}if(this.isCollapsible()){n.removeClass(\"sm-nowrap\").css({zIndex:\"\",width:\"auto\",minWidth:\"\",maxWidth:\"\",top:\"\",left:\"\",marginLeft:\"\",marginTop:\"\"})}else{n.css(\"z-index\",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:\"auto\",minWidth:\"\",maxWidth:\"\"}).addClass(\"sm-nowrap\");if(this.opts.subMenusMinWidth){n.css(\"min-width\",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css(\"max-width\",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass(\"sm-nowrap\").css(\"width\",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM(\"ie-shim\")){n.dataSM(\"ie-shim\").insertBefore(n)}}var l=function(){n.css(\"overflow\",\"\")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr(\"aria-expanded\",\"true\");n.attr({\"aria-expanded\":\"true\",\"aria-hidden\":\"false\"});this.visibleSubMenus.push(n);this.$root.triggerHandler(\"show.smapi\",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\\n\\nIf you want to show this menu via the \"popupShow\" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM(\"shown-before\",true).stop(true,true);if(!this.$root.is(\":visible\")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM(\"ie-shim\")){this.$root.dataSM(\"ie-shim\").css({zIndex:this.$root.css(\"z-index\"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css(\"overflow\",\"\")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM(\"sub\");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is(\"a\")&&this.handleItemEvents(l)){var n=l.dataSM(\"sub\");if(n&&!n.is(\":visible\")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!(\"onorientationchange\" in window)||m.type==\"orientationchange\"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+\"_smartmenus\",m)}return this.data(l+\"_smartmenus\")};a.fn.removeDataSM=function(l){return this.removeData(l+\"_smartmenus\")};a.fn.smartmenus=function(m){if(typeof m==\"string\"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data(\"smartmenus\");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:\"10em\",subMenusMaxWidth:\"20em\",subIndicators:true,subIndicatorsPos:\"prepend\",subIndicatorsText:\"+\",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));"
  },
  {
    "path": "website/static/docs/en/html/main_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/main.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('main_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">main.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;iostream&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"fasttext_8h_source.html\">fasttext.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"args_8h_source.html\">args.h</a>&quot;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:aead97c99e70c0da7036fbbe230ef68b6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6\">printUsage</a> ()</td></tr>\n<tr class=\"separator:aead97c99e70c0da7036fbbe230ef68b6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa743c1f04268af8569712a85c561a67f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#aa743c1f04268af8569712a85c561a67f\">printQuantizeUsage</a> ()</td></tr>\n<tr class=\"separator:aa743c1f04268af8569712a85c561a67f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2cbfad77fba337d7d8b35790de95f0b8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8\">printTestUsage</a> ()</td></tr>\n<tr class=\"separator:a2cbfad77fba337d7d8b35790de95f0b8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa858ef5149aa995107818c079d930037\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#aa858ef5149aa995107818c079d930037\">printPredictUsage</a> ()</td></tr>\n<tr class=\"separator:aa858ef5149aa995107818c079d930037\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab9897a3337e4f0833d547e044fd033eb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#ab9897a3337e4f0833d547e044fd033eb\">printPrintWordVectorsUsage</a> ()</td></tr>\n<tr class=\"separator:ab9897a3337e4f0833d547e044fd033eb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4328b0d06690e73334e2e7e1135efc37\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a4328b0d06690e73334e2e7e1135efc37\">printPrintSentenceVectorsUsage</a> ()</td></tr>\n<tr class=\"separator:a4328b0d06690e73334e2e7e1135efc37\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a086a02edc37d73f760db2882df2ea57d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a086a02edc37d73f760db2882df2ea57d\">printPrintNgramsUsage</a> ()</td></tr>\n<tr class=\"separator:a086a02edc37d73f760db2882df2ea57d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6e07bb2da057cf6a518eed616b490bdd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd\">quantize</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a6e07bb2da057cf6a518eed616b490bdd\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8126ecd2d93d3b73b1c516e323575052\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a8126ecd2d93d3b73b1c516e323575052\">printNNUsage</a> ()</td></tr>\n<tr class=\"separator:a8126ecd2d93d3b73b1c516e323575052\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2f26c98424ff31f8d5d4604f5bc91b15\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15\">printAnalogiesUsage</a> ()</td></tr>\n<tr class=\"separator:a2f26c98424ff31f8d5d4604f5bc91b15\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a425a56e6d14ed741a6565821124c9413\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a425a56e6d14ed741a6565821124c9413\">test</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a425a56e6d14ed741a6565821124c9413\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4479606e315746032f4ecde4b62ebc26\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\">predict</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a4479606e315746032f4ecde4b62ebc26\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a133e93a6033465d23657e023a022c16e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a133e93a6033465d23657e023a022c16e\">printWordVectors</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a133e93a6033465d23657e023a022c16e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4c172f0e6b3cdcfac214743a95254c7d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d\">printSentenceVectors</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a4c172f0e6b3cdcfac214743a95254c7d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af2bf6913aa4d5fa8fa15100be6cbe705\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705\">printNgrams</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:af2bf6913aa4d5fa8fa15100be6cbe705\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a821b5934bab6d9d7daf366e92a4621e4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4\">nn</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a821b5934bab6d9d7daf366e92a4621e4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7ffcd938d3c75d2f9249d6c122b780a4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4\">analogies</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a7ffcd938d3c75d2f9249d6c122b780a4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7137053a88d8b242fcac8625ce302b16\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a7137053a88d8b242fcac8625ce302b16\">train</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a7137053a88d8b242fcac8625ce302b16\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3c04138a5bfe5d72780bb7e82a18e627\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627\">main</a> (int argc, char **argv)</td></tr>\n<tr class=\"separator:a3c04138a5bfe5d72780bb7e82a18e627\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Function Documentation</h2>\n<a id=\"a7ffcd938d3c75d2f9249d6c122b780a4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7ffcd938d3c75d2f9249d6c122b780a4\">&#9670;&nbsp;</a></span>analogies()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void analogies </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3c04138a5bfe5d72780bb7e82a18e627\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3c04138a5bfe5d72780bb7e82a18e627\">&#9670;&nbsp;</a></span>main()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int main </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a821b5934bab6d9d7daf366e92a4621e4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a821b5934bab6d9d7daf366e92a4621e4\">&#9670;&nbsp;</a></span>nn()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void nn </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4479606e315746032f4ecde4b62ebc26\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4479606e315746032f4ecde4b62ebc26\">&#9670;&nbsp;</a></span>predict()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void predict </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2f26c98424ff31f8d5d4604f5bc91b15\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2f26c98424ff31f8d5d4604f5bc91b15\">&#9670;&nbsp;</a></span>printAnalogiesUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printAnalogiesUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af2bf6913aa4d5fa8fa15100be6cbe705\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af2bf6913aa4d5fa8fa15100be6cbe705\">&#9670;&nbsp;</a></span>printNgrams()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printNgrams </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8126ecd2d93d3b73b1c516e323575052\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8126ecd2d93d3b73b1c516e323575052\">&#9670;&nbsp;</a></span>printNNUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printNNUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa858ef5149aa995107818c079d930037\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa858ef5149aa995107818c079d930037\">&#9670;&nbsp;</a></span>printPredictUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printPredictUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a086a02edc37d73f760db2882df2ea57d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a086a02edc37d73f760db2882df2ea57d\">&#9670;&nbsp;</a></span>printPrintNgramsUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printPrintNgramsUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4328b0d06690e73334e2e7e1135efc37\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4328b0d06690e73334e2e7e1135efc37\">&#9670;&nbsp;</a></span>printPrintSentenceVectorsUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printPrintSentenceVectorsUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab9897a3337e4f0833d547e044fd033eb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab9897a3337e4f0833d547e044fd033eb\">&#9670;&nbsp;</a></span>printPrintWordVectorsUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printPrintWordVectorsUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa743c1f04268af8569712a85c561a67f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa743c1f04268af8569712a85c561a67f\">&#9670;&nbsp;</a></span>printQuantizeUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printQuantizeUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a4c172f0e6b3cdcfac214743a95254c7d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4c172f0e6b3cdcfac214743a95254c7d\">&#9670;&nbsp;</a></span>printSentenceVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printSentenceVectors </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2cbfad77fba337d7d8b35790de95f0b8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2cbfad77fba337d7d8b35790de95f0b8\">&#9670;&nbsp;</a></span>printTestUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printTestUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aead97c99e70c0da7036fbbe230ef68b6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aead97c99e70c0da7036fbbe230ef68b6\">&#9670;&nbsp;</a></span>printUsage()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printUsage </td>\n          <td>(</td>\n          <td class=\"paramname\"></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a133e93a6033465d23657e023a022c16e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a133e93a6033465d23657e023a022c16e\">&#9670;&nbsp;</a></span>printWordVectors()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void printWordVectors </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a6e07bb2da057cf6a518eed616b490bdd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6e07bb2da057cf6a518eed616b490bdd\">&#9670;&nbsp;</a></span>quantize()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void quantize </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a425a56e6d14ed741a6565821124c9413\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a425a56e6d14ed741a6565821124c9413\">&#9670;&nbsp;</a></span>test()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void test </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7137053a88d8b242fcac8625ce302b16\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7137053a88d8b242fcac8625ce302b16\">&#9670;&nbsp;</a></span>train()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void train </td>\n          <td>(</td>\n          <td class=\"paramtype\">int&#160;</td>\n          <td class=\"paramname\"><em>argc</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">char **&#160;</td>\n          <td class=\"paramname\"><em>argv</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"main_8cc.html\">main.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/main_8cc.js",
    "content": "var main_8cc =\n[\n    [ \"analogies\", \"main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4\", null ],\n    [ \"main\", \"main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627\", null ],\n    [ \"nn\", \"main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4\", null ],\n    [ \"predict\", \"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\", null ],\n    [ \"printAnalogiesUsage\", \"main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15\", null ],\n    [ \"printNgrams\", \"main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705\", null ],\n    [ \"printNNUsage\", \"main_8cc.html#a8126ecd2d93d3b73b1c516e323575052\", null ],\n    [ \"printPredictUsage\", \"main_8cc.html#aa858ef5149aa995107818c079d930037\", null ],\n    [ \"printPrintNgramsUsage\", \"main_8cc.html#a086a02edc37d73f760db2882df2ea57d\", null ],\n    [ \"printPrintSentenceVectorsUsage\", \"main_8cc.html#a4328b0d06690e73334e2e7e1135efc37\", null ],\n    [ \"printPrintWordVectorsUsage\", \"main_8cc.html#ab9897a3337e4f0833d547e044fd033eb\", null ],\n    [ \"printQuantizeUsage\", \"main_8cc.html#aa743c1f04268af8569712a85c561a67f\", null ],\n    [ \"printSentenceVectors\", \"main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d\", null ],\n    [ \"printTestUsage\", \"main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8\", null ],\n    [ \"printUsage\", \"main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6\", null ],\n    [ \"printWordVectors\", \"main_8cc.html#a133e93a6033465d23657e023a022c16e\", null ],\n    [ \"quantize\", \"main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd\", null ],\n    [ \"test\", \"main_8cc.html#a425a56e6d14ed741a6565821124c9413\", null ],\n    [ \"train\", \"main_8cc.html#a7137053a88d8b242fcac8625ce302b16\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/matrix_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/matrix.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('matrix_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">matrix.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a>&quot;</code><br />\n<code>#include &lt;assert.h&gt;</code><br />\n<code>#include &lt;random&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"utils_8h_source.html\">utils.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&quot;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"matrix_8cc.html\">matrix.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/matrix_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/matrix.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('matrix_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">matrix.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;cstdint&gt;</code><br />\n<code>#include &lt;istream&gt;</code><br />\n<code>#include &lt;ostream&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n</div>\n<p><a href=\"matrix_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"matrix_8h.html\">matrix.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/matrix_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/matrix.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('matrix_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">matrix.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"matrix_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_MATRIX_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_MATRIX_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;cstdint&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;istream&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"preprocessor\">#include &lt;ostream&gt;</span></div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;</div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;</div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;</div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;<span class=\"keyword\">class </span>Vector;</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;</div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Matrix.html\">   23</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a> {</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">   26</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* <a class=\"code\" href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">data_</a>;</div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">   27</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">m_</a>;</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">   28</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">n_</a>;</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\">   29</span>&#160;</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\">   30</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">Matrix</a>();</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\">   31</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">Matrix</a>(int64_t, int64_t);</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\">   32</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">Matrix</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;);</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\">   33</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp; <a class=\"code\" href=\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\">operator=</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;);</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\">   34</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\">~Matrix</a>();</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\">   35</span>&#160;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">   36</a></span>&#160;    <span class=\"keyword\">inline</span> <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&amp; <a class=\"code\" href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">at</a>(int64_t i, int64_t j)<span class=\"keyword\"> const </span>{<span class=\"keywordflow\">return</span> data_[i * n_ + j];};</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\">   37</a></span>&#160;    <span class=\"keyword\">inline</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&amp; <a class=\"code\" href=\"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\">at</a>(int64_t i, int64_t j) {<span class=\"keywordflow\">return</span> data_[i * n_ + j];};</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\">   38</span>&#160;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\">   39</span>&#160;</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\">   40</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\">zero</a>();</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\">   41</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\">uniform</a>(<a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\">   42</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\">dotRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, int64_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\">   43</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\">addRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, int64_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\">   44</span>&#160;</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\">   45</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\">multiplyRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp; nums, int64_t ib = 0, int64_t ie = -1);</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\">   46</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\">divideRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp; denoms, int64_t ib = 0, int64_t ie = -1);</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\">   47</span>&#160;</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">l2NormRow</a>(int64_t i) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\">   49</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">l2NormRow</a>(<a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp; norms) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\">   50</span>&#160;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\">   51</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\">save</a>(std::ostream&amp;);</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\">   52</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\">load</a>(std::istream&amp;);</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\">   53</span>&#160;};</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;</div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\">   55</span>&#160;}</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\">   56</span>&#160;</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_ae6b962ed2ca31fb3a8d094c8f85d6136\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\">fasttext::Matrix::dotRow</a></div><div class=\"ttdeci\">real dotRow(const Vector &amp;, int64_t) const</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:68</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_afc9c477f90e9d9a193e1710e46a68221\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\">fasttext::Matrix::at</a></div><div class=\"ttdeci\">const real &amp; at(int64_t i, int64_t j) const</div><div class=\"ttdef\"><b>Definition:</b> matrix.h:36</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_adbdd245dfc806fbbbef33a07e4805084\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\">fasttext::Matrix::m_</a></div><div class=\"ttdeci\">int64_t m_</div><div class=\"ttdef\"><b>Definition:</b> matrix.h:27</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_abb6222f956da7e32391092158eaaf5a0\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\">fasttext::Matrix::at</a></div><div class=\"ttdeci\">real &amp; at(int64_t i, int64_t j)</div><div class=\"ttdef\"><b>Definition:</b> matrix.h:37</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></div><div class=\"ttdef\"><b>Definition:</b> vector.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_aa61bc6b1a1b2467d7fb41a9e99d96922\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\">fasttext::Matrix::l2NormRow</a></div><div class=\"ttdeci\">real l2NormRow(int64_t i) const</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:114</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_ad4442ecc4c59f34e8d83b0ce87472417\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\">fasttext::Matrix::~Matrix</a></div><div class=\"ttdeci\">~Matrix()</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:50</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_aeeddaea318709ea37127caae30194ff3\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\">fasttext::Matrix::n_</a></div><div class=\"ttdeci\">int64_t n_</div><div class=\"ttdef\"><b>Definition:</b> matrix.h:28</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_a44eee2d614a0cce8396cd33ecb7439ba\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\">fasttext::Matrix::zero</a></div><div class=\"ttdeci\">void zero()</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:54</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_aaf869b3115a6b404c13f5c31678c147b\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\">fasttext::Matrix::save</a></div><div class=\"ttdeci\">void save(std::ostream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:130</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_ab4d6dd58db43dd2c4a6fbb12c74541a0\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\">fasttext::Matrix::divideRow</a></div><div class=\"ttdeci\">void divideRow(const Vector &amp;denoms, int64_t ib=0, int64_t ie=-1)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:101</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_a8a04afebc25fcf38376f272371e0b60d\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\">fasttext::Matrix::load</a></div><div class=\"ttdeci\">void load(std::istream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:136</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_abe27a5e1c276ab145297c4941cd468f3\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\">fasttext::Matrix::operator=</a></div><div class=\"ttdeci\">Matrix &amp; operator=(const Matrix &amp;)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:42</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_a103b48301d251f8af69409c123435b3c\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\">fasttext::Matrix::multiplyRow</a></div><div class=\"ttdeci\">void multiplyRow(const Vector &amp;nums, int64_t ib=0, int64_t ie=-1)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:88</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_aceef1bc55d67b38c8b2b2c9ba7e769de\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\">fasttext::Matrix::addRow</a></div><div class=\"ttdeci\">void addRow(const Vector &amp;, int64_t, real)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:79</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></div><div class=\"ttdef\"><b>Definition:</b> matrix.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_aef334e5d5a164b01c2b74960ffa3782d\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\">fasttext::Matrix::uniform</a></div><div class=\"ttdeci\">void uniform(real)</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:60</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_a3a63d6e3e3db63e5f756bbc4692a46ae\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\">fasttext::Matrix::data_</a></div><div class=\"ttdeci\">real * data_</div><div class=\"ttdef\"><b>Definition:</b> matrix.h:26</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html_ae3eed8f78b046582d6504eaae17b9890\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\">fasttext::Matrix::Matrix</a></div><div class=\"ttdeci\">Matrix()</div><div class=\"ttdef\"><b>Definition:</b> matrix.cc:21</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"matrix_8h.html\">matrix.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/menu.js",
    "content": "function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {\n  function makeTree(data,relPath) {\n    var result='';\n    if ('children' in data) {\n      result+='<ul>';\n      for (var i in data.children) {\n        result+='<li><a href=\"'+relPath+data.children[i].url+'\">'+\n                                data.children[i].text+'</a>'+\n                                makeTree(data.children[i],relPath)+'</li>';\n      }\n      result+='</ul>';\n    }\n    return result;\n  }\n\n  $('#main-nav').append(makeTree(menudata,relPath));\n  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');\n  if (searchEnabled) {\n    if (serverSide) {\n      $('#main-menu').append('<li style=\"float:right\"><div id=\"MSearchBox\" class=\"MSearchBoxInactive\"><div class=\"left\"><form id=\"FSearchBox\" action=\"'+searchPage+'\" method=\"get\"><img id=\"MSearchSelect\" src=\"'+relPath+'search/mag.png\" alt=\"\"/><input type=\"text\" id=\"MSearchField\" name=\"query\" value=\"'+search+'\" size=\"20\" accesskey=\"S\" onfocus=\"searchBox.OnSearchFieldFocus(true)\" onblur=\"searchBox.OnSearchFieldFocus(false)\"></form></div><div class=\"right\"></div></div></li>');\n    } else {\n      $('#main-menu').append('<li style=\"float:right\"><div id=\"MSearchBox\" class=\"MSearchBoxInactive\"><span class=\"left\"><img id=\"MSearchSelect\" src=\"'+relPath+'search/mag_sel.png\" onmouseover=\"return searchBox.OnSearchSelectShow()\" onmouseout=\"return searchBox.OnSearchSelectHide()\" alt=\"\"/><input type=\"text\" id=\"MSearchField\" value=\"'+search+'\" accesskey=\"S\" onfocus=\"searchBox.OnSearchFieldFocus(true)\" onblur=\"searchBox.OnSearchFieldFocus(false)\" onkeyup=\"searchBox.OnSearchFieldChange(event)\"/></span><span class=\"right\"><a id=\"MSearchClose\" href=\"javascript:searchBox.CloseResultsWindow()\"><img id=\"MSearchCloseImg\" border=\"0\" src=\"'+relPath+'search/close.png\" alt=\"\"/></a></span></div></li>');\n    }\n  }\n  $('#main-menu').smartmenus();\n}\n"
  },
  {
    "path": "website/static/docs/en/html/menudata.js",
    "content": "var menudata={children:[\n{text:\"Main Page\",url:\"index.html\"},\n{text:\"Namespaces\",url:\"namespaces.html\",children:[\n{text:\"Namespace List\",url:\"namespaces.html\"},\n{text:\"Namespace Members\",url:\"namespacemembers.html\",children:[\n{text:\"All\",url:\"namespacemembers.html\"},\n{text:\"Functions\",url:\"namespacemembers_func.html\"},\n{text:\"Typedefs\",url:\"namespacemembers_type.html\"},\n{text:\"Enumerations\",url:\"namespacemembers_enum.html\"}]}]},\n{text:\"Classes\",url:\"annotated.html\",children:[\n{text:\"Class List\",url:\"annotated.html\"},\n{text:\"Class Index\",url:\"classes.html\"},\n{text:\"Class Members\",url:\"functions.html\",children:[\n{text:\"All\",url:\"functions.html\",children:[\n{text:\"a\",url:\"functions.html#index_a\"},\n{text:\"b\",url:\"functions_b.html#index_b\"},\n{text:\"c\",url:\"functions_c.html#index_c\"},\n{text:\"d\",url:\"functions_d.html#index_d\"},\n{text:\"e\",url:\"functions_e.html#index_e\"},\n{text:\"f\",url:\"functions_f.html#index_f\"},\n{text:\"g\",url:\"functions_g.html#index_g\"},\n{text:\"h\",url:\"functions_h.html#index_h\"},\n{text:\"i\",url:\"functions_i.html#index_i\"},\n{text:\"k\",url:\"functions_k.html#index_k\"},\n{text:\"l\",url:\"functions_l.html#index_l\"},\n{text:\"m\",url:\"functions_m.html#index_m\"},\n{text:\"n\",url:\"functions_n.html#index_n\"},\n{text:\"o\",url:\"functions_o.html#index_o\"},\n{text:\"p\",url:\"functions_p.html#index_p\"},\n{text:\"q\",url:\"functions_q.html#index_q\"},\n{text:\"r\",url:\"functions_r.html#index_r\"},\n{text:\"s\",url:\"functions_s.html#index_s\"},\n{text:\"t\",url:\"functions_t.html#index_t\"},\n{text:\"u\",url:\"functions_u.html#index_u\"},\n{text:\"v\",url:\"functions_v.html#index_v\"},\n{text:\"w\",url:\"functions_w.html#index_w\"},\n{text:\"z\",url:\"functions_z.html#index_z\"},\n{text:\"~\",url:\"functions_0x7e.html#index_0x7e\"}]},\n{text:\"Functions\",url:\"functions_func.html\",children:[\n{text:\"a\",url:\"functions_func.html#index_a\"},\n{text:\"b\",url:\"functions_func.html#index_b\"},\n{text:\"c\",url:\"functions_func.html#index_c\"},\n{text:\"d\",url:\"functions_func.html#index_d\"},\n{text:\"e\",url:\"functions_func.html#index_e\"},\n{text:\"f\",url:\"functions_func.html#index_f\"},\n{text:\"g\",url:\"functions_func.html#index_g\"},\n{text:\"h\",url:\"functions_func.html#index_h\"},\n{text:\"i\",url:\"functions_func.html#index_i\"},\n{text:\"k\",url:\"functions_func.html#index_k\"},\n{text:\"l\",url:\"functions_func.html#index_l\"},\n{text:\"m\",url:\"functions_func.html#index_m\"},\n{text:\"n\",url:\"functions_func.html#index_n\"},\n{text:\"o\",url:\"functions_func.html#index_o\"},\n{text:\"p\",url:\"functions_func.html#index_p\"},\n{text:\"q\",url:\"functions_func.html#index_q\"},\n{text:\"r\",url:\"functions_func.html#index_r\"},\n{text:\"s\",url:\"functions_func.html#index_s\"},\n{text:\"t\",url:\"functions_func.html#index_t\"},\n{text:\"u\",url:\"functions_func.html#index_u\"},\n{text:\"v\",url:\"functions_func.html#index_v\"},\n{text:\"w\",url:\"functions_func.html#index_w\"},\n{text:\"z\",url:\"functions_func.html#index_z\"},\n{text:\"~\",url:\"functions_func.html#index_0x7e\"}]},\n{text:\"Variables\",url:\"functions_vars.html\",children:[\n{text:\"a\",url:\"functions_vars.html#index_a\"},\n{text:\"b\",url:\"functions_vars.html#index_b\"},\n{text:\"c\",url:\"functions_vars.html#index_c\"},\n{text:\"d\",url:\"functions_vars.html#index_d\"},\n{text:\"e\",url:\"functions_vars.html#index_e\"},\n{text:\"g\",url:\"functions_vars.html#index_g\"},\n{text:\"h\",url:\"functions_vars.html#index_h\"},\n{text:\"i\",url:\"functions_vars.html#index_i\"},\n{text:\"k\",url:\"functions_vars.html#index_k\"},\n{text:\"l\",url:\"functions_vars.html#index_l\"},\n{text:\"m\",url:\"functions_vars.html#index_m\"},\n{text:\"n\",url:\"functions_vars.html#index_n\"},\n{text:\"o\",url:\"functions_vars.html#index_o\"},\n{text:\"p\",url:\"functions_vars.html#index_p\"},\n{text:\"q\",url:\"functions_vars.html#index_q\"},\n{text:\"r\",url:\"functions_vars.html#index_r\"},\n{text:\"s\",url:\"functions_vars.html#index_s\"},\n{text:\"t\",url:\"functions_vars.html#index_t\"},\n{text:\"v\",url:\"functions_vars.html#index_v\"},\n{text:\"w\",url:\"functions_vars.html#index_w\"}]}]}]},\n{text:\"Files\",url:\"files.html\",children:[\n{text:\"File List\",url:\"files.html\"},\n{text:\"File Members\",url:\"globals.html\",children:[\n{text:\"All\",url:\"globals.html\"},\n{text:\"Functions\",url:\"globals_func.html\"},\n{text:\"Macros\",url:\"globals_defs.html\"}]}]}]}\n"
  },
  {
    "path": "website/static/docs/en/html/model_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/model.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('model_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">model.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"model_8h_source.html\">model.h</a>&quot;</code><br />\n<code>#include &lt;iostream&gt;</code><br />\n<code>#include &lt;assert.h&gt;</code><br />\n<code>#include &lt;algorithm&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"model_8cc.html\">model.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/model_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/model.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\"\n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('model_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\"\n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#define-members\">Macros</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">model.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;vector&gt;</code><br />\n<code>#include &lt;random&gt;</code><br />\n<code>#include &lt;utility&gt;</code><br />\n<code>#include &lt;memory&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"args_8h_source.html\">args.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"qmatrix_8h_source.html\">qmatrix.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n</div>\n<p><a href=\"model_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">fasttext::Model</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"define-members\"></a>\nMacros</h2></td></tr>\n<tr class=\"memitem:a2e8aaf1ce5284c2017df4d6a3b631532\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532\">SIGMOID_TABLE_SIZE</a>&#160;&#160;&#160;512</td></tr>\n<tr class=\"separator:a2e8aaf1ce5284c2017df4d6a3b631532\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a526b042c8c04cdd0f0f5c9e097d5ca34\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34\">MAX_SIGMOID</a>&#160;&#160;&#160;8</td></tr>\n<tr class=\"separator:a526b042c8c04cdd0f0f5c9e097d5ca34\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a39f445c336c3e871eccbaa0423b6daef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"model_8h.html#a39f445c336c3e871eccbaa0423b6daef\">LOG_TABLE_SIZE</a>&#160;&#160;&#160;512</td></tr>\n<tr class=\"separator:a39f445c336c3e871eccbaa0423b6daef\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Macro Definition Documentation</h2>\n<a id=\"a39f445c336c3e871eccbaa0423b6daef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a39f445c336c3e871eccbaa0423b6daef\">&#9670;&nbsp;</a></span>LOG_TABLE_SIZE</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">#define LOG_TABLE_SIZE&#160;&#160;&#160;512</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a526b042c8c04cdd0f0f5c9e097d5ca34\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a526b042c8c04cdd0f0f5c9e097d5ca34\">&#9670;&nbsp;</a></span>MAX_SIGMOID</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">#define MAX_SIGMOID&#160;&#160;&#160;8</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2e8aaf1ce5284c2017df4d6a3b631532\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2e8aaf1ce5284c2017df4d6a3b631532\">&#9670;&nbsp;</a></span>SIGMOID_TABLE_SIZE</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">#define SIGMOID_TABLE_SIZE&#160;&#160;&#160;512</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n<p>Copyright (c) 2016-present, Facebook, Inc. All rights reserved.</p>\n<p>This source code is licensed under the MIT-style license found in the LICENSE file in the root directory of this source tree. </p>\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"model_8h.html\">model.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/model_8h.js",
    "content": "var model_8h =\n[\n    [ \"Node\", \"structfasttext_1_1Node.html\", \"structfasttext_1_1Node\" ],\n    [ \"Model\", \"classfasttext_1_1Model.html\", \"classfasttext_1_1Model\" ],\n    [ \"LOG_TABLE_SIZE\", \"model_8h.html#a39f445c336c3e871eccbaa0423b6daef\", null ],\n    [ \"MAX_SIGMOID\", \"model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34\", null ],\n    [ \"SIGMOID_TABLE_SIZE\", \"model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/model_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/model.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('model_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">model.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"model_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_MODEL_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_MODEL_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;vector&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;random&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"preprocessor\">#include &lt;utility&gt;</span></div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;<span class=\"preprocessor\">#include &lt;memory&gt;</span></div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;</div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"args_8h.html\">args.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"matrix_8h.html\">matrix.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"vector_8h.html\">vector.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"qmatrix_8h.html\">qmatrix.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\"><a class=\"line\" href=\"model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532\">   24</a></span>&#160;<span class=\"preprocessor\">#define SIGMOID_TABLE_SIZE 512</span></div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\"><a class=\"line\" href=\"model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34\">   25</a></span>&#160;<span class=\"preprocessor\">#define MAX_SIGMOID 8</span></div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"model_8h.html#a39f445c336c3e871eccbaa0423b6daef\">   26</a></span>&#160;<span class=\"preprocessor\">#define LOG_TABLE_SIZE 512</span></div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\">   27</span>&#160;</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\">   28</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\">   29</span>&#160;</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1Node.html\">   30</a></span>&#160;<span class=\"keyword\">struct </span><a class=\"code\" href=\"structfasttext_1_1Node.html\">Node</a> {</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">   31</a></span>&#160;  int32_t <a class=\"code\" href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">parent</a>;</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">   32</a></span>&#160;  int32_t <a class=\"code\" href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">left</a>;</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">   33</a></span>&#160;  int32_t <a class=\"code\" href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">right</a>;</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">   34</a></span>&#160;  int64_t <a class=\"code\" href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">count</a>;</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\"><a class=\"line\" href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">   35</a></span>&#160;  <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">binary</a>;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\">   36</span>&#160;};</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\">   37</span>&#160;</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html\">   38</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1Model.html\">Model</a> {</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\">   39</span>&#160;  <span class=\"keyword\">private</span>:</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">   40</a></span>&#160;    std::shared_ptr&lt;Matrix&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">wi_</a>;</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">   41</a></span>&#160;    std::shared_ptr&lt;Matrix&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">wo_</a>;</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">   42</a></span>&#160;    std::shared_ptr&lt;QMatrix&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">qwi_</a>;</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">   43</a></span>&#160;    std::shared_ptr&lt;QMatrix&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">qwo_</a>;</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">   44</a></span>&#160;    std::shared_ptr&lt;Args&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">args_</a>;</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">   45</a></span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a> <a class=\"code\" href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">hidden_</a>;</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">   46</a></span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a> <a class=\"code\" href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">output_</a>;</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">   47</a></span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a> <a class=\"code\" href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">grad_</a>;</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">   48</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">hsz_</a>;</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">   49</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">osz_</a>;</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">   50</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">loss_</a>;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">   51</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">nexamples_</a>;</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">   52</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* <a class=\"code\" href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">t_sigmoid</a>;</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">   53</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* <a class=\"code\" href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">t_log</a>;</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;    <span class=\"comment\">// used for negative sampling:</span></div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">   55</a></span>&#160;    std::vector&lt;int32_t&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">negatives</a>;</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">   56</a></span>&#160;    <span class=\"keywordtype\">size_t</span> <a class=\"code\" href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">negpos</a>;</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;    <span class=\"comment\">// used for hierarchical softmax:</span></div><div class=\"line\"><a name=\"l00058\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">   58</a></span>&#160;    std::vector&lt; std::vector&lt;int32_t&gt; &gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">paths</a>;</div><div class=\"line\"><a name=\"l00059\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">   59</a></span>&#160;    std::vector&lt; std::vector&lt;bool&gt; &gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">codes</a>;</div><div class=\"line\"><a name=\"l00060\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">   60</a></span>&#160;    std::vector&lt;Node&gt; <a class=\"code\" href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">tree</a>;</div><div class=\"line\"><a name=\"l00061\"></a><span class=\"lineno\">   61</span>&#160;</div><div class=\"line\"><a name=\"l00062\"></a><span class=\"lineno\">   62</span>&#160;    <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> comparePairs(<span class=\"keyword\">const</span> std::pair&lt;real, int32_t&gt;&amp;,</div><div class=\"line\"><a name=\"l00063\"></a><span class=\"lineno\">   63</span>&#160;                             <span class=\"keyword\">const</span> std::pair&lt;real, int32_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00064\"></a><span class=\"lineno\">   64</span>&#160;</div><div class=\"line\"><a name=\"l00065\"></a><span class=\"lineno\">   65</span>&#160;    int32_t getNegative(int32_t target);</div><div class=\"line\"><a name=\"l00066\"></a><span class=\"lineno\">   66</span>&#160;    <span class=\"keywordtype\">void</span> initSigmoid();</div><div class=\"line\"><a name=\"l00067\"></a><span class=\"lineno\">   67</span>&#160;    <span class=\"keywordtype\">void</span> initLog();</div><div class=\"line\"><a name=\"l00068\"></a><span class=\"lineno\">   68</span>&#160;</div><div class=\"line\"><a name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c\">   69</a></span>&#160;    <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> int32_t NEGATIVE_TABLE_SIZE = 10000000;</div><div class=\"line\"><a name=\"l00070\"></a><span class=\"lineno\">   70</span>&#160;</div><div class=\"line\"><a name=\"l00071\"></a><span class=\"lineno\">   71</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00072\"></a><span class=\"lineno\">   72</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Model.html\">Model</a>(std::shared_ptr&lt;Matrix&gt;, std::shared_ptr&lt;Matrix&gt;,</div><div class=\"line\"><a name=\"l00073\"></a><span class=\"lineno\">   73</span>&#160;          std::shared_ptr&lt;Args&gt;, int32_t);</div><div class=\"line\"><a name=\"l00074\"></a><span class=\"lineno\">   74</span>&#160;    ~<a class=\"code\" href=\"classfasttext_1_1Model.html\">Model</a>();</div><div class=\"line\"><a name=\"l00075\"></a><span class=\"lineno\">   75</span>&#160;</div><div class=\"line\"><a name=\"l00076\"></a><span class=\"lineno\">   76</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> binaryLogistic(int32_t, <span class=\"keywordtype\">bool</span>, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00077\"></a><span class=\"lineno\">   77</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> negativeSampling(int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00078\"></a><span class=\"lineno\">   78</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> hierarchicalSoftmax(int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00079\"></a><span class=\"lineno\">   79</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\">softmax</a>(int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00080\"></a><span class=\"lineno\">   80</span>&#160;</div><div class=\"line\"><a name=\"l00081\"></a><span class=\"lineno\">   81</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\">predict</a>(<span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;, int32_t,</div><div class=\"line\"><a name=\"l00082\"></a><span class=\"lineno\">   82</span>&#160;                 std::vector&lt;std::pair&lt;real, int32_t&gt;&gt;&amp;,</div><div class=\"line\"><a name=\"l00083\"></a><span class=\"lineno\">   83</span>&#160;                 <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00084\"></a><span class=\"lineno\">   84</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\">predict</a>(<span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;, int32_t,</div><div class=\"line\"><a name=\"l00085\"></a><span class=\"lineno\">   85</span>&#160;                 std::vector&lt;std::pair&lt;real, int32_t&gt;&gt;&amp;);</div><div class=\"line\"><a name=\"l00086\"></a><span class=\"lineno\">   86</span>&#160;    <span class=\"keywordtype\">void</span> dfs(int32_t, int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>,</div><div class=\"line\"><a name=\"l00087\"></a><span class=\"lineno\">   87</span>&#160;             std::vector&lt;std::pair&lt;real, int32_t&gt;&gt;&amp;,</div><div class=\"line\"><a name=\"l00088\"></a><span class=\"lineno\">   88</span>&#160;             <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00089\"></a><span class=\"lineno\">   89</span>&#160;    <span class=\"keywordtype\">void</span> findKBest(int32_t, std::vector&lt;std::pair&lt;real, int32_t&gt;&gt;&amp;,</div><div class=\"line\"><a name=\"l00090\"></a><span class=\"lineno\">   90</span>&#160;                   <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00091\"></a><span class=\"lineno\">   91</span>&#160;    <span class=\"keywordtype\">void</span> update(<span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;, int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00092\"></a><span class=\"lineno\">   92</span>&#160;    <span class=\"keywordtype\">void</span> computeHidden(<span class=\"keyword\">const</span> std::vector&lt;int32_t&gt;&amp;, <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00093\"></a><span class=\"lineno\">   93</span>&#160;    <span class=\"keywordtype\">void</span> computeOutputSoftmax(<a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00094\"></a><span class=\"lineno\">   94</span>&#160;    <span class=\"keywordtype\">void</span> computeOutputSoftmax();</div><div class=\"line\"><a name=\"l00095\"></a><span class=\"lineno\">   95</span>&#160;</div><div class=\"line\"><a name=\"l00096\"></a><span class=\"lineno\">   96</span>&#160;    <span class=\"keywordtype\">void</span> setTargetCounts(<span class=\"keyword\">const</span> std::vector&lt;int64_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00097\"></a><span class=\"lineno\">   97</span>&#160;    <span class=\"keywordtype\">void</span> initTableNegatives(<span class=\"keyword\">const</span> std::vector&lt;int64_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00098\"></a><span class=\"lineno\">   98</span>&#160;    <span class=\"keywordtype\">void</span> buildTree(<span class=\"keyword\">const</span> std::vector&lt;int64_t&gt;&amp;);</div><div class=\"line\"><a name=\"l00099\"></a><span class=\"lineno\">   99</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> getLoss() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00100\"></a><span class=\"lineno\">  100</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> sigmoid(<a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00101\"></a><span class=\"lineno\">  101</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> log(<a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00102\"></a><span class=\"lineno\">  102</span>&#160;</div><div class=\"line\"><a name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">  103</a></span>&#160;    std::minstd_rand <a class=\"code\" href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">rng</a>;</div><div class=\"line\"><a name=\"l00104\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">  104</a></span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">quant_</a>;</div><div class=\"line\"><a name=\"l00105\"></a><span class=\"lineno\">  105</span>&#160;    <span class=\"keywordtype\">void</span> setQuantizePointer(std::shared_ptr&lt;QMatrix&gt;, std::shared_ptr&lt;QMatrix&gt;, <span class=\"keywordtype\">bool</span>);</div><div class=\"line\"><a name=\"l00106\"></a><span class=\"lineno\">  106</span>&#160;};</div><div class=\"line\"><a name=\"l00107\"></a><span class=\"lineno\">  107</span>&#160;</div><div class=\"line\"><a name=\"l00108\"></a><span class=\"lineno\">  108</span>&#160;}</div><div class=\"line\"><a name=\"l00109\"></a><span class=\"lineno\">  109</span>&#160;</div><div class=\"line\"><a name=\"l00110\"></a><span class=\"lineno\">  110</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1Model_html_a8df9424c08479931b6351844be3bd090\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\">fasttext::Model::t_sigmoid</a></div><div class=\"ttdeci\">real * t_sigmoid</div><div class=\"ttdef\"><b>Definition:</b> model.h:52</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a3cc48ada470c99ef69840cf79967616e\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\">fasttext::Model::loss_</a></div><div class=\"ttdeci\">real loss_</div><div class=\"ttdef\"><b>Definition:</b> model.h:50</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1Node_html_a57d838e16a5dbb34aa0548a20843cf09\"><div class=\"ttname\"><a href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">fasttext::Node::parent</a></div><div class=\"ttdeci\">int32_t parent</div><div class=\"ttdef\"><b>Definition:</b> model.h:31</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a4ee087454e830b18c22a59ae9bb6fcf1\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\">fasttext::Model::qwo_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; QMatrix &gt; qwo_</div><div class=\"ttdef\"><b>Definition:</b> model.h:43</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1Node_html\"><div class=\"ttname\"><a href=\"structfasttext_1_1Node.html\">fasttext::Node</a></div><div class=\"ttdef\"><b>Definition:</b> model.h:30</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a7e27d2fd2800dcee09ea8101fea49676\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\">fasttext::Model::rng</a></div><div class=\"ttdeci\">std::minstd_rand rng</div><div class=\"ttdef\"><b>Definition:</b> model.h:103</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1Node_html_a8a02d78386d6837a20858269bf9c6366\"><div class=\"ttname\"><a href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">fasttext::Node::right</a></div><div class=\"ttdeci\">int32_t right</div><div class=\"ttdef\"><b>Definition:</b> model.h:33</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a53a03f49121369e4100ceb6ab06f178a\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\">fasttext::Model::tree</a></div><div class=\"ttdeci\">std::vector&lt; Node &gt; tree</div><div class=\"ttdef\"><b>Definition:</b> model.h:60</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></div><div class=\"ttdef\"><b>Definition:</b> vector.h:23</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1Node_html_a76430b0ffbb3b8f217435b11e4f51118\"><div class=\"ttname\"><a href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">fasttext::Node::count</a></div><div class=\"ttdeci\">int64_t count</div><div class=\"ttdef\"><b>Definition:</b> model.h:34</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\">fasttext::loss_name::softmax</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a790013d8e68ed70db7074c9d3e262170\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\">fasttext::Model::t_log</a></div><div class=\"ttdeci\">real * t_log</div><div class=\"ttdef\"><b>Definition:</b> model.h:53</div></div>\n<div class=\"ttc\" id=\"main_8cc_html_a4479606e315746032f4ecde4b62ebc26\"><div class=\"ttname\"><a href=\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\">predict</a></div><div class=\"ttdeci\">void predict(int argc, char **argv)</div><div class=\"ttdef\"><b>Definition:</b> main.cc:138</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html\">fasttext::Model</a></div><div class=\"ttdef\"><b>Definition:</b> model.h:38</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_ab6675d265df22787dfa9835196300d3b\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\">fasttext::Model::codes</a></div><div class=\"ttdeci\">std::vector&lt; std::vector&lt; bool &gt; &gt; codes</div><div class=\"ttdef\"><b>Definition:</b> model.h:59</div></div>\n<div class=\"ttc\" id=\"matrix_8h_html\"><div class=\"ttname\"><a href=\"matrix_8h.html\">matrix.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a0b7f9ccdcdb6e44c0515b46af829bc19\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\">fasttext::Model::hsz_</a></div><div class=\"ttdeci\">int32_t hsz_</div><div class=\"ttdef\"><b>Definition:</b> model.h:48</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a0d3b51a1c171314b879aae52c3717a43\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\">fasttext::Model::quant_</a></div><div class=\"ttdeci\">bool quant_</div><div class=\"ttdef\"><b>Definition:</b> model.h:104</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a79bd4bcbd2e6f10c5483249dfea74e97\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\">fasttext::Model::grad_</a></div><div class=\"ttdeci\">Vector grad_</div><div class=\"ttdef\"><b>Definition:</b> model.h:47</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_ac9524ea5200abefdd2d83e29ffaa9693\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\">fasttext::Model::qwi_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; QMatrix &gt; qwi_</div><div class=\"ttdef\"><b>Definition:</b> model.h:42</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_afaf1104f9e1c382c3eb30ca41311e84f\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\">fasttext::Model::negpos</a></div><div class=\"ttdeci\">size_t negpos</div><div class=\"ttdef\"><b>Definition:</b> model.h:56</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a0ff68cfe9333feff1f8914f3787b1b5f\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\">fasttext::Model::paths</a></div><div class=\"ttdeci\">std::vector&lt; std::vector&lt; int32_t &gt; &gt; paths</div><div class=\"ttdef\"><b>Definition:</b> model.h:58</div></div>\n<div class=\"ttc\" id=\"vector_8h_html\"><div class=\"ttname\"><a href=\"vector_8h.html\">vector.h</a></div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1Node_html_a567bed8e85aa54f73371420f1b42dcda\"><div class=\"ttname\"><a href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">fasttext::Node::binary</a></div><div class=\"ttdeci\">bool binary</div><div class=\"ttdef\"><b>Definition:</b> model.h:35</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_ad6b3771605106e55bb132be316ec34b9\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\">fasttext::Model::wo_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Matrix &gt; wo_</div><div class=\"ttdef\"><b>Definition:</b> model.h:41</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_ae7c72e4f6b9fda134708d08efb0170e2\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\">fasttext::Model::wi_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Matrix &gt; wi_</div><div class=\"ttdef\"><b>Definition:</b> model.h:40</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a845160e4cdb0e8c17b74f269563dc71c\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\">fasttext::Model::output_</a></div><div class=\"ttdeci\">Vector output_</div><div class=\"ttdef\"><b>Definition:</b> model.h:46</div></div>\n<div class=\"ttc\" id=\"args_8h_html\"><div class=\"ttname\"><a href=\"args_8h.html\">args.h</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_aeec9f08e7775bfcab322960fc80d7621\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\">fasttext::Model::nexamples_</a></div><div class=\"ttdeci\">int64_t nexamples_</div><div class=\"ttdef\"><b>Definition:</b> model.h:51</div></div>\n<div class=\"ttc\" id=\"structfasttext_1_1Node_html_a44f47a277a7fc982be30569befc7d8c1\"><div class=\"ttname\"><a href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">fasttext::Node::left</a></div><div class=\"ttdeci\">int32_t left</div><div class=\"ttdef\"><b>Definition:</b> model.h:32</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a76314e94e2582e9e2160bcfd9c75ba99\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\">fasttext::Model::args_</a></div><div class=\"ttdeci\">std::shared_ptr&lt; Args &gt; args_</div><div class=\"ttdef\"><b>Definition:</b> model.h:44</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a082187d7f01c243f296084878ea0e0f1\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\">fasttext::Model::negatives</a></div><div class=\"ttdeci\">std::vector&lt; int32_t &gt; negatives</div><div class=\"ttdef\"><b>Definition:</b> model.h:55</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a31e9eee86f238bd2962569be67444e79\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\">fasttext::Model::hidden_</a></div><div class=\"ttdeci\">Vector hidden_</div><div class=\"ttdef\"><b>Definition:</b> model.h:45</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Model_html_a39799429dd196a7ec7e4bdee63087751\"><div class=\"ttname\"><a href=\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\">fasttext::Model::osz_</a></div><div class=\"ttdeci\">int32_t osz_</div><div class=\"ttdef\"><b>Definition:</b> model.h:49</div></div>\n<div class=\"ttc\" id=\"qmatrix_8h_html\"><div class=\"ttname\"><a href=\"qmatrix_8h.html\">qmatrix.h</a></div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"model_8h.html\">model.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespacefasttext.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\"\n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespacefasttext.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\"\n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#typedef-members\">Typedefs</a> &#124;\n<a href=\"#enum-members\">Enumerations</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext Namespace Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext_1_1utils\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html\">utils</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Args.html\">Args</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Dictionary.html\">Dictionary</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">entry</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1FastText.html\">FastText</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Matrix.html\">Matrix</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Model.html\">Model</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">Node</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"typedef-members\"></a>\nTypedefs</h2></td></tr>\n<tr class=\"memitem:a6778f74ca8c360ba917216cb7fcbf497\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">id_type</a></td></tr>\n<tr class=\"separator:a6778f74ca8c360ba917216cb7fcbf497\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7afdad102f318271c14154b8e65e5ea3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef float&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a></td></tr>\n<tr class=\"separator:a7afdad102f318271c14154b8e65e5ea3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a349df214746a2ea0e5d7c26326b03d6f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">model_name</a> : int { <a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\">model_name::cbow</a> =1,\n<a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\">model_name::sg</a>,\n<a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\">model_name::sup</a>\n }</td></tr>\n<tr class=\"separator:a349df214746a2ea0e5d7c26326b03d6f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1ba04862fd670674501ccacc936e1952\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">loss_name</a> : int { <a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\">loss_name::hs</a> =1,\n<a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\">loss_name::ns</a>,\n<a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\">loss_name::softmax</a>\n }</td></tr>\n<tr class=\"separator:a1ba04862fd670674501ccacc936e1952\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a532eedeee97e8d66a96b519d165f4eb7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> : int8_t { <a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\">entry_type::word</a> =0,\n<a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\">entry_type::label</a> =1\n }</td></tr>\n<tr class=\"separator:a532eedeee97e8d66a96b519d165f4eb7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a4336b1849ad0c1f134ed0ac9842f053c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a4336b1849ad0c1f134ed0ac9842f053c\">distL2</a> (const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *x, const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *y, int32_t d)</td></tr>\n<tr class=\"separator:a4336b1849ad0c1f134ed0ac9842f053c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a23eb4596f3beb9859b22cf64a83461d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::ostream &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;v)</td></tr>\n<tr class=\"separator:a23eb4596f3beb9859b22cf64a83461d6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Copyright (c) 2016-present, Facebook, Inc. All rights reserved.</p>\n<p>This source code is licensed under the MIT-style license found in the LICENSE file in the root directory of this source tree. </p>\n</div><h2 class=\"groupheader\">Typedef Documentation</h2>\n<a id=\"a6778f74ca8c360ba917216cb7fcbf497\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6778f74ca8c360ba917216cb7fcbf497\">&#9670;&nbsp;</a></span>id_type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">typedef int32_t <a class=\"el\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">fasttext::id_type</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7afdad102f318271c14154b8e65e5ea3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7afdad102f318271c14154b8e65e5ea3\">&#9670;&nbsp;</a></span>real</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">typedef float <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<h2 class=\"groupheader\">Enumeration Type Documentation</h2>\n<a id=\"a532eedeee97e8d66a96b519d165f4eb7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a532eedeee97e8d66a96b519d165f4eb7\">&#9670;&nbsp;</a></span>entry_type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">fasttext::entry_type</a> : int8_t</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">strong</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\"></a>word&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\"></a>label&#160;</td><td class=\"fielddoc\"></td></tr>\n</table>\n\n</div>\n</div>\n<a id=\"a1ba04862fd670674501ccacc936e1952\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1ba04862fd670674501ccacc936e1952\">&#9670;&nbsp;</a></span>loss_name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">fasttext::loss_name</a> : int</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">strong</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\"></a>hs&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\"></a>ns&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\"></a>softmax&#160;</td><td class=\"fielddoc\"></td></tr>\n</table>\n\n</div>\n</div>\n<a id=\"a349df214746a2ea0e5d7c26326b03d6f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a349df214746a2ea0e5d7c26326b03d6f\">&#9670;&nbsp;</a></span>model_name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">fasttext::model_name</a> : int</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">strong</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\"></a>cbow&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\"></a>sg&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\"></a>sup&#160;</td><td class=\"fielddoc\"></td></tr>\n</table>\n\n</div>\n</div>\n<h2 class=\"groupheader\">Function Documentation</h2>\n<a id=\"a4336b1849ad0c1f134ed0ac9842f053c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4336b1849ad0c1f134ed0ac9842f053c\">&#9670;&nbsp;</a></span>distL2()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> fasttext::distL2 </td>\n          <td>(</td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>x</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> *&#160;</td>\n          <td class=\"paramname\"><em>y</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int32_t&#160;</td>\n          <td class=\"paramname\"><em>d</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a23eb4596f3beb9859b22cf64a83461d6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a23eb4596f3beb9859b22cf64a83461d6\">&#9670;&nbsp;</a></span>operator<<()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::ostream &amp; fasttext::operator&lt;&lt; </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ostream &amp;&#160;</td>\n          <td class=\"paramname\"><em>os</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">const <a class=\"el\" href=\"classfasttext_1_1Vector.html\">Vector</a> &amp;&#160;</td>\n          <td class=\"paramname\"><em>v</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespacefasttext.js",
    "content": "var namespacefasttext =\n[\n    [ \"Args\", \"classfasttext_1_1Args.html\", \"classfasttext_1_1Args\" ],\n    [ \"Dictionary\", \"classfasttext_1_1Dictionary.html\", \"classfasttext_1_1Dictionary\" ],\n    [ \"entry\", \"structfasttext_1_1entry.html\", \"structfasttext_1_1entry\" ],\n    [ \"FastText\", \"classfasttext_1_1FastText.html\", \"classfasttext_1_1FastText\" ],\n    [ \"Matrix\", \"classfasttext_1_1Matrix.html\", \"classfasttext_1_1Matrix\" ],\n    [ \"Model\", \"classfasttext_1_1Model.html\", \"classfasttext_1_1Model\" ],\n    [ \"Node\", \"structfasttext_1_1Node.html\", \"structfasttext_1_1Node\" ],\n    [ \"ProductQuantizer\", \"classfasttext_1_1ProductQuantizer.html\", \"classfasttext_1_1ProductQuantizer\" ],\n    [ \"QMatrix\", \"classfasttext_1_1QMatrix.html\", \"classfasttext_1_1QMatrix\" ],\n    [ \"Vector\", \"classfasttext_1_1Vector.html\", \"classfasttext_1_1Vector\" ]\n];"
  },
  {
    "path": "website/static/docs/en/html/namespacefasttext_1_1utils.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::utils Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespacefasttext_1_1utils.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::utils Namespace Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a2d7a0a4c572dbfa5458ca782355c35aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">size</a> (std::ifstream &amp;ifs)</td></tr>\n<tr class=\"separator:a2d7a0a4c572dbfa5458ca782355c35aa\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9d7d5c4b31752c7fe0bf71970203f82d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">seek</a> (std::ifstream &amp;ifs, int64_t pos)</td></tr>\n<tr class=\"separator:a9d7d5c4b31752c7fe0bf71970203f82d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Function Documentation</h2>\n<a id=\"a9d7d5c4b31752c7fe0bf71970203f82d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d7d5c4b31752c7fe0bf71970203f82d\">&#9670;&nbsp;</a></span>seek()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void fasttext::utils::seek </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ifstream &amp;&#160;</td>\n          <td class=\"paramname\"><em>ifs</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int64_t&#160;</td>\n          <td class=\"paramname\"><em>pos</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2d7a0a4c572dbfa5458ca782355c35aa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2d7a0a4c572dbfa5458ca782355c35aa\">&#9670;&nbsp;</a></span>size()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::utils::size </td>\n          <td>(</td>\n          <td class=\"paramtype\">std::ifstream &amp;&#160;</td>\n          <td class=\"paramname\"><em>ifs</em></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html\">utils</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespacemembers.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespacemembers.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all namespace members with links to the namespace documentation for each member:</div><ul>\n<li>distL2()\n: <a class=\"el\" href=\"namespacefasttext.html#a4336b1849ad0c1f134ed0ac9842f053c\">fasttext</a>\n</li>\n<li>entry_type\n: <a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">fasttext</a>\n</li>\n<li>id_type\n: <a class=\"el\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">fasttext</a>\n</li>\n<li>loss_name\n: <a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">fasttext</a>\n</li>\n<li>model_name\n: <a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">fasttext</a>\n</li>\n<li>operator&lt;&lt;()\n: <a class=\"el\" href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">fasttext</a>\n</li>\n<li>real\n: <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext</a>\n</li>\n<li>seek()\n: <a class=\"el\" href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">fasttext::utils</a>\n</li>\n<li>size()\n: <a class=\"el\" href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">fasttext::utils</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespacemembers_enum.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespacemembers_enum.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;<ul>\n<li>entry_type\n: <a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">fasttext</a>\n</li>\n<li>loss_name\n: <a class=\"el\" href=\"namespacefasttext.html#a1ba04862fd670674501ccacc936e1952\">fasttext</a>\n</li>\n<li>model_name\n: <a class=\"el\" href=\"namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f\">fasttext</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespacemembers_func.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespacemembers_func.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;<ul>\n<li>distL2()\n: <a class=\"el\" href=\"namespacefasttext.html#a4336b1849ad0c1f134ed0ac9842f053c\">fasttext</a>\n</li>\n<li>operator&lt;&lt;()\n: <a class=\"el\" href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">fasttext</a>\n</li>\n<li>seek()\n: <a class=\"el\" href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">fasttext::utils</a>\n</li>\n<li>size()\n: <a class=\"el\" href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">fasttext::utils</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespacemembers_type.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespacemembers_type.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"contents\">\n&#160;<ul>\n<li>id_type\n: <a class=\"el\" href=\"namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497\">fasttext</a>\n</li>\n<li>real\n: <a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext</a>\n</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespaces.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Namespace List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('namespaces.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">Namespace List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all namespaces with brief descriptions:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:toggleLevel(1);\">1</span><span onclick=\"javascript:toggleLevel(2);\">2</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_0_\" class=\"arrow\" onclick=\"toggleFolder('0_')\">&#9660;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespacefasttext.html\" target=\"_self\">fasttext</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespacefasttext_1_1utils.html\" target=\"_self\">utils</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/namespaces.js",
    "content": "var namespaces =\n[\n    [ \"fasttext\", \"namespacefasttext.html\", \"namespacefasttext\" ]\n];"
  },
  {
    "path": "website/static/docs/en/html/navtree.css",
    "content": "#nav-tree .children_ul {\n  margin:0;\n  padding:4px;\n}\n\n#nav-tree ul {\n  list-style:none outside none;\n  margin:0px;\n  padding:0px;\n}\n\n#nav-tree li {\n  white-space:nowrap;\n  margin:0px;\n  padding:0px;\n}\n\n#nav-tree .plus {\n  margin:0px;\n}\n\n#nav-tree .selected {\n  background-image: url('tab_a.png');\n  background-repeat:repeat-x;\n  color: #fff;\n  text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);\n}\n\n#nav-tree img {\n  margin:0px;\n  padding:0px;\n  border:0px;\n  vertical-align: middle;\n}\n\n#nav-tree a {\n  text-decoration:none;\n  padding:0px;\n  margin:0px;\n  outline:none;\n}\n\n#nav-tree .label {\n  margin:0px;\n  padding:0px;\n  font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;\n}\n\n#nav-tree .label a {\n  padding:2px;\n}\n\n#nav-tree .selected a {\n  text-decoration:none;\n  color:#fff;\n}\n\n#nav-tree .children_ul {\n  margin:0px;\n  padding:0px;\n}\n\n#nav-tree .item {\n  margin:0px;\n  padding:0px;\n}\n\n#nav-tree {\n  padding: 0px 0px;\n  background-color: #FAFAFF; \n  font-size:14px;\n  overflow:auto;\n}\n\n#doc-content {\n  overflow:auto;\n  display:block;\n  padding:0px;\n  margin:0px;\n  -webkit-overflow-scrolling : touch; /* iOS 5+ */\n}\n\n#side-nav {\n  padding:0 6px 0 0;\n  margin: 0px;\n  display:block;\n  position: absolute;\n  left: 0px;\n  width: 250px;\n}\n\n.ui-resizable .ui-resizable-handle {\n  display:block;\n}\n\n.ui-resizable-e {\n  background-image:url(\"splitbar.png\");\n  background-size:100%;\n  background-repeat:no-repeat;\n  background-attachment: scroll;\n  cursor:ew-resize;\n  height:100%;\n  right:0;\n  top:0;\n  width:6px;\n}\n\n.ui-resizable-handle {\n  display:none;\n  font-size:0.1px;\n  position:absolute;\n  z-index:1;\n}\n\n#nav-tree-contents {\n  margin: 6px 0px 0px 0px;\n}\n\n#nav-tree {\n  background-image:url('nav_h.png');\n  background-repeat:repeat-x;\n  background-color: #F9FAFC;\n  -webkit-overflow-scrolling : touch; /* iOS 5+ */\n}\n\n#nav-sync {\n  position:absolute;\n  top:5px;\n  right:24px;\n  z-index:0;\n}\n\n#nav-sync img {\n  opacity:0.3;\n}\n\n#nav-sync img:hover {\n  opacity:0.9;\n}\n\n@media print\n{\n  #nav-tree { display: none; }\n  div.ui-resizable-handle { display: none; position: relative; }\n}\n\n"
  },
  {
    "path": "website/static/docs/en/html/navtree.js",
    "content": "var navTreeSubIndices = new Array();\nvar arrowDown = '&#9660;';\nvar arrowRight = '&#9658;';\n\nfunction getData(varName)\n{\n  var i = varName.lastIndexOf('/');\n  var n = i>=0 ? varName.substring(i+1) : varName;\n  return eval(n.replace(/\\-/g,'_'));\n}\n\nfunction stripPath(uri)\n{\n  return uri.substring(uri.lastIndexOf('/')+1);\n}\n\nfunction stripPath2(uri)\n{\n  var i = uri.lastIndexOf('/');\n  var s = uri.substring(i+1);\n  var m = uri.substring(0,i+1).match(/\\/d\\w\\/d\\w\\w\\/$/);\n  return m ? uri.substring(i-6) : s;\n}\n\nfunction hashValue()\n{\n  return $(location).attr('hash').substring(1).replace(/[^\\w\\-]/g,'');\n}\n\nfunction hashUrl()\n{\n  return '#'+hashValue();\n}\n\nfunction pathName()\n{\n  return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\\(\\)]/g, '');\n}\n\nfunction localStorageSupported()\n{\n  try {\n    return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;\n  }\n  catch(e) {\n    return false;\n  }\n}\n\n\nfunction storeLink(link)\n{\n  if (!$(\"#nav-sync\").hasClass('sync') && localStorageSupported()) {\n      window.localStorage.setItem('navpath',link);\n  }\n}\n\nfunction deleteLink()\n{\n  if (localStorageSupported()) {\n    window.localStorage.setItem('navpath','');\n  }\n}\n\nfunction cachedLink()\n{\n  if (localStorageSupported()) {\n    return window.localStorage.getItem('navpath');\n  } else {\n    return '';\n  }\n}\n\nfunction getScript(scriptName,func,show)\n{\n  var head = document.getElementsByTagName(\"head\")[0];\n  var script = document.createElement('script');\n  script.id = scriptName;\n  script.type = 'text/javascript';\n  script.onload = func;\n  script.src = scriptName+'.js';\n  if ($.browser.msie && $.browser.version<=8) {\n    // script.onload does not work with older versions of IE\n    script.onreadystatechange = function() {\n      if (script.readyState=='complete' || script.readyState=='loaded') {\n        func(); if (show) showRoot();\n      }\n    }\n  }\n  head.appendChild(script); \n}\n\nfunction createIndent(o,domNode,node,level)\n{\n  var level=-1;\n  var n = node;\n  while (n.parentNode) { level++; n=n.parentNode; }\n  if (node.childrenData) {\n    var imgNode = document.createElement(\"span\");\n    imgNode.className = 'arrow';\n    imgNode.style.paddingLeft=(16*level).toString()+'px';\n    imgNode.innerHTML=arrowRight;\n    node.plus_img = imgNode;\n    node.expandToggle = document.createElement(\"a\");\n    node.expandToggle.href = \"javascript:void(0)\";\n    node.expandToggle.onclick = function() {\n      if (node.expanded) {\n        $(node.getChildrenUL()).slideUp(\"fast\");\n        node.plus_img.innerHTML=arrowRight;\n        node.expanded = false;\n      } else {\n        expandNode(o, node, false, false);\n      }\n    }\n    node.expandToggle.appendChild(imgNode);\n    domNode.appendChild(node.expandToggle);\n  } else {\n    var span = document.createElement(\"span\");\n    span.className = 'arrow';\n    span.style.width   = 16*(level+1)+'px';\n    span.innerHTML = '&#160;';\n    domNode.appendChild(span);\n  }\n}\n\nvar animationInProgress = false;\n\nfunction gotoAnchor(anchor,aname,updateLocation)\n{\n  var pos, docContent = $('#doc-content');\n  var ancParent = $(anchor.parent());\n  if (ancParent.hasClass('memItemLeft') ||\n      ancParent.hasClass('fieldname') ||\n      ancParent.hasClass('fieldtype') ||\n      ancParent.is(':header'))\n  {\n    pos = ancParent.position().top;\n  } else if (anchor.position()) {\n    pos = anchor.position().top;\n  }\n  if (pos) {\n    var dist = Math.abs(Math.min(\n               pos-docContent.offset().top,\n               docContent[0].scrollHeight-\n               docContent.height()-docContent.scrollTop()));\n    animationInProgress=true;\n    docContent.animate({\n      scrollTop: pos + docContent.scrollTop() - docContent.offset().top\n    },Math.max(50,Math.min(500,dist)),function(){\n      if (updateLocation) window.location.href=aname;\n      animationInProgress=false;\n    });\n  }\n}\n\nfunction newNode(o, po, text, link, childrenData, lastNode)\n{\n  var node = new Object();\n  node.children = Array();\n  node.childrenData = childrenData;\n  node.depth = po.depth + 1;\n  node.relpath = po.relpath;\n  node.isLast = lastNode;\n\n  node.li = document.createElement(\"li\");\n  po.getChildrenUL().appendChild(node.li);\n  node.parentNode = po;\n\n  node.itemDiv = document.createElement(\"div\");\n  node.itemDiv.className = \"item\";\n\n  node.labelSpan = document.createElement(\"span\");\n  node.labelSpan.className = \"label\";\n\n  createIndent(o,node.itemDiv,node,0);\n  node.itemDiv.appendChild(node.labelSpan);\n  node.li.appendChild(node.itemDiv);\n\n  var a = document.createElement(\"a\");\n  node.labelSpan.appendChild(a);\n  node.label = document.createTextNode(text);\n  node.expanded = false;\n  a.appendChild(node.label);\n  if (link) {\n    var url;\n    if (link.substring(0,1)=='^') {\n      url = link.substring(1);\n      link = url;\n    } else {\n      url = node.relpath+link;\n    }\n    a.className = stripPath(link.replace('#',':'));\n    if (link.indexOf('#')!=-1) {\n      var aname = '#'+link.split('#')[1];\n      var srcPage = stripPath(pathName());\n      var targetPage = stripPath(link.split('#')[0]);\n      a.href = srcPage!=targetPage ? url : \"javascript:void(0)\";\n      a.onclick = function(){\n        storeLink(link);\n        if (!$(a).parent().parent().hasClass('selected'))\n        {\n          $('.item').removeClass('selected');\n          $('.item').removeAttr('id');\n          $(a).parent().parent().addClass('selected');\n          $(a).parent().parent().attr('id','selected');\n        }\n        var anchor = $(aname);\n        gotoAnchor(anchor,aname,true);\n      };\n    } else {\n      a.href = url;\n      a.onclick = function() { storeLink(link); }\n    }\n  } else {\n    if (childrenData != null)\n    {\n      a.className = \"nolink\";\n      a.href = \"javascript:void(0)\";\n      a.onclick = node.expandToggle.onclick;\n    }\n  }\n\n  node.childrenUL = null;\n  node.getChildrenUL = function() {\n    if (!node.childrenUL) {\n      node.childrenUL = document.createElement(\"ul\");\n      node.childrenUL.className = \"children_ul\";\n      node.childrenUL.style.display = \"none\";\n      node.li.appendChild(node.childrenUL);\n    }\n    return node.childrenUL;\n  };\n\n  return node;\n}\n\nfunction showRoot()\n{\n  var headerHeight = $(\"#top\").height();\n  var footerHeight = $(\"#nav-path\").height();\n  var windowHeight = $(window).height() - headerHeight - footerHeight;\n  (function (){ // retry until we can scroll to the selected item\n    try {\n      var navtree=$('#nav-tree');\n      navtree.scrollTo('#selected',0,{offset:-windowHeight/2});\n    } catch (err) {\n      setTimeout(arguments.callee, 0);\n    }\n  })();\n}\n\nfunction expandNode(o, node, imm, showRoot)\n{\n  if (node.childrenData && !node.expanded) {\n    if (typeof(node.childrenData)==='string') {\n      var varName    = node.childrenData;\n      getScript(node.relpath+varName,function(){\n        node.childrenData = getData(varName);\n        expandNode(o, node, imm, showRoot);\n      }, showRoot);\n    } else {\n      if (!node.childrenVisited) {\n        getNode(o, node);\n      } if (imm || ($.browser.msie && $.browser.version>8)) {\n        // somehow slideDown jumps to the start of tree for IE9 :-(\n        $(node.getChildrenUL()).show();\n      } else {\n        $(node.getChildrenUL()).slideDown(\"fast\");\n      }\n      node.plus_img.innerHTML = arrowDown;\n      node.expanded = true;\n    }\n  }\n}\n\nfunction glowEffect(n,duration)\n{\n  n.addClass('glow').delay(duration).queue(function(next){\n    $(this).removeClass('glow');next();\n  });\n}\n\nfunction highlightAnchor()\n{\n  var aname = hashUrl();\n  var anchor = $(aname);\n  if (anchor.parent().attr('class')=='memItemLeft'){\n    var rows = $('.memberdecls tr[class$=\"'+hashValue()+'\"]');\n    glowEffect(rows.children(),300); // member without details\n  } else if (anchor.parent().attr('class')=='fieldname'){\n    glowEffect(anchor.parent().parent(),1000); // enum value\n  } else if (anchor.parent().attr('class')=='fieldtype'){\n    glowEffect(anchor.parent().parent(),1000); // struct field\n  } else if (anchor.parent().is(\":header\")) {\n    glowEffect(anchor.parent(),1000); // section header\n  } else {\n    glowEffect(anchor.next(),1000); // normal member\n  }\n  gotoAnchor(anchor,aname,false);\n}\n\nfunction selectAndHighlight(hash,n)\n{\n  var a;\n  if (hash) {\n    var link=stripPath(pathName())+':'+hash.substring(1);\n    a=$('.item a[class$=\"'+link+'\"]');\n  }\n  if (a && a.length) {\n    a.parent().parent().addClass('selected');\n    a.parent().parent().attr('id','selected');\n    highlightAnchor();\n  } else if (n) {\n    $(n.itemDiv).addClass('selected');\n    $(n.itemDiv).attr('id','selected');\n  }\n  if ($('#nav-tree-contents .item:first').hasClass('selected')) {\n    $('#nav-sync').css('top','30px');\n  } else {\n    $('#nav-sync').css('top','5px');\n  }\n  showRoot();\n}\n\nfunction showNode(o, node, index, hash)\n{\n  if (node && node.childrenData) {\n    if (typeof(node.childrenData)==='string') {\n      var varName    = node.childrenData;\n      getScript(node.relpath+varName,function(){\n        node.childrenData = getData(varName);\n        showNode(o,node,index,hash);\n      },true);\n    } else {\n      if (!node.childrenVisited) {\n        getNode(o, node);\n      }\n      $(node.getChildrenUL()).css({'display':'block'});\n      node.plus_img.innerHTML = arrowDown;\n      node.expanded = true;\n      var n = node.children[o.breadcrumbs[index]];\n      if (index+1<o.breadcrumbs.length) {\n        showNode(o,n,index+1,hash);\n      } else {\n        if (typeof(n.childrenData)==='string') {\n          var varName = n.childrenData;\n          getScript(n.relpath+varName,function(){\n            n.childrenData = getData(varName);\n            node.expanded=false;\n            showNode(o,node,index,hash); // retry with child node expanded\n          },true);\n        } else {\n          var rootBase = stripPath(o.toroot.replace(/\\..+$/, ''));\n          if (rootBase==\"index\" || rootBase==\"pages\" || rootBase==\"search\") {\n            expandNode(o, n, true, true);\n          }\n          selectAndHighlight(hash,n);\n        }\n      }\n    }\n  } else {\n    selectAndHighlight(hash);\n  }\n}\n\nfunction removeToInsertLater(element) {\n  var parentNode = element.parentNode;\n  var nextSibling = element.nextSibling;\n  parentNode.removeChild(element);\n  return function() {\n    if (nextSibling) {\n      parentNode.insertBefore(element, nextSibling);\n    } else {\n      parentNode.appendChild(element);\n    }\n  };\n}\n\nfunction getNode(o, po)\n{\n  var insertFunction = removeToInsertLater(po.li);\n  po.childrenVisited = true;\n  var l = po.childrenData.length-1;\n  for (var i in po.childrenData) {\n    var nodeData = po.childrenData[i];\n    po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],\n      i==l);\n  }\n  insertFunction();\n}\n\nfunction gotoNode(o,subIndex,root,hash,relpath)\n{\n  var nti = navTreeSubIndices[subIndex][root+hash];\n  o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);\n  if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index\n    navTo(o,NAVTREE[0][1],\"\",relpath);\n    $('.item').removeClass('selected');\n    $('.item').removeAttr('id');\n  }\n  if (o.breadcrumbs) {\n    o.breadcrumbs.unshift(0); // add 0 for root node\n    showNode(o, o.node, 0, hash);\n  }\n}\n\nfunction navTo(o,root,hash,relpath)\n{\n  var link = cachedLink();\n  if (link) {\n    var parts = link.split('#');\n    root = parts[0];\n    if (parts.length>1) hash = '#'+parts[1].replace(/[^\\w\\-]/g,'');\n    else hash='';\n  }\n  if (hash.match(/^#l\\d+$/)) {\n    var anchor=$('a[name='+hash.substring(1)+']');\n    glowEffect(anchor.parent(),1000); // line number\n    hash=''; // strip line number anchors\n  }\n  var url=root+hash;\n  var i=-1;\n  while (NAVTREEINDEX[i+1]<=url) i++;\n  if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index\n  if (navTreeSubIndices[i]) {\n    gotoNode(o,i,root,hash,relpath)\n  } else {\n    getScript(relpath+'navtreeindex'+i,function(){\n      navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);\n      if (navTreeSubIndices[i]) {\n        gotoNode(o,i,root,hash,relpath);\n      }\n    },true);\n  }\n}\n\nfunction showSyncOff(n,relpath)\n{\n    n.html('<img src=\"'+relpath+'sync_off.png\" title=\"'+SYNCOFFMSG+'\"/>');\n}\n\nfunction showSyncOn(n,relpath)\n{\n    n.html('<img src=\"'+relpath+'sync_on.png\" title=\"'+SYNCONMSG+'\"/>');\n}\n\nfunction toggleSyncButton(relpath)\n{\n  var navSync = $('#nav-sync');\n  if (navSync.hasClass('sync')) {\n    navSync.removeClass('sync');\n    showSyncOff(navSync,relpath);\n    storeLink(stripPath2(pathName())+hashUrl());\n  } else {\n    navSync.addClass('sync');\n    showSyncOn(navSync,relpath);\n    deleteLink();\n  }\n}\n\nfunction initNavTree(toroot,relpath)\n{\n  var o = new Object();\n  o.toroot = toroot;\n  o.node = new Object();\n  o.node.li = document.getElementById(\"nav-tree-contents\");\n  o.node.childrenData = NAVTREE;\n  o.node.children = new Array();\n  o.node.childrenUL = document.createElement(\"ul\");\n  o.node.getChildrenUL = function() { return o.node.childrenUL; };\n  o.node.li.appendChild(o.node.childrenUL);\n  o.node.depth = 0;\n  o.node.relpath = relpath;\n  o.node.expanded = false;\n  o.node.isLast = true;\n  o.node.plus_img = document.createElement(\"span\");\n  o.node.plus_img.className = 'arrow';\n  o.node.plus_img.innerHTML = arrowRight;\n\n  if (localStorageSupported()) {\n    var navSync = $('#nav-sync');\n    if (cachedLink()) {\n      showSyncOff(navSync,relpath);\n      navSync.removeClass('sync');\n    } else {\n      showSyncOn(navSync,relpath);\n    }\n    navSync.click(function(){ toggleSyncButton(relpath); });\n  }\n\n  $(window).load(function(){\n    navTo(o,toroot,hashUrl(),relpath);\n    showRoot();\n  });\n\n  $(window).bind('hashchange', function(){\n     if (window.location.hash && window.location.hash.length>1){\n       var a;\n       if ($(location).attr('hash')){\n         var clslink=stripPath(pathName())+':'+hashValue();\n         a=$('.item a[class$=\"'+clslink.replace(/</g,'\\\\3c ')+'\"]');\n       }\n       if (a==null || !$(a).parent().parent().hasClass('selected')){\n         $('.item').removeClass('selected');\n         $('.item').removeAttr('id');\n       }\n       var link=stripPath2(pathName());\n       navTo(o,link,hashUrl(),relpath);\n     } else if (!animationInProgress) {\n       $('#doc-content').scrollTop(0);\n       $('.item').removeClass('selected');\n       $('.item').removeAttr('id');\n       navTo(o,toroot,hashUrl(),relpath);\n     }\n  })\n}\n\n"
  },
  {
    "path": "website/static/docs/en/html/navtreedata.js",
    "content": "var NAVTREE =\n[\n  [ \"fastText\", \"index.html\", [\n    [ \"Namespaces\", null, [\n      [ \"Namespace List\", \"namespaces.html\", \"namespaces\" ],\n      [ \"Namespace Members\", \"namespacemembers.html\", [\n        [ \"All\", \"namespacemembers.html\", null ],\n        [ \"Functions\", \"namespacemembers_func.html\", null ],\n        [ \"Typedefs\", \"namespacemembers_type.html\", null ],\n        [ \"Enumerations\", \"namespacemembers_enum.html\", null ]\n      ] ]\n    ] ],\n    [ \"Classes\", \"annotated.html\", [\n      [ \"Class List\", \"annotated.html\", \"annotated_dup\" ],\n      [ \"Class Index\", \"classes.html\", null ],\n      [ \"Class Members\", \"functions.html\", [\n        [ \"All\", \"functions.html\", \"functions_dup\" ],\n        [ \"Functions\", \"functions_func.html\", null ],\n        [ \"Variables\", \"functions_vars.html\", null ]\n      ] ]\n    ] ],\n    [ \"Files\", null, [\n      [ \"File List\", \"files.html\", \"files\" ],\n      [ \"File Members\", \"globals.html\", [\n        [ \"All\", \"globals.html\", null ],\n        [ \"Functions\", \"globals_func.html\", null ],\n        [ \"Macros\", \"globals_defs.html\", null ]\n      ] ]\n    ] ]\n  ] ]\n];\n\nvar NAVTREEINDEX =\n[\n\"annotated.html\",\n\"classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a\"\n];\n\nvar SYNCONMSG = 'click to disable panel synchronisation';\nvar SYNCOFFMSG = 'click to enable panel synchronisation';"
  },
  {
    "path": "website/static/docs/en/html/navtreeindex0.js",
    "content": "var NAVTREEINDEX0 =\n{\n\"annotated.html\":[1,0],\n\"args_8cc.html\":[2,0,0,0],\n\"args_8h.html\":[2,0,0,1],\n\"args_8h.html#a1ba04862fd670674501ccacc936e1952\":[2,0,0,1,1],\n\"args_8h.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764\":[2,0,0,1,1,0],\n\"args_8h.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c\":[2,0,0,1,1,2],\n\"args_8h.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1\":[2,0,0,1,1,1],\n\"args_8h.html#a349df214746a2ea0e5d7c26326b03d6f\":[2,0,0,1,2],\n\"args_8h.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14\":[2,0,0,1,2,2],\n\"args_8h.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d\":[2,0,0,1,2,1],\n\"args_8h.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af\":[2,0,0,1,2,0],\n\"args_8h_source.html\":[2,0,0,1],\n\"classes.html\":[1,1],\n\"classfasttext_1_1Args.html\":[1,0,0,0],\n\"classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290\":[1,0,0,0,16],\n\"classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7\":[1,0,0,0,7],\n\"classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb\":[1,0,0,0,35],\n\"classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f\":[1,0,0,0,27],\n\"classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642\":[1,0,0,0,15],\n\"classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72\":[1,0,0,0,30],\n\"classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9\":[1,0,0,0,19],\n\"classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d\":[1,0,0,0,25],\n\"classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b\":[1,0,0,0,29],\n\"classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd\":[1,0,0,0,6],\n\"classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb\":[1,0,0,0,9],\n\"classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd\":[1,0,0,0,14],\n\"classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d\":[1,0,0,0,18],\n\"classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3\":[1,0,0,0,11],\n\"classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815\":[1,0,0,0,13],\n\"classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5\":[1,0,0,0,12],\n\"classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be\":[1,0,0,0,22],\n\"classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4\":[1,0,0,0,1],\n\"classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b\":[1,0,0,0,21],\n\"classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6\":[1,0,0,0,5],\n\"classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81\":[1,0,0,0,34],\n\"classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567\":[1,0,0,0,33],\n\"classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe\":[1,0,0,0,4],\n\"classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30\":[1,0,0,0,24],\n\"classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03\":[1,0,0,0,0],\n\"classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5\":[1,0,0,0,20],\n\"classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc\":[1,0,0,0,28],\n\"classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765\":[1,0,0,0,2],\n\"classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445\":[1,0,0,0,17],\n\"classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f\":[1,0,0,0,36],\n\"classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101\":[1,0,0,0,32],\n\"classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392\":[1,0,0,0,8],\n\"classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0\":[1,0,0,0,10],\n\"classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0\":[1,0,0,0,26],\n\"classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e\":[1,0,0,0,3],\n\"classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35\":[1,0,0,0,23],\n\"classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0\":[1,0,0,0,31],\n\"classfasttext_1_1Dictionary.html\":[1,0,0,1],\n\"classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24\":[1,0,0,1,12],\n\"classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5\":[1,0,0,1,5],\n\"classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1\":[1,0,0,1,29],\n\"classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0\":[1,0,0,1,18],\n\"classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3\":[1,0,0,1,37],\n\"classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf\":[1,0,0,1,4],\n\"classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d\":[1,0,0,1,27],\n\"classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130\":[1,0,0,1,14],\n\"classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c\":[1,0,0,1,38],\n\"classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659\":[1,0,0,1,11],\n\"classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3\":[1,0,0,1,21],\n\"classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d\":[1,0,0,1,8],\n\"classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57\":[1,0,0,1,34],\n\"classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62\":[1,0,0,1,33],\n\"classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56\":[1,0,0,1,1],\n\"classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b\":[1,0,0,1,28],\n\"classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f\":[1,0,0,1,6],\n\"classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895\":[1,0,0,1,22],\n\"classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889\":[1,0,0,1,30],\n\"classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c\":[1,0,0,1,2],\n\"classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448\":[1,0,0,1,16],\n\"classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543\":[1,0,0,1,10],\n\"classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f\":[1,0,0,1,15],\n\"classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01\":[1,0,0,1,25],\n\"classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c\":[1,0,0,1,31],\n\"classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972\":[1,0,0,1,23],\n\"classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f\":[1,0,0,1,7],\n\"classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108\":[1,0,0,1,32],\n\"classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7\":[1,0,0,1,39],\n\"classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8\":[1,0,0,1,17],\n\"classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab\":[1,0,0,1,36],\n\"classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e\":[1,0,0,1,20],\n\"classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1\":[1,0,0,1,19],\n\"classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e\":[1,0,0,1,3],\n\"classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864\":[1,0,0,1,9],\n\"classfasttext_1_1Dictionary.html#ace021fb98186f100dd8cfba63c7302af\":[1,0,0,1,13],\n\"classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d\":[1,0,0,1,24],\n\"classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e\":[1,0,0,1,0],\n\"classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136\":[1,0,0,1,26],\n\"classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921\":[1,0,0,1,35],\n\"classfasttext_1_1FastText.html\":[1,0,0,3],\n\"classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9\":[1,0,0,3,22],\n\"classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699\":[1,0,0,3,14],\n\"classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35\":[1,0,0,3,31],\n\"classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1\":[1,0,0,3,30],\n\"classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422\":[1,0,0,3,33],\n\"classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010\":[1,0,0,3,5],\n\"classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74\":[1,0,0,3,1],\n\"classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618\":[1,0,0,3,23],\n\"classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099\":[1,0,0,3,19],\n\"classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f\":[1,0,0,3,26],\n\"classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5\":[1,0,0,3,0],\n\"classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38\":[1,0,0,3,36],\n\"classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8\":[1,0,0,3,35],\n\"classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885\":[1,0,0,3,11],\n\"classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f\":[1,0,0,3,2],\n\"classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9\":[1,0,0,3,4],\n\"classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32\":[1,0,0,3,10],\n\"classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa\":[1,0,0,3,38],\n\"classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f\":[1,0,0,3,21],\n\"classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce\":[1,0,0,3,40],\n\"classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b\":[1,0,0,3,29],\n\"classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501\":[1,0,0,3,17],\n\"classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1\":[1,0,0,3,3],\n\"classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95\":[1,0,0,3,13],\n\"classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a\":[1,0,0,3,9],\n\"classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad\":[1,0,0,3,18],\n\"classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a\":[1,0,0,3,25],\n\"classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb\":[1,0,0,3,34],\n\"classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4\":[1,0,0,3,37],\n\"classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49\":[1,0,0,3,28],\n\"classfasttext_1_1FastText.html#ac844ddc1573e80a8b5a255668fc97247\":[1,0,0,3,8],\n\"classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4\":[1,0,0,3,12],\n\"classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533\":[1,0,0,3,6],\n\"classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee\":[1,0,0,3,32],\n\"classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f\":[1,0,0,3,15],\n\"classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f\":[1,0,0,3,20],\n\"classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd\":[1,0,0,3,7],\n\"classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8\":[1,0,0,3,39],\n\"classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b\":[1,0,0,3,27],\n\"classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b\":[1,0,0,3,41],\n\"classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf\":[1,0,0,3,16],\n\"classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585\":[1,0,0,3,24],\n\"classfasttext_1_1Matrix.html\":[1,0,0,4],\n\"classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c\":[1,0,0,4,12],\n\"classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae\":[1,0,0,4,17],\n\"classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba\":[1,0,0,4,16],\n\"classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d\":[1,0,0,4,11],\n\"classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922\":[1,0,0,4,9],\n\"classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b\":[1,0,0,4,14],\n\"classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0\":[1,0,0,4,7],\n\"classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0\":[1,0,0,4,6],\n\"classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3\":[1,0,0,4,13],\n\"classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de\":[1,0,0,4,4],\n\"classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417\":[1,0,0,4,3],\n\"classfasttext_1_1Matrix.html#ad70f2182e0dd1b520ee42200e2d0ed04\":[1,0,0,4,2],\n\"classfasttext_1_1Matrix.html#adb3094376193874860df45e9346eebd6\":[1,0,0,4,1],\n\"classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084\":[1,0,0,4,18],\n\"classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890\":[1,0,0,4,0],\n\"classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136\":[1,0,0,4,8],\n\"classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3\":[1,0,0,4,19],\n\"classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d\":[1,0,0,4,15],\n\"classfasttext_1_1Matrix.html#afb690a9d64bc7e941cbd48f20cab872e\":[1,0,0,4,10],\n\"classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221\":[1,0,0,4,5],\n\"classfasttext_1_1Model.html\":[1,0,0,5],\n\"classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6\":[1,0,0,5,5],\n\"classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c\":[1,0,0,5,14],\n\"classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1\":[1,0,0,5,30],\n\"classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19\":[1,0,0,5,28],\n\"classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43\":[1,0,0,5,36],\n\"classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f\":[1,0,0,5,35],\n\"classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77\":[1,0,0,5,7],\n\"classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79\":[1,0,0,5,27],\n\"classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751\":[1,0,0,5,33],\n\"classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e\":[1,0,0,5,29],\n\"classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf\":[1,0,0,5,21],\n\"classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1\":[1,0,0,5,38],\n\"classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a\":[1,0,0,5,42],\n\"classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc\":[1,0,0,5,10],\n\"classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338\":[1,0,0,5,0],\n\"classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660\":[1,0,0,5,16],\n\"classfasttext_1_1Model.html#a6e7ad347856d6d9b6994a4263e10585a\":[1,0,0,5,18],\n\"classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72\":[1,0,0,5,1],\n\"classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99\":[1,0,0,5,24],\n\"classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170\":[1,0,0,5,40],\n\"classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97\":[1,0,0,5,26],\n\"classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676\":[1,0,0,5,39],\n\"classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b\":[1,0,0,5,20],\n\"classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c\":[1,0,0,5,34],\n\"classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090\":[1,0,0,5,41],\n\"classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0\":[1,0,0,5,2],\n\"classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86\":[1,0,0,5,17],\n\"classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd\":[1,0,0,5,3],\n\"classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780\":[1,0,0,5,13],\n\"classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b\":[1,0,0,5,25],\n\"classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07\":[1,0,0,5,12],\n\"classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693\":[1,0,0,5,37],\n\"classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51\":[1,0,0,5,11],\n\"classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9\":[1,0,0,5,44],\n\"classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b\":[1,0,0,5,23],\n\"classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5\":[1,0,0,5,8],\n\"classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1\":[1,0,0,5,9],\n\"classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713\":[1,0,0,5,19],\n\"classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e\":[1,0,0,5,22],\n\"classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110\":[1,0,0,5,4],\n\"classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2\":[1,0,0,5,43],\n\"classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621\":[1,0,0,5,32],\n\"classfasttext_1_1Model.html#af48ca152068185f0bd31746be56c03bd\":[1,0,0,5,6],\n\"classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816\":[1,0,0,5,15],\n\"classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f\":[1,0,0,5,31],\n\"classfasttext_1_1ProductQuantizer.html\":[1,0,0,7],\n\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\":[1,0,0,7,9],\n\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\":[1,0,0,7,0],\n\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\":[1,0,0,7,4],\n\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\":[1,0,0,7,25],\n\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\":[1,0,0,7,18],\n\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\":[1,0,0,7,21],\n\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\":[1,0,0,7,10],\n\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\":[1,0,0,7,14],\n\"classfasttext_1_1ProductQuantizer.html#a4f7b2b81820abc0c577a89a768ef3347\":[1,0,0,7,8],\n\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\":[1,0,0,7,15],\n\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\":[1,0,0,7,11],\n\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\":[1,0,0,7,13],\n\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\":[1,0,0,7,12],\n\"classfasttext_1_1ProductQuantizer.html#a8563da401dbfaa98983ef0c92f92a18f\":[1,0,0,7,1],\n\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\":[1,0,0,7,17],\n\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\":[1,0,0,7,3],\n\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\":[1,0,0,7,2],\n\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\":[1,0,0,7,23],\n\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\":[1,0,0,7,5],\n\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\":[1,0,0,7,22],\n\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\":[1,0,0,7,7],\n\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\":[1,0,0,7,27],\n\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\":[1,0,0,7,20],\n\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\":[1,0,0,7,6],\n\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\":[1,0,0,7,26],\n\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\":[1,0,0,7,19],\n\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\":[1,0,0,7,24],\n\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\":[1,0,0,7,16],\n\"classfasttext_1_1QMatrix.html\":[1,0,0,8],\n\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\":[1,0,0,8,10],\n\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\":[1,0,0,8,7],\n\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\":[1,0,0,8,9],\n\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\":[1,0,0,8,5],\n\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\":[1,0,0,8,15],\n\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\":[1,0,0,8,12],\n\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\":[1,0,0,8,14],\n\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\":[1,0,0,8,17],\n\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\":[1,0,0,8,2],\n\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\":[1,0,0,8,16],\n\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\":[1,0,0,8,0],\n\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\":[1,0,0,8,18],\n\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\":[1,0,0,8,8],\n\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\":[1,0,0,8,11],\n\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\":[1,0,0,8,4],\n\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\":[1,0,0,8,13],\n\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\":[1,0,0,8,3],\n\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\":[1,0,0,8,6]\n};\n"
  },
  {
    "path": "website/static/docs/en/html/navtreeindex1.js",
    "content": "var NAVTREEINDEX1 =\n{\n\"classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a\":[1,0,0,8,1],\n\"classfasttext_1_1Vector.html\":[1,0,0,9],\n\"classfasttext_1_1Vector.html#a06c176b63c43754de86ff01846ebd47b\":[1,0,0,9,13],\n\"classfasttext_1_1Vector.html#a100ad4f70094b54b84e43909da7be040\":[1,0,0,9,3],\n\"classfasttext_1_1Vector.html#a1bdce14007d4b8878a3a3dd36b467e95\":[1,0,0,9,6],\n\"classfasttext_1_1Vector.html#a29196e26f7258ba61d7ea4d19c4b14a7\":[1,0,0,9,4],\n\"classfasttext_1_1Vector.html#a4540e8d1c7bf5110302f5ab41d601e0c\":[1,0,0,9,10],\n\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\":[1,0,0,9,7],\n\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\":[1,0,0,9,2],\n\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\":[1,0,0,9,17],\n\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\":[1,0,0,9,11],\n\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\":[1,0,0,9,16],\n\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\":[1,0,0,9,0],\n\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\":[1,0,0,9,12],\n\"classfasttext_1_1Vector.html#aec343a9bf909342d633f09c4fa3da97d\":[1,0,0,9,9],\n\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\":[1,0,0,9,1],\n\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\":[1,0,0,9,5],\n\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\":[1,0,0,9,15],\n\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\":[1,0,0,9,8],\n\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\":[1,0,0,9,14],\n\"dictionary_8cc.html\":[2,0,0,2],\n\"dictionary_8h.html\":[2,0,0,3],\n\"dictionary_8h.html#a532eedeee97e8d66a96b519d165f4eb7\":[2,0,0,3,3],\n\"dictionary_8h.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a\":[2,0,0,3,3,0],\n\"dictionary_8h.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34\":[2,0,0,3,3,1],\n\"dictionary_8h.html#a6778f74ca8c360ba917216cb7fcbf497\":[2,0,0,3,2],\n\"dictionary_8h_source.html\":[2,0,0,3],\n\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\":[2,0,0],\n\"fasttext_8cc.html\":[2,0,0,4],\n\"fasttext_8h.html\":[2,0,0,5],\n\"fasttext_8h.html#a74036bd705019bb33643e90202bf343e\":[2,0,0,5,2],\n\"fasttext_8h.html#af5de14588083ef853a2863c8d625ee24\":[2,0,0,5,1],\n\"fasttext_8h_source.html\":[2,0,0,5],\n\"files.html\":[2,0],\n\"functions.html\":[1,2,0,0],\n\"functions.html\":[1,2,0],\n\"functions_0x7e.html\":[1,2,0,23],\n\"functions_b.html\":[1,2,0,1],\n\"functions_c.html\":[1,2,0,2],\n\"functions_d.html\":[1,2,0,3],\n\"functions_e.html\":[1,2,0,4],\n\"functions_f.html\":[1,2,0,5],\n\"functions_func.html\":[1,2,1],\n\"functions_g.html\":[1,2,0,6],\n\"functions_h.html\":[1,2,0,7],\n\"functions_i.html\":[1,2,0,8],\n\"functions_k.html\":[1,2,0,9],\n\"functions_l.html\":[1,2,0,10],\n\"functions_m.html\":[1,2,0,11],\n\"functions_n.html\":[1,2,0,12],\n\"functions_o.html\":[1,2,0,13],\n\"functions_p.html\":[1,2,0,14],\n\"functions_q.html\":[1,2,0,15],\n\"functions_r.html\":[1,2,0,16],\n\"functions_s.html\":[1,2,0,17],\n\"functions_t.html\":[1,2,0,18],\n\"functions_u.html\":[1,2,0,19],\n\"functions_v.html\":[1,2,0,20],\n\"functions_vars.html\":[1,2,2],\n\"functions_w.html\":[1,2,0,21],\n\"functions_z.html\":[1,2,0,22],\n\"globals.html\":[2,1,0],\n\"globals_defs.html\":[2,1,2],\n\"globals_func.html\":[2,1,1],\n\"index.html\":[],\n\"main_8cc.html\":[2,0,0,6],\n\"main_8cc.html#a086a02edc37d73f760db2882df2ea57d\":[2,0,0,6,8],\n\"main_8cc.html#a133e93a6033465d23657e023a022c16e\":[2,0,0,6,15],\n\"main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8\":[2,0,0,6,13],\n\"main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15\":[2,0,0,6,4],\n\"main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627\":[2,0,0,6,1],\n\"main_8cc.html#a425a56e6d14ed741a6565821124c9413\":[2,0,0,6,17],\n\"main_8cc.html#a4328b0d06690e73334e2e7e1135efc37\":[2,0,0,6,9],\n\"main_8cc.html#a4479606e315746032f4ecde4b62ebc26\":[2,0,0,6,3],\n\"main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d\":[2,0,0,6,12],\n\"main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd\":[2,0,0,6,16],\n\"main_8cc.html#a7137053a88d8b242fcac8625ce302b16\":[2,0,0,6,18],\n\"main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4\":[2,0,0,6,0],\n\"main_8cc.html#a8126ecd2d93d3b73b1c516e323575052\":[2,0,0,6,6],\n\"main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4\":[2,0,0,6,2],\n\"main_8cc.html#aa743c1f04268af8569712a85c561a67f\":[2,0,0,6,11],\n\"main_8cc.html#aa858ef5149aa995107818c079d930037\":[2,0,0,6,7],\n\"main_8cc.html#ab9897a3337e4f0833d547e044fd033eb\":[2,0,0,6,10],\n\"main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6\":[2,0,0,6,14],\n\"main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705\":[2,0,0,6,5],\n\"matrix_8cc.html\":[2,0,0,7],\n\"matrix_8h.html\":[2,0,0,8],\n\"matrix_8h_source.html\":[2,0,0,8],\n\"model_8cc.html\":[2,0,0,9],\n\"model_8h.html\":[2,0,0,10],\n\"model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532\":[2,0,0,10,4],\n\"model_8h.html#a39f445c336c3e871eccbaa0423b6daef\":[2,0,0,10,2],\n\"model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34\":[2,0,0,10,3],\n\"model_8h_source.html\":[2,0,0,10],\n\"namespacefasttext.html\":[0,0,0],\n\"namespacefasttext.html\":[1,0,0],\n\"namespacefasttext_1_1utils.html\":[0,0,0,0],\n\"namespacemembers.html\":[0,1,0],\n\"namespacemembers_enum.html\":[0,1,3],\n\"namespacemembers_func.html\":[0,1,1],\n\"namespacemembers_type.html\":[0,1,2],\n\"namespaces.html\":[0,0],\n\"pages.html\":[],\n\"productquantizer_8cc.html\":[2,0,0,11],\n\"productquantizer_8cc.html#a4336b1849ad0c1f134ed0ac9842f053c\":[2,0,0,11,0],\n\"productquantizer_8h.html\":[2,0,0,12],\n\"productquantizer_8h_source.html\":[2,0,0,12],\n\"qmatrix_8cc.html\":[2,0,0,13],\n\"qmatrix_8h.html\":[2,0,0,14],\n\"qmatrix_8h_source.html\":[2,0,0,14],\n\"real_8h.html\":[2,0,0,15],\n\"real_8h.html#a7afdad102f318271c14154b8e65e5ea3\":[2,0,0,15,0],\n\"real_8h_source.html\":[2,0,0,15],\n\"structfasttext_1_1Node.html\":[1,0,0,6],\n\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\":[1,0,0,6,2],\n\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\":[1,0,0,6,0],\n\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\":[1,0,0,6,3],\n\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\":[1,0,0,6,1],\n\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\":[1,0,0,6,4],\n\"structfasttext_1_1entry.html\":[1,0,0,2],\n\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\":[1,0,0,2,1],\n\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\":[1,0,0,2,2],\n\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\":[1,0,0,2,0],\n\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\":[1,0,0,2,3],\n\"utils_8cc.html\":[2,0,0,16],\n\"utils_8cc.html#a2d7a0a4c572dbfa5458ca782355c35aa\":[2,0,0,16,1],\n\"utils_8cc.html#a9d7d5c4b31752c7fe0bf71970203f82d\":[2,0,0,16,0],\n\"utils_8h.html\":[2,0,0,17],\n\"utils_8h.html#a2d7a0a4c572dbfa5458ca782355c35aa\":[2,0,0,17,1],\n\"utils_8h.html#a9d7d5c4b31752c7fe0bf71970203f82d\":[2,0,0,17,0],\n\"utils_8h_source.html\":[2,0,0,17],\n\"vector_8cc.html\":[2,0,0,18],\n\"vector_8cc.html#a23eb4596f3beb9859b22cf64a83461d6\":[2,0,0,18,0],\n\"vector_8h.html\":[2,0,0,19],\n\"vector_8h.html#a23eb4596f3beb9859b22cf64a83461d6\":[2,0,0,19,1],\n\"vector_8h_source.html\":[2,0,0,19]\n};\n"
  },
  {
    "path": "website/static/docs/en/html/productquantizer_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/productquantizer.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('productquantizer_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">productquantizer.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"productquantizer_8h_source.html\">productquantizer.h</a>&quot;</code><br />\n<code>#include &lt;algorithm&gt;</code><br />\n<code>#include &lt;iostream&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a4336b1849ad0c1f134ed0ac9842f053c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">real&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a4336b1849ad0c1f134ed0ac9842f053c\">fasttext::distL2</a> (const real *x, const real *y, int32_t d)</td></tr>\n<tr class=\"separator:a4336b1849ad0c1f134ed0ac9842f053c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"productquantizer_8cc.html\">productquantizer.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/productquantizer_8cc.js",
    "content": "var productquantizer_8cc =\n[\n    [ \"distL2\", \"productquantizer_8cc.html#a4336b1849ad0c1f134ed0ac9842f053c\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/productquantizer_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/productquantizer.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('productquantizer_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">productquantizer.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;cstring&gt;</code><br />\n<code>#include &lt;istream&gt;</code><br />\n<code>#include &lt;ostream&gt;</code><br />\n<code>#include &lt;vector&gt;</code><br />\n<code>#include &lt;random&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&quot;</code><br />\n</div>\n<p><a href=\"productquantizer_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"productquantizer_8h.html\">productquantizer.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/productquantizer_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/productquantizer.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('productquantizer_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">productquantizer.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"productquantizer_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_PRODUCT_QUANTIZER_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_PRODUCT_QUANTIZER_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;cstring&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;istream&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"preprocessor\">#include &lt;ostream&gt;</span></div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;<span class=\"preprocessor\">#include &lt;vector&gt;</span></div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;<span class=\"preprocessor\">#include &lt;random&gt;</span></div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;</div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"vector_8h.html\">vector.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html\">   24</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html\">ProductQuantizer</a> {</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;  <span class=\"keyword\">private</span>:</div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">   26</a></span>&#160;    <span class=\"keyword\">const</span> int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">nbits_</a> = 8;</div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">   27</a></span>&#160;    <span class=\"keyword\">const</span> int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">ksub_</a> = 1 &lt;&lt; <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">nbits_</a>;</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">   28</a></span>&#160;    <span class=\"keyword\">const</span> int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">max_points_per_cluster_</a> = 256;</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">   29</a></span>&#160;    <span class=\"keyword\">const</span> int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">max_points_</a> = max_points_per_cluster_ * <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">ksub_</a>;</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">   30</a></span>&#160;    <span class=\"keyword\">const</span> int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">seed_</a> = 1234;</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">   31</a></span>&#160;    <span class=\"keyword\">const</span> int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">niter_</a> = 25;</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">   32</a></span>&#160;    <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">eps_</a> = 1e-7;</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\">   33</span>&#160;</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">   34</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">dim_</a>;</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">   35</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">nsubq_</a>;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">   36</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">dsub_</a>;</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">   37</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">lastdsub_</a>;</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\">   38</span>&#160;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">   39</a></span>&#160;    std::vector&lt;real&gt; <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">centroids_</a>;</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\">   40</span>&#160;</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">   41</a></span>&#160;    std::minstd_rand <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">rng</a>;</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\">   42</span>&#160;</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\">   43</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">   44</a></span>&#160;    <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">ProductQuantizer</a>() {}</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\">   45</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">ProductQuantizer</a>(int32_t, int32_t);</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\">   46</span>&#160;</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\">   47</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">get_centroids</a> (int32_t, uint8_t);</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;    <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">get_centroids</a>(int32_t, uint8_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\">   49</span>&#160;</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\">   50</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\">assign_centroid</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, uint8_t*, int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\">   51</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\">Estep</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, uint8_t*, int32_t, int32_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\">   52</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\">MStep</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, <span class=\"keyword\">const</span> uint8_t*, int32_t, int32_t);</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\">   53</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\">kmeans</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, int32_t, int32_t);</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\">train</a>(<span class=\"keywordtype\">int</span>, <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*);</div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\">   55</span>&#160;</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\">   56</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">mulcode</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <span class=\"keyword\">const</span> uint8_t*, int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\">addcode</a>(<a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <span class=\"keyword\">const</span> uint8_t*, int32_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00058\"></a><span class=\"lineno\">   58</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\">compute_code</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, uint8_t*)  <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00059\"></a><span class=\"lineno\">   59</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\">compute_codes</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>*, uint8_t*, int32_t)  <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00060\"></a><span class=\"lineno\">   60</span>&#160;</div><div class=\"line\"><a name=\"l00061\"></a><span class=\"lineno\">   61</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\">save</a>(std::ostream&amp;);</div><div class=\"line\"><a name=\"l00062\"></a><span class=\"lineno\">   62</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\">load</a>(std::istream&amp;);</div><div class=\"line\"><a name=\"l00063\"></a><span class=\"lineno\">   63</span>&#160;};</div><div class=\"line\"><a name=\"l00064\"></a><span class=\"lineno\">   64</span>&#160;</div><div class=\"line\"><a name=\"l00065\"></a><span class=\"lineno\">   65</span>&#160;}</div><div class=\"line\"><a name=\"l00066\"></a><span class=\"lineno\">   66</span>&#160;</div><div class=\"line\"><a name=\"l00067\"></a><span class=\"lineno\">   67</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a82e0fb5da37c5c6a62d6f9f6d34d91d6\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6\">fasttext::ProductQuantizer::mulcode</a></div><div class=\"ttdeci\">real mulcode(const Vector &amp;, const uint8_t *, int32_t, real) const</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:149</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a5f6cc5e957f5546523aea7dd9e826f25\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25\">fasttext::ProductQuantizer::MStep</a></div><div class=\"ttdeci\">void MStep(const real *, real *, const uint8_t *, int32_t, int32_t)</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:67</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a1e09b5c96869b0b4758348b976152309\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309\">fasttext::ProductQuantizer::nsubq_</a></div><div class=\"ttdeci\">int32_t nsubq_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:35</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a06c91357dc88225714daa10548525352\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352\">fasttext::ProductQuantizer::kmeans</a></div><div class=\"ttdeci\">void kmeans(const real *, real *, int32_t, int32_t)</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:113</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a6e4d58883fb38225c6f4731770b89274\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274\">fasttext::ProductQuantizer::save</a></div><div class=\"ttdeci\">void save(std::ostream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:192</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_aa957e4e92eb6111152f6e34b0b4a27cd\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd\">fasttext::ProductQuantizer::assign_centroid</a></div><div class=\"ttdeci\">real assign_centroid(const real *, const real *, uint8_t *, int32_t) const</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:43</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_adb6a2ade7e4a77d7b59f03c081d11d91\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91\">fasttext::ProductQuantizer::get_centroids</a></div><div class=\"ttdeci\">real * get_centroids(int32_t, uint8_t)</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:38</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_ae71f8417a9265bdee493edfa6139d757\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757\">fasttext::ProductQuantizer::seed_</a></div><div class=\"ttdeci\">const int32_t seed_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:30</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html\">fasttext::ProductQuantizer</a></div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:24</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></div><div class=\"ttdef\"><b>Definition:</b> vector.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_afa968d226983fbebfd2bb9d80bf6571f\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f\">fasttext::ProductQuantizer::niter_</a></div><div class=\"ttdeci\">const int32_t niter_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:31</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a9221f241be27487c671bbbba7a84b389\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389\">fasttext::ProductQuantizer::dsub_</a></div><div class=\"ttdeci\">int32_t dsub_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:36</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_ac0039e0eccfc7dc15ddb3be3bac0fec3\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3\">fasttext::ProductQuantizer::addcode</a></div><div class=\"ttdeci\">void addcode(Vector &amp;, const uint8_t *, int32_t, real) const</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:164</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a2334f23eb94911fa4b528a584eb7f7e4\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4\">fasttext::ProductQuantizer::eps_</a></div><div class=\"ttdeci\">const real eps_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:32</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_af5755b1c5ed3128430f1c1de2c03ac26\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26\">fasttext::ProductQuantizer::rng</a></div><div class=\"ttdeci\">std::minstd_rand rng</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:41</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a56ed1ae67f47e95f2d1f4c6146d4913a\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a\">fasttext::ProductQuantizer::centroids_</a></div><div class=\"ttdeci\">std::vector&lt; real &gt; centroids_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:39</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_ae79be52ccbb6230ce129234e150bc826\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826\">fasttext::ProductQuantizer::lastdsub_</a></div><div class=\"ttdeci\">int32_t lastdsub_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:37</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_aca0eb5cd10d5bba60b4f3f37f87676f6\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6\">fasttext::ProductQuantizer::compute_codes</a></div><div class=\"ttdeci\">void compute_codes(const real *, uint8_t *, int32_t) const</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:185</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_afdeec3948e983b1f3e1e36292153e300\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300\">fasttext::ProductQuantizer::dim_</a></div><div class=\"ttdeci\">int32_t dim_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:34</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a40e3090d1f7e525c3e9787d9856d3b7d\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d\">fasttext::ProductQuantizer::train</a></div><div class=\"ttdeci\">void train(int, const real *)</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:128</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a1b6fedf0a199ed0ec1afc2aea26a4b37\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37\">fasttext::ProductQuantizer::compute_code</a></div><div class=\"ttdeci\">void compute_code(const real *, uint8_t *) const</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:177</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a38780ae9c1997722683bb43d55ece633\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633\">fasttext::ProductQuantizer::max_points_</a></div><div class=\"ttdeci\">const int32_t max_points_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:29</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_afa68c0f82fab09a93c2024a4dceecdf7\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7\">fasttext::ProductQuantizer::ksub_</a></div><div class=\"ttdeci\">const int32_t ksub_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:27</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_ac44db00342a54cb05df9d0c136a8633c\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c\">fasttext::ProductQuantizer::nbits_</a></div><div class=\"ttdeci\">const int32_t nbits_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:26</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_ad439c3fefe554fa05f2b1d06ddcd77b6\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6\">fasttext::ProductQuantizer::max_points_per_cluster_</a></div><div class=\"ttdeci\">const int32_t max_points_per_cluster_</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:28</div></div>\n<div class=\"ttc\" id=\"vector_8h_html\"><div class=\"ttname\"><a href=\"vector_8h.html\">vector.h</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a08b62937f9073fb4d95f161da7121850\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850\">fasttext::ProductQuantizer::ProductQuantizer</a></div><div class=\"ttdeci\">ProductQuantizer()</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.h:44</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_aeba73a087e59f504472063db0a217e84\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84\">fasttext::ProductQuantizer::Estep</a></div><div class=\"ttdeci\">void Estep(const real *, const real *, uint8_t *, int32_t, int32_t) const</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:59</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1ProductQuantizer_html_a4060617809c0099a9e5ca73ec0497056\"><div class=\"ttname\"><a href=\"classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056\">fasttext::ProductQuantizer::load</a></div><div class=\"ttdeci\">void load(std::istream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> productquantizer.cc:200</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"productquantizer_8h.html\">productquantizer.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/qmatrix_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/qmatrix.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('qmatrix_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">qmatrix.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"qmatrix_8h_source.html\">qmatrix.h</a>&quot;</code><br />\n<code>#include &lt;assert.h&gt;</code><br />\n<code>#include &lt;iostream&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"qmatrix_8cc.html\">qmatrix.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/qmatrix_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/qmatrix.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('qmatrix_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">qmatrix.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;cstdint&gt;</code><br />\n<code>#include &lt;istream&gt;</code><br />\n<code>#include &lt;ostream&gt;</code><br />\n<code>#include &lt;vector&gt;</code><br />\n<code>#include &lt;memory&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"productquantizer_8h_source.html\">productquantizer.h</a>&quot;</code><br />\n</div>\n<p><a href=\"qmatrix_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"qmatrix_8h.html\">qmatrix.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/qmatrix_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/qmatrix.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('qmatrix_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">qmatrix.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"qmatrix_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_QMATRIX_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_QMATRIX_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;cstdint&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;istream&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"preprocessor\">#include &lt;ostream&gt;</span></div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;</div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;<span class=\"preprocessor\">#include &lt;vector&gt;</span></div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;<span class=\"preprocessor\">#include &lt;memory&gt;</span></div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;</div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"matrix_8h.html\">matrix.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"vector_8h.html\">vector.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"productquantizer_8h.html\">productquantizer.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\">   26</span>&#160;</div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\">   27</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\">   28</span>&#160;</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html\">   29</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a> {</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\">   30</span>&#160;  <span class=\"keyword\">private</span>:</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">   31</a></span>&#160;    std::unique_ptr&lt;ProductQuantizer&gt; <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">pq_</a>;</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">   32</a></span>&#160;    std::unique_ptr&lt;ProductQuantizer&gt; <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">npq_</a>;</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\">   33</span>&#160;</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">   34</a></span>&#160;    uint8_t* <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">codes_</a>;</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">   35</a></span>&#160;    uint8_t* <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">norm_codes_</a>;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\">   36</span>&#160;</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">   37</a></span>&#160;    <span class=\"keywordtype\">bool</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">qnorm_</a>;</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\">   38</span>&#160;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">   39</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">m_</a>;</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">   40</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">n_</a>;</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\">   41</span>&#160;</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">   42</a></span>&#160;    int32_t <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">codesize_</a>;</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\">   43</span>&#160;</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\">   44</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\">   45</span>&#160;</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\">   46</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">QMatrix</a>();</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\">   47</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">QMatrix</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;, int32_t, <span class=\"keywordtype\">bool</span>);</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\">~QMatrix</a>();</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\">   49</span>&#160;</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\">   50</span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\">getM</a>() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\">   51</span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\">getN</a>() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\">   52</span>&#160;</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\">   53</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\">quantizeNorm</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;);</div><div class=\"line\"><a name=\"l00054\"></a><span class=\"lineno\">   54</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\">quantize</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;);</div><div class=\"line\"><a name=\"l00055\"></a><span class=\"lineno\">   55</span>&#160;</div><div class=\"line\"><a name=\"l00056\"></a><span class=\"lineno\">   56</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\">addToVector</a>(<a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp; x, int32_t t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00057\"></a><span class=\"lineno\">   57</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\">dotRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, int64_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00058\"></a><span class=\"lineno\">   58</span>&#160;</div><div class=\"line\"><a name=\"l00059\"></a><span class=\"lineno\">   59</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\">save</a>(std::ostream&amp;);</div><div class=\"line\"><a name=\"l00060\"></a><span class=\"lineno\">   60</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\">load</a>(std::istream&amp;);</div><div class=\"line\"><a name=\"l00061\"></a><span class=\"lineno\">   61</span>&#160;};</div><div class=\"line\"><a name=\"l00062\"></a><span class=\"lineno\">   62</span>&#160;</div><div class=\"line\"><a name=\"l00063\"></a><span class=\"lineno\">   63</span>&#160;}</div><div class=\"line\"><a name=\"l00064\"></a><span class=\"lineno\">   64</span>&#160;</div><div class=\"line\"><a name=\"l00065\"></a><span class=\"lineno\">   65</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a4a69f60ba96c0b1a9da22c3951eca759\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759\">fasttext::QMatrix::codesize_</a></div><div class=\"ttdeci\">int32_t codesize_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:42</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a16350455c02cf5f00175b1b0c6a310cd\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd\">fasttext::QMatrix::getM</a></div><div class=\"ttdeci\">int64_t getM() const</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:83</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_ad2457490bb9a531740187fffb63cace2\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2\">fasttext::QMatrix::m_</a></div><div class=\"ttdeci\">int64_t m_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:39</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_acc957d3d66b58cb9381f6a0556096c93\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93\">fasttext::QMatrix::codes_</a></div><div class=\"ttdeci\">uint8_t * codes_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:34</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_ad1671bceb60d87492b662331cc084c56\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56\">fasttext::QMatrix::dotRow</a></div><div class=\"ttdeci\">real dotRow(const Vector &amp;, int64_t) const</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:72</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></div><div class=\"ttdef\"><b>Definition:</b> vector.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a17f22153d042c64052a3468faec70fce\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce\">fasttext::QMatrix::norm_codes_</a></div><div class=\"ttdeci\">uint8_t * norm_codes_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:35</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_ab9ae1914dc1b72e305880a8c22626afc\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc\">fasttext::QMatrix::quantize</a></div><div class=\"ttdeci\">void quantize(const Matrix &amp;)</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:49</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a00267b43ee5eefc92948c654fb9fc9f1\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1\">fasttext::QMatrix::save</a></div><div class=\"ttdeci\">void save(std::ostream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:91</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a7de6d212bec1c4028ee30e968b5d030d\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d\">fasttext::QMatrix::~QMatrix</a></div><div class=\"ttdeci\">~QMatrix()</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:34</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"matrix_8h_html\"><div class=\"ttname\"><a href=\"matrix_8h.html\">matrix.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_ad969042dfc46a64e386f12616a4d6bcb\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb\">fasttext::QMatrix::getN</a></div><div class=\"ttdeci\">int64_t getN() const</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:87</div></div>\n<div class=\"ttc\" id=\"productquantizer_8h_html\"><div class=\"ttname\"><a href=\"productquantizer_8h.html\">productquantizer.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a8203216a4cb2b721697f7dc2b509f25a\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a\">fasttext::QMatrix::npq_</a></div><div class=\"ttdeci\">std::unique_ptr&lt; ProductQuantizer &gt; npq_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:32</div></div>\n<div class=\"ttc\" id=\"vector_8h_html\"><div class=\"ttname\"><a href=\"vector_8h.html\">vector.h</a></div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></div><div class=\"ttdef\"><b>Definition:</b> matrix.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_aadc6e4d399442555f3c2993b97285143\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143\">fasttext::QMatrix::qnorm_</a></div><div class=\"ttdeci\">bool qnorm_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:37</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_ad8f153a45f69530aeef171bebbce93fc\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc\">fasttext::QMatrix::addToVector</a></div><div class=\"ttdeci\">void addToVector(Vector &amp;x, int32_t t) const</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:64</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a03c039b81b5aaed30d95149de9379998\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998\">fasttext::QMatrix::load</a></div><div class=\"ttdeci\">void load(std::istream &amp;)</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:104</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a6c62644a138ed88863088dcdeb32dbd7\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7\">fasttext::QMatrix::pq_</a></div><div class=\"ttdeci\">std::unique_ptr&lt; ProductQuantizer &gt; pq_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:31</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:29</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a976442aaed5b1afee2f2cd4473c0d62b\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b\">fasttext::QMatrix::QMatrix</a></div><div class=\"ttdeci\">QMatrix()</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a0e4d84be1c6cd0cbfc4568f905961017\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017\">fasttext::QMatrix::quantizeNorm</a></div><div class=\"ttdeci\">void quantizeNorm(const Vector &amp;)</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.cc:41</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html_a54082c819b9939e2d49fc0733a609cea\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea\">fasttext::QMatrix::n_</a></div><div class=\"ttdeci\">int64_t n_</div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:40</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"qmatrix_8h.html\">qmatrix.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/real_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/real.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('real_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#typedef-members\">Typedefs</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">real.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><a href=\"real_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"typedef-members\"></a>\nTypedefs</h2></td></tr>\n<tr class=\"memitem:a7afdad102f318271c14154b8e65e5ea3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef float&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></td></tr>\n<tr class=\"separator:a7afdad102f318271c14154b8e65e5ea3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"real_8h.html\">real.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/real_8h.js",
    "content": "var real_8h =\n[\n    [ \"real\", \"real_8h.html#a7afdad102f318271c14154b8e65e5ea3\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/real_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/real.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('real_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">real.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"real_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_REAL_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_REAL_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;</div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\"><a class=\"line\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">   15</a></span>&#160;<span class=\"keyword\">typedef</span> <span class=\"keywordtype\">float</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>;</div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;</div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;}</div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;</div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"real_8h.html\">real.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/resize.js",
    "content": "function initResizable()\n{\n  var cookie_namespace = 'doxygen';\n  var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;\n\n  function readCookie(cookie)\n  {\n    var myCookie = cookie_namespace+\"_\"+cookie+\"=\";\n    if (document.cookie) {\n      var index = document.cookie.indexOf(myCookie);\n      if (index != -1) {\n        var valStart = index + myCookie.length;\n        var valEnd = document.cookie.indexOf(\";\", valStart);\n        if (valEnd == -1) {\n          valEnd = document.cookie.length;\n        }\n        var val = document.cookie.substring(valStart, valEnd);\n        return val;\n      }\n    }\n    return 0;\n  }\n\n  function writeCookie(cookie, val, expiration)\n  {\n    if (val==undefined) return;\n    if (expiration == null) {\n      var date = new Date();\n      date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week\n      expiration = date.toGMTString();\n    }\n    document.cookie = cookie_namespace + \"_\" + cookie + \"=\" + val + \"; expires=\" + expiration+\"; path=/\";\n  }\n\n  function resizeWidth()\n  {\n    var windowWidth = $(window).width() + \"px\";\n    var sidenavWidth = $(sidenav).outerWidth();\n    content.css({marginLeft:parseInt(sidenavWidth)+\"px\"});\n    writeCookie('width',sidenavWidth-barWidth, null);\n  }\n\n  function restoreWidth(navWidth)\n  {\n    var windowWidth = $(window).width() + \"px\";\n    content.css({marginLeft:parseInt(navWidth)+barWidth+\"px\"});\n    sidenav.css({width:navWidth + \"px\"});\n  }\n\n  function resizeHeight()\n  {\n    var headerHeight = header.outerHeight();\n    var footerHeight = footer.outerHeight();\n    var windowHeight = $(window).height() - headerHeight - footerHeight;\n    content.css({height:windowHeight + \"px\"});\n    navtree.css({height:windowHeight + \"px\"});\n    sidenav.css({height:windowHeight + \"px\"});\n    var width=$(window).width();\n    if (width!=collapsedWidth) {\n      if (width<desktop_vp && collapsedWidth>=desktop_vp) {\n        if (!collapsed) {\n          collapseExpand();\n        }\n      } else if (width>desktop_vp && collapsedWidth<desktop_vp) {\n        if (collapsed) {\n          collapseExpand();\n        }\n      }\n      collapsedWidth=width;\n    }\n  }\n\n  function collapseExpand()\n  {\n    if (sidenav.width()>0) {\n      restoreWidth(0);\n      collapsed=true;\n    }\n    else {\n      var width = readCookie('width');\n      if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }\n      collapsed=false;\n    }\n  }\n\n  header  = $(\"#top\");\n  sidenav = $(\"#side-nav\");\n  content = $(\"#doc-content\");\n  navtree = $(\"#nav-tree\");\n  footer  = $(\"#nav-path\");\n  $(\".side-nav-resizable\").resizable({resize: function(e, ui) { resizeWidth(); } });\n  $(sidenav).resizable({ minWidth: 0 });\n  $(window).resize(function() { resizeHeight(); });\n  var device = navigator.userAgent.toLowerCase();\n  var touch_device = device.match(/(iphone|ipod|ipad|android)/);\n  if (touch_device) { /* wider split bar for touch only devices */\n    $(sidenav).css({ paddingRight:'20px' });\n    $('.ui-resizable-e').css({ width:'20px' });\n    $('#nav-sync').css({ right:'34px' });\n    barWidth=20;\n  }\n  var width = readCookie('width');\n  if (width) { restoreWidth(width); } else { resizeWidth(); }\n  resizeHeight();\n  var url = location.href;\n  var i=url.indexOf(\"#\");\n  if (i>=0) window.location.hash=url.substr(i);\n  var _preventDefault = function(evt) { evt.preventDefault(); };\n  $(\"#splitbar\").bind(\"dragstart\", _preventDefault).bind(\"selectstart\", _preventDefault);\n  $(\".ui-resizable-handle\").dblclick(collapseExpand);\n  $(window).load(resizeHeight);\n}\n\n\n"
  },
  {
    "path": "website/static/docs/en/html/search/.files_7.html.StRRNc",
    "content": ""
  },
  {
    "path": "website/static/docs/en/html/search/.variables_a.html.1MGQ27",
    "content": ""
  },
  {
    "path": "website/static/docs/en/html/search/all_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_0.js",
    "content": "var searchData=\n[\n  ['add',['add',['../classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56',1,'fasttext::Dictionary']]],\n  ['addcode',['addcode',['../classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3',1,'fasttext::ProductQuantizer']]],\n  ['addrow',['addRow',['../classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de',1,'fasttext::Matrix::addRow()'],['../classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11',1,'fasttext::Vector::addRow(const Matrix &amp;, int64_t)'],['../classfasttext_1_1Vector.html#a100ad4f70094b54b84e43909da7be040',1,'fasttext::Vector::addRow(const QMatrix &amp;, int64_t)'],['../classfasttext_1_1Vector.html#a29196e26f7258ba61d7ea4d19c4b14a7',1,'fasttext::Vector::addRow(const Matrix &amp;, int64_t, real)']]],\n  ['addtovector',['addToVector',['../classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc',1,'fasttext::QMatrix']]],\n  ['addvector',['addVector',['../classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394',1,'fasttext::Vector::addVector(const Vector &amp;source)'],['../classfasttext_1_1Vector.html#a1bdce14007d4b8878a3a3dd36b467e95',1,'fasttext::Vector::addVector(const Vector &amp;, real)']]],\n  ['addwordngrams',['addWordNgrams',['../classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c',1,'fasttext::Dictionary']]],\n  ['analogies',['analogies',['../classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74',1,'fasttext::FastText::analogies()'],['../main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4',1,'analogies():&#160;main.cc']]],\n  ['argmax',['argmax',['../classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a',1,'fasttext::Vector']]],\n  ['args',['Args',['../classfasttext_1_1Args.html',1,'fasttext::Args'],['../classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03',1,'fasttext::Args::Args()']]],\n  ['args_2ecc',['args.cc',['../args_8cc.html',1,'']]],\n  ['args_2eh',['args.h',['../args_8h.html',1,'']]],\n  ['args_5f',['args_',['../classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889',1,'fasttext::Dictionary::args_()'],['../classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee',1,'fasttext::FastText::args_()'],['../classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99',1,'fasttext::Model::args_()']]],\n  ['assign_5fcentroid',['assign_centroid',['../classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd',1,'fasttext::ProductQuantizer']]],\n  ['at',['at',['../classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221',1,'fasttext::Matrix::at(int64_t i, int64_t j) const'],['../classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0',1,'fasttext::Matrix::at(int64_t i, int64_t j)']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_1.js",
    "content": "var searchData=\n[\n  ['binary',['binary',['../structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda',1,'fasttext::Node']]],\n  ['binarylogistic',['binaryLogistic',['../classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0',1,'fasttext::Model']]],\n  ['bow',['BOW',['../classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec',1,'fasttext::Dictionary']]],\n  ['bucket',['bucket',['../classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb',1,'fasttext::Args']]],\n  ['buildtree',['buildTree',['../classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_10.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_10.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_10.js",
    "content": "var searchData=\n[\n  ['readfromfile',['readFromFile',['../classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136',1,'fasttext::Dictionary']]],\n  ['readword',['readWord',['../classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d',1,'fasttext::Dictionary']]],\n  ['real',['real',['../namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3',1,'fasttext']]],\n  ['real_2eh',['real.h',['../real_8h.html',1,'']]],\n  ['retrain',['retrain',['../classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b',1,'fasttext::Args']]],\n  ['right',['right',['../structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366',1,'fasttext::Node']]],\n  ['rng',['rng',['../classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676',1,'fasttext::Model::rng()'],['../classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26',1,'fasttext::ProductQuantizer::rng()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_11.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_11.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_11.js",
    "content": "var searchData=\n[\n  ['save',['save',['../classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392',1,'fasttext::Args::save()'],['../classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b',1,'fasttext::Dictionary::save()'],['../classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b',1,'fasttext::Matrix::save()'],['../classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274',1,'fasttext::ProductQuantizer::save()'],['../classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1',1,'fasttext::QMatrix::save()']]],\n  ['savemodel',['saveModel',['../classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099',1,'fasttext::FastText']]],\n  ['saveoutput',['saveOutput',['../classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72',1,'fasttext::Args::saveOutput()'],['../classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f',1,'fasttext::FastText::saveOutput()']]],\n  ['savevectors',['saveVectors',['../classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f',1,'fasttext::FastText']]],\n  ['seed_5f',['seed_',['../classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757',1,'fasttext::ProductQuantizer']]],\n  ['seek',['seek',['../namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d',1,'fasttext::utils']]],\n  ['selectembeddings',['selectEmbeddings',['../classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9',1,'fasttext::FastText']]],\n  ['sentencevectors',['sentenceVectors',['../classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618',1,'fasttext::FastText']]],\n  ['setquantizepointer',['setQuantizePointer',['../classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713',1,'fasttext::Model']]],\n  ['settargetcounts',['setTargetCounts',['../classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b',1,'fasttext::Model']]],\n  ['sg',['sg',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d',1,'fasttext']]],\n  ['sigmoid',['sigmoid',['../classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf',1,'fasttext::Model']]],\n  ['sigmoid_5ftable_5fsize',['SIGMOID_TABLE_SIZE',['../model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532',1,'model.h']]],\n  ['signmodel',['signModel',['../classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585',1,'fasttext::FastText']]],\n  ['size',['size',['../classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d',1,'fasttext::Vector::size()'],['../namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa',1,'fasttext::utils::size()']]],\n  ['size_5f',['size_',['../classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3',1,'fasttext::Dictionary']]],\n  ['skipgram',['skipgram',['../classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a',1,'fasttext::FastText']]],\n  ['softmax',['softmax',['../classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e',1,'fasttext::Model::softmax()'],['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c',1,'fasttext::softmax()']]],\n  ['start',['start',['../classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce',1,'fasttext::FastText']]],\n  ['subwords',['subwords',['../structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b',1,'fasttext::entry']]],\n  ['sup',['sup',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14',1,'fasttext']]],\n  ['supervised',['supervised',['../classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_12.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_12.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_12.js",
    "content": "var searchData=\n[\n  ['t',['t',['../classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0',1,'fasttext::Args']]],\n  ['t_5flog',['t_log',['../classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170',1,'fasttext::Model']]],\n  ['t_5fsigmoid',['t_sigmoid',['../classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090',1,'fasttext::Model']]],\n  ['test',['test',['../classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101',1,'fasttext::Args::test()'],['../classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b',1,'fasttext::FastText::test()'],['../main_8cc.html#a425a56e6d14ed741a6565821124c9413',1,'test():&#160;main.cc']]],\n  ['textvectors',['textVectors',['../classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49',1,'fasttext::FastText']]],\n  ['thread',['thread',['../classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567',1,'fasttext::Args']]],\n  ['threshold',['threshold',['../classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1',1,'fasttext::Dictionary']]],\n  ['tokencount',['tokenCount',['../classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b',1,'fasttext::FastText']]],\n  ['train',['train',['../classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b',1,'fasttext::FastText::train()'],['../classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d',1,'fasttext::ProductQuantizer::train()'],['../main_8cc.html#a7137053a88d8b242fcac8625ce302b16',1,'train():&#160;main.cc']]],\n  ['trainthread',['trainThread',['../classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1',1,'fasttext::FastText']]],\n  ['tree',['tree',['../classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a',1,'fasttext::Model']]],\n  ['type',['type',['../structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d',1,'fasttext::entry']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_13.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_13.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_13.js",
    "content": "var searchData=\n[\n  ['uniform',['uniform',['../classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d',1,'fasttext::Matrix']]],\n  ['update',['update',['../classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b',1,'fasttext::Model']]],\n  ['utils_2ecc',['utils.cc',['../utils_8cc.html',1,'']]],\n  ['utils_2eh',['utils.h',['../utils_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_14.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_14.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_14.js",
    "content": "var searchData=\n[\n  ['vector',['Vector',['../classfasttext_1_1Vector.html',1,'fasttext::Vector'],['../classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939',1,'fasttext::Vector::Vector()']]],\n  ['vector_2ecc',['vector.cc',['../vector_8cc.html',1,'']]],\n  ['vector_2eh',['vector.h',['../vector_8h.html',1,'']]],\n  ['verbose',['verbose',['../classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_15.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_15.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_15.js",
    "content": "var searchData=\n[\n  ['wi_5f',['wi_',['../classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2',1,'fasttext::Model']]],\n  ['wo_5f',['wo_',['../classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9',1,'fasttext::Model']]],\n  ['word',['word',['../structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085',1,'fasttext::entry::word()'],['../namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a',1,'fasttext::word()']]],\n  ['word2int_5f',['word2int_',['../classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c',1,'fasttext::Dictionary']]],\n  ['wordngrams',['wordNgrams',['../classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb',1,'fasttext::Args']]],\n  ['words_5f',['words_',['../classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7',1,'fasttext::Dictionary']]],\n  ['wordvectors',['wordVectors',['../classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35',1,'fasttext::FastText']]],\n  ['ws',['ws',['../classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_16.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_16.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_16.js",
    "content": "var searchData=\n[\n  ['zero',['zero',['../classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba',1,'fasttext::Matrix::zero()'],['../classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793',1,'fasttext::Vector::zero()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_17.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_17.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_17.js",
    "content": "var searchData=\n[\n  ['_7ematrix',['~Matrix',['../classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417',1,'fasttext::Matrix']]],\n  ['_7emodel',['~Model',['../classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72',1,'fasttext::Model']]],\n  ['_7eqmatrix',['~QMatrix',['../classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d',1,'fasttext::QMatrix']]],\n  ['_7evector',['~Vector',['../classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506',1,'fasttext::Vector']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_2.js",
    "content": "var searchData=\n[\n  ['cbow',['cbow',['../classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f',1,'fasttext::FastText::cbow()'],['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af',1,'fasttext::cbow()']]],\n  ['centroids_5f',['centroids_',['../classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a',1,'fasttext::ProductQuantizer']]],\n  ['checkmodel',['checkModel',['../classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1',1,'fasttext::FastText']]],\n  ['codes',['codes',['../classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b',1,'fasttext::Model']]],\n  ['codes_5f',['codes_',['../classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93',1,'fasttext::QMatrix']]],\n  ['codesize_5f',['codesize_',['../classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759',1,'fasttext::QMatrix']]],\n  ['comparepairs',['comparePairs',['../classfasttext_1_1Model.html#ac475c67452b62dd374b6253f99167816',1,'fasttext::Model']]],\n  ['compute_5fcode',['compute_code',['../classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37',1,'fasttext::ProductQuantizer']]],\n  ['compute_5fcodes',['compute_codes',['../classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6',1,'fasttext::ProductQuantizer']]],\n  ['computehidden',['computeHidden',['../classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110',1,'fasttext::Model']]],\n  ['computeoutputsoftmax',['computeOutputSoftmax',['../classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6',1,'fasttext::Model::computeOutputSoftmax(Vector &amp;, Vector &amp;) const'],['../classfasttext_1_1Model.html#af48ca152068185f0bd31746be56c03bd',1,'fasttext::Model::computeOutputSoftmax()']]],\n  ['computesubwords',['computeSubwords',['../classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e',1,'fasttext::Dictionary::computeSubwords(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;) const'],['../classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf',1,'fasttext::Dictionary::computeSubwords(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const']]],\n  ['count',['count',['../structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a',1,'fasttext::entry::count()'],['../structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118',1,'fasttext::Node::count()']]],\n  ['cutoff',['cutoff',['../classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_3.js",
    "content": "var searchData=\n[\n  ['data_5f',['data_',['../classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae',1,'fasttext::Matrix::data_()'],['../classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e',1,'fasttext::Vector::data_()']]],\n  ['dfs',['dfs',['../classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77',1,'fasttext::Model']]],\n  ['dict_5f',['dict_',['../classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422',1,'fasttext::FastText']]],\n  ['dictionary',['Dictionary',['../classfasttext_1_1Dictionary.html',1,'fasttext::Dictionary'],['../classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e',1,'fasttext::Dictionary::Dictionary()']]],\n  ['dictionary_2ecc',['dictionary.cc',['../dictionary_8cc.html',1,'']]],\n  ['dictionary_2eh',['dictionary.h',['../dictionary_8h.html',1,'']]],\n  ['dim',['dim',['../classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3',1,'fasttext::Args']]],\n  ['dim_5f',['dim_',['../classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300',1,'fasttext::ProductQuantizer']]],\n  ['discard',['discard',['../classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5',1,'fasttext::Dictionary']]],\n  ['distl2',['distL2',['../namespacefasttext.html#a4336b1849ad0c1f134ed0ac9842f053c',1,'fasttext']]],\n  ['dividerow',['divideRow',['../classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0',1,'fasttext::Matrix']]],\n  ['dotrow',['dotRow',['../classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136',1,'fasttext::Matrix::dotRow()'],['../classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56',1,'fasttext::QMatrix::dotRow()']]],\n  ['dsub',['dsub',['../classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5',1,'fasttext::Args']]],\n  ['dsub_5f',['dsub_',['../classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_4.js",
    "content": "var searchData=\n[\n  ['entry',['entry',['../structfasttext_1_1entry.html',1,'fasttext']]],\n  ['entry_5ftype',['entry_type',['../namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7',1,'fasttext']]],\n  ['eos',['EOS',['../classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086',1,'fasttext::Dictionary']]],\n  ['eow',['EOW',['../classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b',1,'fasttext::Dictionary']]],\n  ['epoch',['epoch',['../classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815',1,'fasttext::Args']]],\n  ['eps_5f',['eps_',['../classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4',1,'fasttext::ProductQuantizer']]],\n  ['estep',['Estep',['../classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_5.js",
    "content": "var searchData=\n[\n  ['fasttext',['FastText',['../classfasttext_1_1FastText.html',1,'fasttext::FastText'],['../namespacefasttext.html',1,'fasttext'],['../classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5',1,'fasttext::FastText::FastText()']]],\n  ['fasttext_2ecc',['fasttext.cc',['../fasttext_8cc.html',1,'']]],\n  ['fasttext_2eh',['fasttext.h',['../fasttext_8h.html',1,'']]],\n  ['fasttext_5ffileformat_5fmagic_5fint32',['FASTTEXT_FILEFORMAT_MAGIC_INT32',['../fasttext_8h.html#af5de14588083ef853a2863c8d625ee24',1,'fasttext.h']]],\n  ['fasttext_5fversion',['FASTTEXT_VERSION',['../fasttext_8h.html#a74036bd705019bb33643e90202bf343e',1,'fasttext.h']]],\n  ['find',['find',['../classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f',1,'fasttext::Dictionary']]],\n  ['findkbest',['findKBest',['../classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5',1,'fasttext::Model']]],\n  ['findnn',['findNN',['../classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9',1,'fasttext::FastText']]],\n  ['utils',['utils',['../namespacefasttext_1_1utils.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_6.js",
    "content": "var searchData=\n[\n  ['get_5fcentroids',['get_centroids',['../classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91',1,'fasttext::ProductQuantizer::get_centroids(int32_t, uint8_t)'],['../classfasttext_1_1ProductQuantizer.html#a4f7b2b81820abc0c577a89a768ef3347',1,'fasttext::ProductQuantizer::get_centroids(int32_t, uint8_t) const']]],\n  ['getcounts',['getCounts',['../classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f',1,'fasttext::Dictionary']]],\n  ['getdimension',['getDimension',['../classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010',1,'fasttext::FastText']]],\n  ['getid',['getId',['../classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d',1,'fasttext::Dictionary']]],\n  ['getlabel',['getLabel',['../classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864',1,'fasttext::Dictionary']]],\n  ['getline',['getLine',['../classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543',1,'fasttext::Dictionary::getLine(std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const'],['../classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659',1,'fasttext::Dictionary::getLine(std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const']]],\n  ['getloss',['getLoss',['../classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1',1,'fasttext::Model']]],\n  ['getm',['getM',['../classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd',1,'fasttext::QMatrix']]],\n  ['getn',['getN',['../classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb',1,'fasttext::QMatrix']]],\n  ['getnegative',['getNegative',['../classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc',1,'fasttext::Model']]],\n  ['getsubwords',['getSubwords',['../classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24',1,'fasttext::Dictionary::getSubwords(int32_t) const'],['../classfasttext_1_1Dictionary.html#ace021fb98186f100dd8cfba63c7302af',1,'fasttext::Dictionary::getSubwords(const std::string &amp;) const'],['../classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130',1,'fasttext::Dictionary::getSubwords(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const']]],\n  ['gettype',['getType',['../classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f',1,'fasttext::Dictionary::getType(int32_t) const'],['../classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448',1,'fasttext::Dictionary::getType(const std::string &amp;) const']]],\n  ['getvector',['getVector',['../classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533',1,'fasttext::FastText']]],\n  ['getword',['getWord',['../classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8',1,'fasttext::Dictionary']]],\n  ['grad_5f',['grad_',['../classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_7.js",
    "content": "var searchData=\n[\n  ['hash',['hash',['../classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0',1,'fasttext::Dictionary']]],\n  ['hidden_5f',['hidden_',['../classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79',1,'fasttext::Model']]],\n  ['hierarchicalsoftmax',['hierarchicalSoftmax',['../classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51',1,'fasttext::Model']]],\n  ['hs',['hs',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764',1,'fasttext']]],\n  ['hsz_5f',['hsz_',['../classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_8.js",
    "content": "var searchData=\n[\n  ['id_5ftype',['id_type',['../namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497',1,'fasttext']]],\n  ['initlog',['initLog',['../classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07',1,'fasttext::Model']]],\n  ['initngrams',['initNgrams',['../classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1',1,'fasttext::Dictionary']]],\n  ['initsigmoid',['initSigmoid',['../classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780',1,'fasttext::Model']]],\n  ['inittablediscard',['initTableDiscard',['../classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e',1,'fasttext::Dictionary']]],\n  ['inittablenegatives',['initTableNegatives',['../classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c',1,'fasttext::Model']]],\n  ['input',['input',['../classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd',1,'fasttext::Args']]],\n  ['input_5f',['input_',['../classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_9.js",
    "content": "var searchData=\n[\n  ['kmeans',['kmeans',['../classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352',1,'fasttext::ProductQuantizer']]],\n  ['ksub_5f',['ksub_',['../classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_a.js",
    "content": "var searchData=\n[\n  ['l2normrow',['l2NormRow',['../classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922',1,'fasttext::Matrix::l2NormRow(int64_t i) const'],['../classfasttext_1_1Matrix.html#afb690a9d64bc7e941cbd48f20cab872e',1,'fasttext::Matrix::l2NormRow(Vector &amp;norms) const']]],\n  ['label',['label',['../classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642',1,'fasttext::Args::label()'],['../namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34',1,'fasttext::label()']]],\n  ['lastdsub_5f',['lastdsub_',['../classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826',1,'fasttext::ProductQuantizer']]],\n  ['left',['left',['../structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1',1,'fasttext::Node']]],\n  ['load',['load',['../classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4',1,'fasttext::Args::load()'],['../classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3',1,'fasttext::Dictionary::load()'],['../classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d',1,'fasttext::Matrix::load()'],['../classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056',1,'fasttext::ProductQuantizer::load()'],['../classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998',1,'fasttext::QMatrix::load()']]],\n  ['loadmodel',['loadModel',['../classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd',1,'fasttext::FastText::loadModel(std::istream &amp;)'],['../classfasttext_1_1FastText.html#ac844ddc1573e80a8b5a255668fc97247',1,'fasttext::FastText::loadModel(const std::string &amp;)']]],\n  ['loadvectors',['loadVectors',['../classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a',1,'fasttext::FastText']]],\n  ['log',['log',['../classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816',1,'fasttext::Model']]],\n  ['log_5ftable_5fsize',['LOG_TABLE_SIZE',['../model_8h.html#a39f445c336c3e871eccbaa0423b6daef',1,'model.h']]],\n  ['loss',['loss',['../classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290',1,'fasttext::Args']]],\n  ['loss_5f',['loss_',['../classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e',1,'fasttext::Model']]],\n  ['loss_5fname',['loss_name',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952',1,'fasttext']]],\n  ['lr',['lr',['../classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445',1,'fasttext::Args']]],\n  ['lrupdaterate',['lrUpdateRate',['../classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_b.js",
    "content": "var searchData=\n[\n  ['m_5f',['m_',['../classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084',1,'fasttext::Matrix::m_()'],['../classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2',1,'fasttext::QMatrix::m_()'],['../classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491',1,'fasttext::Vector::m_()']]],\n  ['main',['main',['../main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main.cc']]],\n  ['main_2ecc',['main.cc',['../main_8cc.html',1,'']]],\n  ['matrix',['Matrix',['../classfasttext_1_1Matrix.html',1,'fasttext::Matrix'],['../classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890',1,'fasttext::Matrix::Matrix()'],['../classfasttext_1_1Matrix.html#adb3094376193874860df45e9346eebd6',1,'fasttext::Matrix::Matrix(int64_t, int64_t)'],['../classfasttext_1_1Matrix.html#ad70f2182e0dd1b520ee42200e2d0ed04',1,'fasttext::Matrix::Matrix(const Matrix &amp;)']]],\n  ['matrix_2ecc',['matrix.cc',['../matrix_8cc.html',1,'']]],\n  ['matrix_2eh',['matrix.h',['../matrix_8h.html',1,'']]],\n  ['max_5fline_5fsize',['MAX_LINE_SIZE',['../classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933',1,'fasttext::Dictionary']]],\n  ['max_5fpoints_5f',['max_points_',['../classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633',1,'fasttext::ProductQuantizer']]],\n  ['max_5fpoints_5fper_5fcluster_5f',['max_points_per_cluster_',['../classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6',1,'fasttext::ProductQuantizer']]],\n  ['max_5fsigmoid',['MAX_SIGMOID',['../model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34',1,'model.h']]],\n  ['max_5fvocab_5fsize',['MAX_VOCAB_SIZE',['../classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7',1,'fasttext::Dictionary']]],\n  ['maxn',['maxn',['../classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9',1,'fasttext::Args']]],\n  ['mincount',['minCount',['../classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5',1,'fasttext::Args']]],\n  ['mincountlabel',['minCountLabel',['../classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b',1,'fasttext::Args']]],\n  ['minn',['minn',['../classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be',1,'fasttext::Args']]],\n  ['model',['Model',['../classfasttext_1_1Model.html',1,'fasttext::Model'],['../classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338',1,'fasttext::Model::Model()'],['../classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35',1,'fasttext::Args::model()']]],\n  ['model_2ecc',['model.cc',['../model_8cc.html',1,'']]],\n  ['model_2eh',['model.h',['../model_8h.html',1,'']]],\n  ['model_5f',['model_',['../classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8',1,'fasttext::FastText']]],\n  ['model_5fname',['model_name',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f',1,'fasttext']]],\n  ['mstep',['MStep',['../classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25',1,'fasttext::ProductQuantizer']]],\n  ['mul',['mul',['../classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395',1,'fasttext::Vector::mul(real)'],['../classfasttext_1_1Vector.html#aec343a9bf909342d633f09c4fa3da97d',1,'fasttext::Vector::mul(const QMatrix &amp;, const Vector &amp;)'],['../classfasttext_1_1Vector.html#a4540e8d1c7bf5110302f5ab41d601e0c',1,'fasttext::Vector::mul(const Matrix &amp;, const Vector &amp;)']]],\n  ['mulcode',['mulcode',['../classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6',1,'fasttext::ProductQuantizer']]],\n  ['multiplyrow',['multiplyRow',['../classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c',1,'fasttext::Matrix']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_c.js",
    "content": "var searchData=\n[\n  ['n_5f',['n_',['../classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3',1,'fasttext::Matrix::n_()'],['../classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea',1,'fasttext::QMatrix::n_()']]],\n  ['nbits_5f',['nbits_',['../classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c',1,'fasttext::ProductQuantizer']]],\n  ['neg',['neg',['../classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30',1,'fasttext::Args']]],\n  ['negative_5ftable_5fsize',['NEGATIVE_TABLE_SIZE',['../classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c',1,'fasttext::Model']]],\n  ['negatives',['negatives',['../classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1',1,'fasttext::Model']]],\n  ['negativesampling',['negativeSampling',['../classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660',1,'fasttext::Model']]],\n  ['negpos',['negpos',['../classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f',1,'fasttext::Model']]],\n  ['nexamples_5f',['nexamples_',['../classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621',1,'fasttext::Model']]],\n  ['ngramvectors',['ngramVectors',['../classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32',1,'fasttext::FastText']]],\n  ['niter_5f',['niter_',['../classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f',1,'fasttext::ProductQuantizer']]],\n  ['nlabels',['nlabels',['../classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895',1,'fasttext::Dictionary']]],\n  ['nlabels_5f',['nlabels_',['../classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c',1,'fasttext::Dictionary']]],\n  ['nn',['nn',['../classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885',1,'fasttext::FastText::nn()'],['../main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4',1,'nn():&#160;main.cc']]],\n  ['node',['Node',['../structfasttext_1_1Node.html',1,'fasttext']]],\n  ['norm',['norm',['../classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6',1,'fasttext::Vector']]],\n  ['norm_5fcodes_5f',['norm_codes_',['../classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce',1,'fasttext::QMatrix']]],\n  ['npq_5f',['npq_',['../classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a',1,'fasttext::QMatrix']]],\n  ['ns',['ns',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1',1,'fasttext']]],\n  ['nsubq_5f',['nsubq_',['../classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309',1,'fasttext::ProductQuantizer']]],\n  ['ntokens',['ntokens',['../classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972',1,'fasttext::Dictionary']]],\n  ['ntokens_5f',['ntokens_',['../classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108',1,'fasttext::Dictionary']]],\n  ['nwords',['nwords',['../classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d',1,'fasttext::Dictionary']]],\n  ['nwords_5f',['nwords_',['../classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_d.js",
    "content": "var searchData=\n[\n  ['operator_3c_3c',['operator&lt;&lt;',['../namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6',1,'fasttext']]],\n  ['operator_3d',['operator=',['../classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3',1,'fasttext::Matrix']]],\n  ['operator_5b_5d',['operator[]',['../classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232',1,'fasttext::Vector::operator[](int64_t)'],['../classfasttext_1_1Vector.html#a06c176b63c43754de86ff01846ebd47b',1,'fasttext::Vector::operator[](int64_t) const']]],\n  ['osz_5f',['osz_',['../classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751',1,'fasttext::Model']]],\n  ['output',['output',['../classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d',1,'fasttext::Args']]],\n  ['output_5f',['output_',['../classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38',1,'fasttext::FastText::output_()'],['../classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c',1,'fasttext::Model::output_()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_e.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_e.js",
    "content": "var searchData=\n[\n  ['parent',['parent',['../structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09',1,'fasttext::Node']]],\n  ['parseargs',['parseArgs',['../classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765',1,'fasttext::Args']]],\n  ['paths',['paths',['../classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f',1,'fasttext::Model']]],\n  ['pdiscard_5f',['pdiscard_',['../classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57',1,'fasttext::Dictionary']]],\n  ['pq_5f',['pq_',['../classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7',1,'fasttext::QMatrix']]],\n  ['precomputewordvectors',['precomputeWordVectors',['../classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4',1,'fasttext::FastText']]],\n  ['predict',['predict',['../classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95',1,'fasttext::FastText::predict(std::istream &amp;, int32_t, bool)'],['../classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699',1,'fasttext::FastText::predict(std::istream &amp;, int32_t, std::vector&lt; std::pair&lt; real, std::string &gt;&gt; &amp;) const'],['../classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86',1,'fasttext::Model::predict(const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;, Vector &amp;, Vector &amp;) const'],['../classfasttext_1_1Model.html#a6e7ad347856d6d9b6994a4263e10585a',1,'fasttext::Model::predict(const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;)'],['../main_8cc.html#a4479606e315746032f4ecde4b62ebc26',1,'predict():&#160;main.cc']]],\n  ['pretrainedvectors',['pretrainedVectors',['../classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0',1,'fasttext::Args']]],\n  ['printanalogiesusage',['printAnalogiesUsage',['../main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15',1,'main.cc']]],\n  ['printbasichelp',['printBasicHelp',['../classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e',1,'fasttext::Args']]],\n  ['printdictionaryhelp',['printDictionaryHelp',['../classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe',1,'fasttext::Args']]],\n  ['printhelp',['printHelp',['../classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6',1,'fasttext::Args']]],\n  ['printinfo',['printInfo',['../classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f',1,'fasttext::FastText']]],\n  ['printngrams',['printNgrams',['../main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705',1,'main.cc']]],\n  ['printnnusage',['printNNUsage',['../main_8cc.html#a8126ecd2d93d3b73b1c516e323575052',1,'main.cc']]],\n  ['printpredictusage',['printPredictUsage',['../main_8cc.html#aa858ef5149aa995107818c079d930037',1,'main.cc']]],\n  ['printprintngramsusage',['printPrintNgramsUsage',['../main_8cc.html#a086a02edc37d73f760db2882df2ea57d',1,'main.cc']]],\n  ['printprintsentencevectorsusage',['printPrintSentenceVectorsUsage',['../main_8cc.html#a4328b0d06690e73334e2e7e1135efc37',1,'main.cc']]],\n  ['printprintwordvectorsusage',['printPrintWordVectorsUsage',['../main_8cc.html#ab9897a3337e4f0833d547e044fd033eb',1,'main.cc']]],\n  ['printquantizationhelp',['printQuantizationHelp',['../classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd',1,'fasttext::Args']]],\n  ['printquantizeusage',['printQuantizeUsage',['../main_8cc.html#aa743c1f04268af8569712a85c561a67f',1,'main.cc']]],\n  ['printsentencevectors',['printSentenceVectors',['../classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf',1,'fasttext::FastText::printSentenceVectors()'],['../main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d',1,'printSentenceVectors():&#160;main.cc']]],\n  ['printtestusage',['printTestUsage',['../main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8',1,'main.cc']]],\n  ['printtraininghelp',['printTrainingHelp',['../classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7',1,'fasttext::Args']]],\n  ['printusage',['printUsage',['../main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6',1,'main.cc']]],\n  ['printwordvectors',['printWordVectors',['../classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501',1,'fasttext::FastText::printWordVectors()'],['../main_8cc.html#a133e93a6033465d23657e023a022c16e',1,'printWordVectors():&#160;main.cc']]],\n  ['productquantizer',['ProductQuantizer',['../classfasttext_1_1ProductQuantizer.html',1,'fasttext::ProductQuantizer'],['../classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850',1,'fasttext::ProductQuantizer::ProductQuantizer()'],['../classfasttext_1_1ProductQuantizer.html#a8563da401dbfaa98983ef0c92f92a18f',1,'fasttext::ProductQuantizer::ProductQuantizer(int32_t, int32_t)']]],\n  ['productquantizer_2ecc',['productquantizer.cc',['../productquantizer_8cc.html',1,'']]],\n  ['productquantizer_2eh',['productquantizer.h',['../productquantizer_8h.html',1,'']]],\n  ['prune',['prune',['../classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01',1,'fasttext::Dictionary']]],\n  ['pruneidx_5f',['pruneidx_',['../classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921',1,'fasttext::Dictionary']]],\n  ['pruneidx_5fsize_5f',['pruneidx_size_',['../classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_f.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/all_f.js",
    "content": "var searchData=\n[\n  ['qinput_5f',['qinput_',['../classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4',1,'fasttext::FastText']]],\n  ['qmatrix',['QMatrix',['../classfasttext_1_1QMatrix.html',1,'fasttext::QMatrix'],['../classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b',1,'fasttext::QMatrix::QMatrix()'],['../classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a',1,'fasttext::QMatrix::QMatrix(const Matrix &amp;, int32_t, bool)']]],\n  ['qmatrix_2ecc',['qmatrix.cc',['../qmatrix_8cc.html',1,'']]],\n  ['qmatrix_2eh',['qmatrix.h',['../qmatrix_8h.html',1,'']]],\n  ['qnorm',['qnorm',['../classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f',1,'fasttext::Args']]],\n  ['qnorm_5f',['qnorm_',['../classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143',1,'fasttext::QMatrix']]],\n  ['qout',['qout',['../classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc',1,'fasttext::Args']]],\n  ['qoutput_5f',['qoutput_',['../classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa',1,'fasttext::FastText']]],\n  ['quant_5f',['quant_',['../classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8',1,'fasttext::FastText::quant_()'],['../classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43',1,'fasttext::Model::quant_()']]],\n  ['quantize',['quantize',['../classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad',1,'fasttext::FastText::quantize()'],['../classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc',1,'fasttext::QMatrix::quantize()'],['../main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd',1,'quantize():&#160;main.cc']]],\n  ['quantizenorm',['quantizeNorm',['../classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017',1,'fasttext::QMatrix']]],\n  ['qwi_5f',['qwi_',['../classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693',1,'fasttext::Model']]],\n  ['qwo_5f',['qwo_',['../classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_0.js",
    "content": "var searchData=\n[\n  ['args',['Args',['../classfasttext_1_1Args.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_1.js",
    "content": "var searchData=\n[\n  ['dictionary',['Dictionary',['../classfasttext_1_1Dictionary.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_2.js",
    "content": "var searchData=\n[\n  ['entry',['entry',['../structfasttext_1_1entry.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_3.js",
    "content": "var searchData=\n[\n  ['fasttext',['FastText',['../classfasttext_1_1FastText.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_4.js",
    "content": "var searchData=\n[\n  ['matrix',['Matrix',['../classfasttext_1_1Matrix.html',1,'fasttext']]],\n  ['model',['Model',['../classfasttext_1_1Model.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_5.js",
    "content": "var searchData=\n[\n  ['node',['Node',['../structfasttext_1_1Node.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_6.js",
    "content": "var searchData=\n[\n  ['productquantizer',['ProductQuantizer',['../classfasttext_1_1ProductQuantizer.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_7.js",
    "content": "var searchData=\n[\n  ['qmatrix',['QMatrix',['../classfasttext_1_1QMatrix.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/classes_8.js",
    "content": "var searchData=\n[\n  ['vector',['Vector',['../classfasttext_1_1Vector.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"defines_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_0.js",
    "content": "var searchData=\n[\n  ['fasttext_5ffileformat_5fmagic_5fint32',['FASTTEXT_FILEFORMAT_MAGIC_INT32',['../fasttext_8h.html#af5de14588083ef853a2863c8d625ee24',1,'fasttext.h']]],\n  ['fasttext_5fversion',['FASTTEXT_VERSION',['../fasttext_8h.html#a74036bd705019bb33643e90202bf343e',1,'fasttext.h']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"defines_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_1.js",
    "content": "var searchData=\n[\n  ['log_5ftable_5fsize',['LOG_TABLE_SIZE',['../model_8h.html#a39f445c336c3e871eccbaa0423b6daef',1,'model.h']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"defines_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_2.js",
    "content": "var searchData=\n[\n  ['max_5fsigmoid',['MAX_SIGMOID',['../model_8h.html#a526b042c8c04cdd0f0f5c9e097d5ca34',1,'model.h']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"defines_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/defines_3.js",
    "content": "var searchData=\n[\n  ['sigmoid_5ftable_5fsize',['SIGMOID_TABLE_SIZE',['../model_8h.html#a2e8aaf1ce5284c2017df4d6a3b631532',1,'model.h']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enums_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enums_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enums_0.js",
    "content": "var searchData=\n[\n  ['entry_5ftype',['entry_type',['../namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enums_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enums_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enums_1.js",
    "content": "var searchData=\n[\n  ['loss_5fname',['loss_name',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enums_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enums_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enums_2.js",
    "content": "var searchData=\n[\n  ['model_5fname',['model_name',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6f',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_0.js",
    "content": "var searchData=\n[\n  ['cbow',['cbow',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fae4709295b2cc44d67facf32b1099f1af',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_1.js",
    "content": "var searchData=\n[\n  ['hs',['hs',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952a789406d01073ca1782d86293dcfc0764',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_2.js",
    "content": "var searchData=\n[\n  ['label',['label',['../namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ad304ba20e96d87411588eeabac850e34',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_3.js",
    "content": "var searchData=\n[\n  ['ns',['ns',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952af01a37d157918910f2035b2af81ea4e1',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_4.js",
    "content": "var searchData=\n[\n  ['sg',['sg',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa5dae429688af1c521ad87ac394192c6d',1,'fasttext']]],\n  ['softmax',['softmax',['../namespacefasttext.html#a1ba04862fd670674501ccacc936e1952ace2f1fbd249d24aabc07ac4488ab5b8c',1,'fasttext']]],\n  ['sup',['sup',['../namespacefasttext.html#a349df214746a2ea0e5d7c26326b03d6fa2eeecd72c567401e6988624b179d0b14',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/enumvalues_5.js",
    "content": "var searchData=\n[\n  ['word',['word',['../namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7ac47d187067c6cf953245f128b5fde62a',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_0.js",
    "content": "var searchData=\n[\n  ['args_2ecc',['args.cc',['../args_8cc.html',1,'']]],\n  ['args_2eh',['args.h',['../args_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_1.js",
    "content": "var searchData=\n[\n  ['dictionary_2ecc',['dictionary.cc',['../dictionary_8cc.html',1,'']]],\n  ['dictionary_2eh',['dictionary.h',['../dictionary_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_2.js",
    "content": "var searchData=\n[\n  ['fasttext_2ecc',['fasttext.cc',['../fasttext_8cc.html',1,'']]],\n  ['fasttext_2eh',['fasttext.h',['../fasttext_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_3.js",
    "content": "var searchData=\n[\n  ['main_2ecc',['main.cc',['../main_8cc.html',1,'']]],\n  ['matrix_2ecc',['matrix.cc',['../matrix_8cc.html',1,'']]],\n  ['matrix_2eh',['matrix.h',['../matrix_8h.html',1,'']]],\n  ['model_2ecc',['model.cc',['../model_8cc.html',1,'']]],\n  ['model_2eh',['model.h',['../model_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_4.js",
    "content": "var searchData=\n[\n  ['productquantizer_2ecc',['productquantizer.cc',['../productquantizer_8cc.html',1,'']]],\n  ['productquantizer_2eh',['productquantizer.h',['../productquantizer_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_5.js",
    "content": "var searchData=\n[\n  ['qmatrix_2ecc',['qmatrix.cc',['../qmatrix_8cc.html',1,'']]],\n  ['qmatrix_2eh',['qmatrix.h',['../qmatrix_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_6.js",
    "content": "var searchData=\n[\n  ['real_2eh',['real.h',['../real_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_7.js",
    "content": "var searchData=\n[\n  ['utils_2ecc',['utils.cc',['../utils_8cc.html',1,'']]],\n  ['utils_2eh',['utils.h',['../utils_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/files_8.js",
    "content": "var searchData=\n[\n  ['vector_2ecc',['vector.cc',['../vector_8cc.html',1,'']]],\n  ['vector_2eh',['vector.h',['../vector_8h.html',1,'']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_0.js",
    "content": "var searchData=\n[\n  ['add',['add',['../classfasttext_1_1Dictionary.html#a596c4c5f5ebf71c228abf1831e216a56',1,'fasttext::Dictionary']]],\n  ['addcode',['addcode',['../classfasttext_1_1ProductQuantizer.html#ac0039e0eccfc7dc15ddb3be3bac0fec3',1,'fasttext::ProductQuantizer']]],\n  ['addrow',['addRow',['../classfasttext_1_1Matrix.html#aceef1bc55d67b38c8b2b2c9ba7e769de',1,'fasttext::Matrix::addRow()'],['../classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11',1,'fasttext::Vector::addRow(const Matrix &amp;, int64_t)'],['../classfasttext_1_1Vector.html#a100ad4f70094b54b84e43909da7be040',1,'fasttext::Vector::addRow(const QMatrix &amp;, int64_t)'],['../classfasttext_1_1Vector.html#a29196e26f7258ba61d7ea4d19c4b14a7',1,'fasttext::Vector::addRow(const Matrix &amp;, int64_t, real)']]],\n  ['addtovector',['addToVector',['../classfasttext_1_1QMatrix.html#ad8f153a45f69530aeef171bebbce93fc',1,'fasttext::QMatrix']]],\n  ['addvector',['addVector',['../classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394',1,'fasttext::Vector::addVector(const Vector &amp;source)'],['../classfasttext_1_1Vector.html#a1bdce14007d4b8878a3a3dd36b467e95',1,'fasttext::Vector::addVector(const Vector &amp;, real)']]],\n  ['addwordngrams',['addWordNgrams',['../classfasttext_1_1Dictionary.html#a6f0cbb4f3b99e9cefde82c7cfe9f2e1c',1,'fasttext::Dictionary']]],\n  ['analogies',['analogies',['../classfasttext_1_1FastText.html#a34e7fade7f758870ffcd28015555ba74',1,'fasttext::FastText::analogies()'],['../main_8cc.html#a7ffcd938d3c75d2f9249d6c122b780a4',1,'analogies():&#160;main.cc']]],\n  ['argmax',['argmax',['../classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a',1,'fasttext::Vector']]],\n  ['args',['Args',['../classfasttext_1_1Args.html#ab196dccd500190c3831af2cbfdd3eb03',1,'fasttext::Args']]],\n  ['assign_5fcentroid',['assign_centroid',['../classfasttext_1_1ProductQuantizer.html#aa957e4e92eb6111152f6e34b0b4a27cd',1,'fasttext::ProductQuantizer']]],\n  ['at',['at',['../classfasttext_1_1Matrix.html#afc9c477f90e9d9a193e1710e46a68221',1,'fasttext::Matrix::at(int64_t i, int64_t j) const'],['../classfasttext_1_1Matrix.html#abb6222f956da7e32391092158eaaf5a0',1,'fasttext::Matrix::at(int64_t i, int64_t j)']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_1.js",
    "content": "var searchData=\n[\n  ['binarylogistic',['binaryLogistic',['../classfasttext_1_1Model.html#a953cbd5ace20826dcc1453bb94e99de0',1,'fasttext::Model']]],\n  ['buildtree',['buildTree',['../classfasttext_1_1Model.html#aadfc3b7eb7bbe05f024fbfb67ea25ffd',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_10.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_10.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_10.js",
    "content": "var searchData=\n[\n  ['readfromfile',['readFromFile',['../classfasttext_1_1Dictionary.html#ae6471357f52b274416fb0544fb3ed136',1,'fasttext::Dictionary']]],\n  ['readword',['readWord',['../classfasttext_1_1Dictionary.html#a1b79df8326dd9d7288a148db0948447d',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_11.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_11.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_11.js",
    "content": "var searchData=\n[\n  ['save',['save',['../classfasttext_1_1Args.html#ae843bd7c49e9fd34220af65f19df7392',1,'fasttext::Args::save()'],['../classfasttext_1_1Dictionary.html#a5bff16d3407dc293912fb9fa56f6162b',1,'fasttext::Dictionary::save()'],['../classfasttext_1_1Matrix.html#aaf869b3115a6b404c13f5c31678c147b',1,'fasttext::Matrix::save()'],['../classfasttext_1_1ProductQuantizer.html#a6e4d58883fb38225c6f4731770b89274',1,'fasttext::ProductQuantizer::save()'],['../classfasttext_1_1QMatrix.html#a00267b43ee5eefc92948c654fb9fc9f1',1,'fasttext::QMatrix::save()']]],\n  ['savemodel',['saveModel',['../classfasttext_1_1FastText.html#a3bc5bf68cf6e1f487fa57ddc750f2099',1,'fasttext::FastText']]],\n  ['saveoutput',['saveOutput',['../classfasttext_1_1FastText.html#adbe7666386c0d7cb9017fa641e391b9f',1,'fasttext::FastText']]],\n  ['savevectors',['saveVectors',['../classfasttext_1_1FastText.html#a64fc781f7e3e60a3794562a03477398f',1,'fasttext::FastText']]],\n  ['seek',['seek',['../namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d',1,'fasttext::utils']]],\n  ['selectembeddings',['selectEmbeddings',['../classfasttext_1_1FastText.html#a06fbfe68049942cab56eb85ebb2ca4d9',1,'fasttext::FastText']]],\n  ['sentencevectors',['sentenceVectors',['../classfasttext_1_1FastText.html#a39efb50f61237890cbf2e30b7a516618',1,'fasttext::FastText']]],\n  ['setquantizepointer',['setQuantizePointer',['../classfasttext_1_1Model.html#adb25aef3feb355ebf781e104e3065713',1,'fasttext::Model']]],\n  ['settargetcounts',['setTargetCounts',['../classfasttext_1_1Model.html#a8026fcbe9d5b566ab5ca97e104512f0b',1,'fasttext::Model']]],\n  ['sigmoid',['sigmoid',['../classfasttext_1_1Model.html#a408d1426eb8aaf78a873bb4edd7d7dbf',1,'fasttext::Model']]],\n  ['signmodel',['signModel',['../classfasttext_1_1FastText.html#afe7b85dd466c4ccef45e4c590edae585',1,'fasttext::FastText']]],\n  ['size',['size',['../classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d',1,'fasttext::Vector::size()'],['../namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa',1,'fasttext::utils::size()']]],\n  ['skipgram',['skipgram',['../classfasttext_1_1FastText.html#aa1855802a2a1f2f1398fdad79f73b66a',1,'fasttext::FastText']]],\n  ['softmax',['softmax',['../classfasttext_1_1Model.html#aded1fd701066b50be1e74f64d5b81a0e',1,'fasttext::Model']]],\n  ['supervised',['supervised',['../classfasttext_1_1FastText.html#a3c56524cdccf6f9d23b75460bbea5d5f',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_12.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_12.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_12.js",
    "content": "var searchData=\n[\n  ['test',['test',['../classfasttext_1_1FastText.html#af13c347cb7dde5fea3b0122f029a0b5b',1,'fasttext::FastText::test()'],['../main_8cc.html#a425a56e6d14ed741a6565821124c9413',1,'test():&#160;main.cc']]],\n  ['textvectors',['textVectors',['../classfasttext_1_1FastText.html#aadb72a552ff01b6d6efe9b161ad8dd49',1,'fasttext::FastText']]],\n  ['threshold',['threshold',['../classfasttext_1_1Dictionary.html#a17c340c21fee9497945a0fab9521f3a1',1,'fasttext::Dictionary']]],\n  ['train',['train',['../classfasttext_1_1FastText.html#a7430c17374a28e7f1fd50a9c86ac659b',1,'fasttext::FastText::train()'],['../classfasttext_1_1ProductQuantizer.html#a40e3090d1f7e525c3e9787d9856d3b7d',1,'fasttext::ProductQuantizer::train()'],['../main_8cc.html#a7137053a88d8b242fcac8625ce302b16',1,'train():&#160;main.cc']]],\n  ['trainthread',['trainThread',['../classfasttext_1_1FastText.html#a1b6d83563616330a64d6db4921e835f1',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_13.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_13.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_13.js",
    "content": "var searchData=\n[\n  ['uniform',['uniform',['../classfasttext_1_1Matrix.html#aef334e5d5a164b01c2b74960ffa3782d',1,'fasttext::Matrix']]],\n  ['update',['update',['../classfasttext_1_1Model.html#ad92f524e3bf61598602c588408ca934b',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_14.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_14.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_14.js",
    "content": "var searchData=\n[\n  ['vector',['Vector',['../classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939',1,'fasttext::Vector']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_15.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_15.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_15.js",
    "content": "var searchData=\n[\n  ['wordvectors',['wordVectors',['../classfasttext_1_1FastText.html#a1a5d918e595e00a8ea7b9bc5ac8f6c35',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_16.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_16.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_16.js",
    "content": "var searchData=\n[\n  ['zero',['zero',['../classfasttext_1_1Matrix.html#a44eee2d614a0cce8396cd33ecb7439ba',1,'fasttext::Matrix::zero()'],['../classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793',1,'fasttext::Vector::zero()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_17.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_17.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_17.js",
    "content": "var searchData=\n[\n  ['_7ematrix',['~Matrix',['../classfasttext_1_1Matrix.html#ad4442ecc4c59f34e8d83b0ce87472417',1,'fasttext::Matrix']]],\n  ['_7emodel',['~Model',['../classfasttext_1_1Model.html#a70b5bdc423e9f351f2a4b2e0f5411e72',1,'fasttext::Model']]],\n  ['_7eqmatrix',['~QMatrix',['../classfasttext_1_1QMatrix.html#a7de6d212bec1c4028ee30e968b5d030d',1,'fasttext::QMatrix']]],\n  ['_7evector',['~Vector',['../classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506',1,'fasttext::Vector']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_2.js",
    "content": "var searchData=\n[\n  ['cbow',['cbow',['../classfasttext_1_1FastText.html#a592036d3a8ae545637db4864dbe5274f',1,'fasttext::FastText']]],\n  ['checkmodel',['checkModel',['../classfasttext_1_1FastText.html#a7a874ab83984dc05dca56a74edae25c1',1,'fasttext::FastText']]],\n  ['comparepairs',['comparePairs',['../classfasttext_1_1Model.html#ac475c67452b62dd374b6253f99167816',1,'fasttext::Model']]],\n  ['compute_5fcode',['compute_code',['../classfasttext_1_1ProductQuantizer.html#a1b6fedf0a199ed0ec1afc2aea26a4b37',1,'fasttext::ProductQuantizer']]],\n  ['compute_5fcodes',['compute_codes',['../classfasttext_1_1ProductQuantizer.html#aca0eb5cd10d5bba60b4f3f37f87676f6',1,'fasttext::ProductQuantizer']]],\n  ['computehidden',['computeHidden',['../classfasttext_1_1Model.html#ae561523a8c81dd60d9bbe10336f83110',1,'fasttext::Model']]],\n  ['computeoutputsoftmax',['computeOutputSoftmax',['../classfasttext_1_1Model.html#a00f5b7ed6e10c2bafa29919136c471f6',1,'fasttext::Model::computeOutputSoftmax(Vector &amp;, Vector &amp;) const'],['../classfasttext_1_1Model.html#af48ca152068185f0bd31746be56c03bd',1,'fasttext::Model::computeOutputSoftmax()']]],\n  ['computesubwords',['computeSubwords',['../classfasttext_1_1Dictionary.html#ac175ccc5be52cd4b048c7ef4e1fa316e',1,'fasttext::Dictionary::computeSubwords(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;) const'],['../classfasttext_1_1Dictionary.html#a1af5a16259f201bb08819cc2de938ecf',1,'fasttext::Dictionary::computeSubwords(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_3.js",
    "content": "var searchData=\n[\n  ['dfs',['dfs',['../classfasttext_1_1Model.html#a16ffdb3fcd27fa51f6b435b3be762a77',1,'fasttext::Model']]],\n  ['dictionary',['Dictionary',['../classfasttext_1_1Dictionary.html#ae0f87ea47dcc779231cd0d2cd660739e',1,'fasttext::Dictionary']]],\n  ['discard',['discard',['../classfasttext_1_1Dictionary.html#a13572c258fc013c30b2dcf7cada260b5',1,'fasttext::Dictionary']]],\n  ['distl2',['distL2',['../namespacefasttext.html#a4336b1849ad0c1f134ed0ac9842f053c',1,'fasttext']]],\n  ['dividerow',['divideRow',['../classfasttext_1_1Matrix.html#ab4d6dd58db43dd2c4a6fbb12c74541a0',1,'fasttext::Matrix']]],\n  ['dotrow',['dotRow',['../classfasttext_1_1Matrix.html#ae6b962ed2ca31fb3a8d094c8f85d6136',1,'fasttext::Matrix::dotRow()'],['../classfasttext_1_1QMatrix.html#ad1671bceb60d87492b662331cc084c56',1,'fasttext::QMatrix::dotRow()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_4.js",
    "content": "var searchData=\n[\n  ['estep',['Estep',['../classfasttext_1_1ProductQuantizer.html#aeba73a087e59f504472063db0a217e84',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_5.js",
    "content": "var searchData=\n[\n  ['fasttext',['FastText',['../classfasttext_1_1FastText.html#a3f1c81aafc45ad71824b332f5cb577d5',1,'fasttext::FastText']]],\n  ['find',['find',['../classfasttext_1_1Dictionary.html#a5ee926831e9b71f7e966efdb40d1ce8f',1,'fasttext::Dictionary']]],\n  ['findkbest',['findKBest',['../classfasttext_1_1Model.html#ad95e1ec209c506cf6ec1a5410d6f91d5',1,'fasttext::Model']]],\n  ['findnn',['findNN',['../classfasttext_1_1FastText.html#a5c8825c522415d89478a54ecf28642c9',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_6.js",
    "content": "var searchData=\n[\n  ['get_5fcentroids',['get_centroids',['../classfasttext_1_1ProductQuantizer.html#adb6a2ade7e4a77d7b59f03c081d11d91',1,'fasttext::ProductQuantizer::get_centroids(int32_t, uint8_t)'],['../classfasttext_1_1ProductQuantizer.html#a4f7b2b81820abc0c577a89a768ef3347',1,'fasttext::ProductQuantizer::get_centroids(int32_t, uint8_t) const']]],\n  ['getcounts',['getCounts',['../classfasttext_1_1Dictionary.html#a8ebab8c3b38586edb9db35f9220ad72f',1,'fasttext::Dictionary']]],\n  ['getdimension',['getDimension',['../classfasttext_1_1FastText.html#a32a93e0bc4389be11aa4be0990a9e010',1,'fasttext::FastText']]],\n  ['getid',['getId',['../classfasttext_1_1Dictionary.html#a3d94bd710f83b125a68129e8a1638d1d',1,'fasttext::Dictionary']]],\n  ['getlabel',['getLabel',['../classfasttext_1_1Dictionary.html#ac8860d22b56331b8d5c8eb9e31873864',1,'fasttext::Dictionary']]],\n  ['getline',['getLine',['../classfasttext_1_1Dictionary.html#a7f851dbfcd6b9bd032e6dc3e387fd543',1,'fasttext::Dictionary::getLine(std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const'],['../classfasttext_1_1Dictionary.html#a38a657e0e9143e1d22a7e24eaeb5a659',1,'fasttext::Dictionary::getLine(std::istream &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; int32_t &gt; &amp;, std::minstd_rand &amp;) const']]],\n  ['getloss',['getLoss',['../classfasttext_1_1Model.html#adab141691a82b572ab80f6bbb5ded6d1',1,'fasttext::Model']]],\n  ['getm',['getM',['../classfasttext_1_1QMatrix.html#a16350455c02cf5f00175b1b0c6a310cd',1,'fasttext::QMatrix']]],\n  ['getn',['getN',['../classfasttext_1_1QMatrix.html#ad969042dfc46a64e386f12616a4d6bcb',1,'fasttext::QMatrix']]],\n  ['getnegative',['getNegative',['../classfasttext_1_1Model.html#a572a3c164d6e88120a8384330e2834dc',1,'fasttext::Model']]],\n  ['getsubwords',['getSubwords',['../classfasttext_1_1Dictionary.html#a0ed089d9e5cbce60a647f912d6f8bd24',1,'fasttext::Dictionary::getSubwords(int32_t) const'],['../classfasttext_1_1Dictionary.html#ace021fb98186f100dd8cfba63c7302af',1,'fasttext::Dictionary::getSubwords(const std::string &amp;) const'],['../classfasttext_1_1Dictionary.html#a2f947d8754a28b9da9c5b5499164c130',1,'fasttext::Dictionary::getSubwords(const std::string &amp;, std::vector&lt; int32_t &gt; &amp;, std::vector&lt; std::string &gt; &amp;) const']]],\n  ['gettype',['getType',['../classfasttext_1_1Dictionary.html#a80921e470e51d8adc3430fc96c97678f',1,'fasttext::Dictionary::getType(int32_t) const'],['../classfasttext_1_1Dictionary.html#a74a982138d4e4e703aee4c7e187b3448',1,'fasttext::Dictionary::getType(const std::string &amp;) const']]],\n  ['getvector',['getVector',['../classfasttext_1_1FastText.html#ace850e40405e56ab488d32f25e5d3533',1,'fasttext::FastText']]],\n  ['getword',['getWord',['../classfasttext_1_1Dictionary.html#aa6496f6eaa28851eb526f16792ffc9e8',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_7.js",
    "content": "var searchData=\n[\n  ['hash',['hash',['../classfasttext_1_1Dictionary.html#a17e7f8a9a4a4e0d2657583d68e4292d0',1,'fasttext::Dictionary']]],\n  ['hierarchicalsoftmax',['hierarchicalSoftmax',['../classfasttext_1_1Model.html#ad0a3a28007e2dfe2f36c5159c86d4c51',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_8.js",
    "content": "var searchData=\n[\n  ['initlog',['initLog',['../classfasttext_1_1Model.html#abf8bafb8fc35c220bf961893bf459c07',1,'fasttext::Model']]],\n  ['initngrams',['initNgrams',['../classfasttext_1_1Dictionary.html#ab415b87adacc7d1570f8e2f630fe45c1',1,'fasttext::Dictionary']]],\n  ['initsigmoid',['initSigmoid',['../classfasttext_1_1Model.html#ab64ec566b2fc836050ef178ec11df780',1,'fasttext::Model']]],\n  ['inittablediscard',['initTableDiscard',['../classfasttext_1_1Dictionary.html#aaa2d7d0ccde56223a3088594651e782e',1,'fasttext::Dictionary']]],\n  ['inittablenegatives',['initTableNegatives',['../classfasttext_1_1Model.html#a03859cabcddafddfdb7e6d8862e2ae6c',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_9.js",
    "content": "var searchData=\n[\n  ['kmeans',['kmeans',['../classfasttext_1_1ProductQuantizer.html#a06c91357dc88225714daa10548525352',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_a.js",
    "content": "var searchData=\n[\n  ['l2normrow',['l2NormRow',['../classfasttext_1_1Matrix.html#aa61bc6b1a1b2467d7fb41a9e99d96922',1,'fasttext::Matrix::l2NormRow(int64_t i) const'],['../classfasttext_1_1Matrix.html#afb690a9d64bc7e941cbd48f20cab872e',1,'fasttext::Matrix::l2NormRow(Vector &amp;norms) const']]],\n  ['load',['load',['../classfasttext_1_1Args.html#a7f7c0f446795a8ffa23db55583ae29c4',1,'fasttext::Args::load()'],['../classfasttext_1_1Dictionary.html#a3bb32f8fb16493e1e0acb5444d266ca3',1,'fasttext::Dictionary::load()'],['../classfasttext_1_1Matrix.html#a8a04afebc25fcf38376f272371e0b60d',1,'fasttext::Matrix::load()'],['../classfasttext_1_1ProductQuantizer.html#a4060617809c0099a9e5ca73ec0497056',1,'fasttext::ProductQuantizer::load()'],['../classfasttext_1_1QMatrix.html#a03c039b81b5aaed30d95149de9379998',1,'fasttext::QMatrix::load()']]],\n  ['loadmodel',['loadModel',['../classfasttext_1_1FastText.html#ae0e6922404294aabbb9d6322e6f464cd',1,'fasttext::FastText::loadModel(std::istream &amp;)'],['../classfasttext_1_1FastText.html#ac844ddc1573e80a8b5a255668fc97247',1,'fasttext::FastText::loadModel(const std::string &amp;)']]],\n  ['loadvectors',['loadVectors',['../classfasttext_1_1FastText.html#a9e503be304e98ead00a2eaed3127f64a',1,'fasttext::FastText']]],\n  ['log',['log',['../classfasttext_1_1Model.html#af797332e236982f2570a3b94b686e816',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_b.js",
    "content": "var searchData=\n[\n  ['main',['main',['../main_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main.cc']]],\n  ['matrix',['Matrix',['../classfasttext_1_1Matrix.html#ae3eed8f78b046582d6504eaae17b9890',1,'fasttext::Matrix::Matrix()'],['../classfasttext_1_1Matrix.html#adb3094376193874860df45e9346eebd6',1,'fasttext::Matrix::Matrix(int64_t, int64_t)'],['../classfasttext_1_1Matrix.html#ad70f2182e0dd1b520ee42200e2d0ed04',1,'fasttext::Matrix::Matrix(const Matrix &amp;)']]],\n  ['model',['Model',['../classfasttext_1_1Model.html#a63f17ed51e4a9adf73322bf62d2cf338',1,'fasttext::Model']]],\n  ['mstep',['MStep',['../classfasttext_1_1ProductQuantizer.html#a5f6cc5e957f5546523aea7dd9e826f25',1,'fasttext::ProductQuantizer']]],\n  ['mul',['mul',['../classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395',1,'fasttext::Vector::mul(real)'],['../classfasttext_1_1Vector.html#aec343a9bf909342d633f09c4fa3da97d',1,'fasttext::Vector::mul(const QMatrix &amp;, const Vector &amp;)'],['../classfasttext_1_1Vector.html#a4540e8d1c7bf5110302f5ab41d601e0c',1,'fasttext::Vector::mul(const Matrix &amp;, const Vector &amp;)']]],\n  ['mulcode',['mulcode',['../classfasttext_1_1ProductQuantizer.html#a82e0fb5da37c5c6a62d6f9f6d34d91d6',1,'fasttext::ProductQuantizer']]],\n  ['multiplyrow',['multiplyRow',['../classfasttext_1_1Matrix.html#a103b48301d251f8af69409c123435b3c',1,'fasttext::Matrix']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_c.js",
    "content": "var searchData=\n[\n  ['negativesampling',['negativeSampling',['../classfasttext_1_1Model.html#a670d5e0695fe61398ec4a2352c897660',1,'fasttext::Model']]],\n  ['ngramvectors',['ngramVectors',['../classfasttext_1_1FastText.html#a62a84e26a04b64eb35edfa110dd8dc32',1,'fasttext::FastText']]],\n  ['nlabels',['nlabels',['../classfasttext_1_1Dictionary.html#a610cf116879e0897f286ea9dd8c09895',1,'fasttext::Dictionary']]],\n  ['nn',['nn',['../classfasttext_1_1FastText.html#a5509f491ca6c2fa3e57bc3443536f885',1,'fasttext::FastText::nn()'],['../main_8cc.html#a821b5934bab6d9d7daf366e92a4621e4',1,'nn():&#160;main.cc']]],\n  ['norm',['norm',['../classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6',1,'fasttext::Vector']]],\n  ['ntokens',['ntokens',['../classfasttext_1_1Dictionary.html#a8b4d977429d7c264a9fcc4765b2e3972',1,'fasttext::Dictionary']]],\n  ['nwords',['nwords',['../classfasttext_1_1Dictionary.html#ad8f09843ce250ad1bca19bb849e8111d',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_d.js",
    "content": "var searchData=\n[\n  ['operator_3c_3c',['operator&lt;&lt;',['../namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6',1,'fasttext']]],\n  ['operator_3d',['operator=',['../classfasttext_1_1Matrix.html#abe27a5e1c276ab145297c4941cd468f3',1,'fasttext::Matrix']]],\n  ['operator_5b_5d',['operator[]',['../classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232',1,'fasttext::Vector::operator[](int64_t)'],['../classfasttext_1_1Vector.html#a06c176b63c43754de86ff01846ebd47b',1,'fasttext::Vector::operator[](int64_t) const']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_e.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_e.js",
    "content": "var searchData=\n[\n  ['parseargs',['parseArgs',['../classfasttext_1_1Args.html#ad5c7a7235b1e37ceb80c704ceff9c765',1,'fasttext::Args']]],\n  ['precomputewordvectors',['precomputeWordVectors',['../classfasttext_1_1FastText.html#ace82dc820d98f504af16b8b8c501a6f4',1,'fasttext::FastText']]],\n  ['predict',['predict',['../classfasttext_1_1FastText.html#a831dff689fbc2af4f93c91ee1bde7e95',1,'fasttext::FastText::predict(std::istream &amp;, int32_t, bool)'],['../classfasttext_1_1FastText.html#a167bc72147d4bc02bd67203e7ebd7699',1,'fasttext::FastText::predict(std::istream &amp;, int32_t, std::vector&lt; std::pair&lt; real, std::string &gt;&gt; &amp;) const'],['../classfasttext_1_1Model.html#aa7c62c0f736b4703c9d52130a3747d86',1,'fasttext::Model::predict(const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;, Vector &amp;, Vector &amp;) const'],['../classfasttext_1_1Model.html#a6e7ad347856d6d9b6994a4263e10585a',1,'fasttext::Model::predict(const std::vector&lt; int32_t &gt; &amp;, int32_t, std::vector&lt; std::pair&lt; real, int32_t &gt;&gt; &amp;)'],['../main_8cc.html#a4479606e315746032f4ecde4b62ebc26',1,'predict():&#160;main.cc']]],\n  ['printanalogiesusage',['printAnalogiesUsage',['../main_8cc.html#a2f26c98424ff31f8d5d4604f5bc91b15',1,'main.cc']]],\n  ['printbasichelp',['printBasicHelp',['../classfasttext_1_1Args.html#af4aeb36b5332a2343e0720bd98061a4e',1,'fasttext::Args']]],\n  ['printdictionaryhelp',['printDictionaryHelp',['../classfasttext_1_1Args.html#a9d5bd3895b25bfac8f4ba0421fde52fe',1,'fasttext::Args']]],\n  ['printhelp',['printHelp',['../classfasttext_1_1Args.html#a8b8ee9a22203491d47ba19eb78e440a6',1,'fasttext::Args']]],\n  ['printinfo',['printInfo',['../classfasttext_1_1FastText.html#adb757902284f53288aa41a5ae45e001f',1,'fasttext::FastText']]],\n  ['printngrams',['printNgrams',['../main_8cc.html#af2bf6913aa4d5fa8fa15100be6cbe705',1,'main.cc']]],\n  ['printnnusage',['printNNUsage',['../main_8cc.html#a8126ecd2d93d3b73b1c516e323575052',1,'main.cc']]],\n  ['printpredictusage',['printPredictUsage',['../main_8cc.html#aa858ef5149aa995107818c079d930037',1,'main.cc']]],\n  ['printprintngramsusage',['printPrintNgramsUsage',['../main_8cc.html#a086a02edc37d73f760db2882df2ea57d',1,'main.cc']]],\n  ['printprintsentencevectorsusage',['printPrintSentenceVectorsUsage',['../main_8cc.html#a4328b0d06690e73334e2e7e1135efc37',1,'main.cc']]],\n  ['printprintwordvectorsusage',['printPrintWordVectorsUsage',['../main_8cc.html#ab9897a3337e4f0833d547e044fd033eb',1,'main.cc']]],\n  ['printquantizationhelp',['printQuantizationHelp',['../classfasttext_1_1Args.html#a3f176b6f6d3d87c1c23edb43fbce85dd',1,'fasttext::Args']]],\n  ['printquantizeusage',['printQuantizeUsage',['../main_8cc.html#aa743c1f04268af8569712a85c561a67f',1,'main.cc']]],\n  ['printsentencevectors',['printSentenceVectors',['../classfasttext_1_1FastText.html#af4d659c58cd72b67f5cc0cce2c1925cf',1,'fasttext::FastText::printSentenceVectors()'],['../main_8cc.html#a4c172f0e6b3cdcfac214743a95254c7d',1,'printSentenceVectors():&#160;main.cc']]],\n  ['printtestusage',['printTestUsage',['../main_8cc.html#a2cbfad77fba337d7d8b35790de95f0b8',1,'main.cc']]],\n  ['printtraininghelp',['printTrainingHelp',['../classfasttext_1_1Args.html#a0bf37a9497365a4c9296318b78b7e7b7',1,'fasttext::Args']]],\n  ['printusage',['printUsage',['../main_8cc.html#aead97c99e70c0da7036fbbe230ef68b6',1,'main.cc']]],\n  ['printwordvectors',['printWordVectors',['../classfasttext_1_1FastText.html#a74e01ba3737bd625bf0602fb808b1501',1,'fasttext::FastText::printWordVectors()'],['../main_8cc.html#a133e93a6033465d23657e023a022c16e',1,'printWordVectors():&#160;main.cc']]],\n  ['productquantizer',['ProductQuantizer',['../classfasttext_1_1ProductQuantizer.html#a08b62937f9073fb4d95f161da7121850',1,'fasttext::ProductQuantizer::ProductQuantizer()'],['../classfasttext_1_1ProductQuantizer.html#a8563da401dbfaa98983ef0c92f92a18f',1,'fasttext::ProductQuantizer::ProductQuantizer(int32_t, int32_t)']]],\n  ['prune',['prune',['../classfasttext_1_1Dictionary.html#a82c496a7bdfe076ac3f887b04eb54f01',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_f.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/functions_f.js",
    "content": "var searchData=\n[\n  ['qmatrix',['QMatrix',['../classfasttext_1_1QMatrix.html#a976442aaed5b1afee2f2cd4473c0d62b',1,'fasttext::QMatrix::QMatrix()'],['../classfasttext_1_1QMatrix.html#ae10f3f12bf4c8483381ecb122b7fda5a',1,'fasttext::QMatrix::QMatrix(const Matrix &amp;, int32_t, bool)']]],\n  ['quantize',['quantize',['../classfasttext_1_1FastText.html#aa01f053de2afa22056c594d96988c1ad',1,'fasttext::FastText::quantize()'],['../classfasttext_1_1QMatrix.html#ab9ae1914dc1b72e305880a8c22626afc',1,'fasttext::QMatrix::quantize()'],['../main_8cc.html#a6e07bb2da057cf6a518eed616b490bdd',1,'quantize():&#160;main.cc']]],\n  ['quantizenorm',['quantizeNorm',['../classfasttext_1_1QMatrix.html#a0e4d84be1c6cd0cbfc4568f905961017',1,'fasttext::QMatrix']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/namespaces_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"namespaces_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/namespaces_0.js",
    "content": "var searchData=\n[\n  ['fasttext',['fasttext',['../namespacefasttext.html',1,'']]],\n  ['utils',['utils',['../namespacefasttext_1_1utils.html',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/nomatches.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/search.css",
    "content": "/*---------------- Search Box */\n\n#FSearchBox {\n    float: left;\n}\n\n#MSearchBox {\n    white-space : nowrap;\n    float: none;\n    margin-top: 8px;\n    right: 0px;\n    width: 170px;\n    height: 24px;\n    z-index: 102;\n}\n\n#MSearchBox .left\n{\n    display:block;\n    position:absolute;\n    left:10px;\n    width:20px;\n    height:19px;\n    background:url('search_l.png') no-repeat;\n    background-position:right;\n}\n\n#MSearchSelect {\n    display:block;\n    position:absolute;\n    width:20px;\n    height:19px;\n}\n\n.left #MSearchSelect {\n    left:4px;\n}\n\n.right #MSearchSelect {\n    right:5px;\n}\n\n#MSearchField {\n    display:block;\n    position:absolute;\n    height:19px;\n    background:url('search_m.png') repeat-x;\n    border:none;\n    width:115px;\n    margin-left:20px;\n    padding-left:4px;\n    color: #909090;\n    outline: none;\n    font: 9pt Arial, Verdana, sans-serif;\n    -webkit-border-radius: 0px;\n}\n\n#FSearchBox #MSearchField {\n    margin-left:15px;\n}\n\n#MSearchBox .right {\n    display:block;\n    position:absolute;\n    right:10px;\n    top:8px;\n    width:20px;\n    height:19px;\n    background:url('search_r.png') no-repeat;\n    background-position:left;\n}\n\n#MSearchClose {\n    display: none;\n    position: absolute;\n    top: 4px;\n    background : none;\n    border: none;\n    margin: 0px 4px 0px 0px;\n    padding: 0px 0px;\n    outline: none;\n}\n\n.left #MSearchClose {\n    left: 6px;\n}\n\n.right #MSearchClose {\n    right: 2px;\n}\n\n.MSearchBoxActive #MSearchField {\n    color: #000000;\n}\n\n/*---------------- Search filter selection */\n\n#MSearchSelectWindow {\n    display: none;\n    position: absolute;\n    left: 0; top: 0;\n    border: 1px solid #90A5CE;\n    background-color: #F9FAFC;\n    z-index: 10001;\n    padding-top: 4px;\n    padding-bottom: 4px;\n    -moz-border-radius: 4px;\n    -webkit-border-top-left-radius: 4px;\n    -webkit-border-top-right-radius: 4px;\n    -webkit-border-bottom-left-radius: 4px;\n    -webkit-border-bottom-right-radius: 4px;\n    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n}\n\n.SelectItem {\n    font: 8pt Arial, Verdana, sans-serif;\n    padding-left:  2px;\n    padding-right: 12px;\n    border: 0px;\n}\n\nspan.SelectionMark {\n    margin-right: 4px;\n    font-family: monospace;\n    outline-style: none;\n    text-decoration: none;\n}\n\na.SelectItem {\n    display: block;\n    outline-style: none;\n    color: #000000; \n    text-decoration: none;\n    padding-left:   6px;\n    padding-right: 12px;\n}\n\na.SelectItem:focus,\na.SelectItem:active {\n    color: #000000; \n    outline-style: none;\n    text-decoration: none;\n}\n\na.SelectItem:hover {\n    color: #FFFFFF;\n    background-color: #3D578C;\n    outline-style: none;\n    text-decoration: none;\n    cursor: pointer;\n    display: block;\n}\n\n/*---------------- Search results window */\n\niframe#MSearchResults {\n    width: 60ex;\n    height: 15em;\n}\n\n#MSearchResultsWindow {\n    display: none;\n    position: absolute;\n    left: 0; top: 0;\n    border: 1px solid #000;\n    background-color: #EEF1F7;\n    z-index:10000;\n}\n\n/* ----------------------------------- */\n\n\n#SRIndex {\n    clear:both; \n    padding-bottom: 15px;\n}\n\n.SREntry {\n    font-size: 10pt;\n    padding-left: 1ex;\n}\n\n.SRPage .SREntry {\n    font-size: 8pt;\n    padding: 1px 5px;\n}\n\nbody.SRPage {\n    margin: 5px 2px;\n}\n\n.SRChildren {\n    padding-left: 3ex; padding-bottom: .5em \n}\n\n.SRPage .SRChildren {\n    display: none;\n}\n\n.SRSymbol {\n    font-weight: bold; \n    color: #425E97;\n    font-family: Arial, Verdana, sans-serif;\n    text-decoration: none;\n    outline: none;\n}\n\na.SRScope {\n    display: block;\n    color: #425E97; \n    font-family: Arial, Verdana, sans-serif;\n    text-decoration: none;\n    outline: none;\n}\n\na.SRSymbol:focus, a.SRSymbol:active,\na.SRScope:focus, a.SRScope:active {\n    text-decoration: underline;\n}\n\nspan.SRScope {\n    padding-left: 4px;\n}\n\n.SRPage .SRStatus {\n    padding: 2px 5px;\n    font-size: 8pt;\n    font-style: italic;\n}\n\n.SRResult {\n    display: none;\n}\n\nDIV.searchresults {\n    margin-left: 10px;\n    margin-right: 10px;\n}\n\n/*---------------- External search page results */\n\n.searchresult {\n    background-color: #F0F3F8;\n}\n\n.pages b {\n   color: white;\n   padding: 5px 5px 3px 5px;\n   background-image: url(\"../tab_a.png\");\n   background-repeat: repeat-x;\n   text-shadow: 0 1px 1px #000000;\n}\n\n.pages {\n    line-height: 17px;\n    margin-left: 4px;\n    text-decoration: none;\n}\n\n.hl {\n    font-weight: bold;\n}\n\n#searchresults {\n    margin-bottom: 20px;\n}\n\n.searchpages {\n    margin-top: 10px;\n}\n\n"
  },
  {
    "path": "website/static/docs/en/html/search/search.js",
    "content": "function convertToId(search)\n{\n  var result = '';\n  for (i=0;i<search.length;i++)\n  {\n    var c = search.charAt(i);\n    var cn = c.charCodeAt(0);\n    if (c.match(/[a-z0-9\\u0080-\\uFFFF]/))\n    {\n      result+=c;\n    }\n    else if (cn<16)\n    {\n      result+=\"_0\"+cn.toString(16);\n    }\n    else\n    {\n      result+=\"_\"+cn.toString(16);\n    }\n  }\n  return result;\n}\n\nfunction getXPos(item)\n{\n  var x = 0;\n  if (item.offsetWidth)\n  {\n    while (item && item!=document.body)\n    {\n      x   += item.offsetLeft;\n      item = item.offsetParent;\n    }\n  }\n  return x;\n}\n\nfunction getYPos(item)\n{\n  var y = 0;\n  if (item.offsetWidth)\n  {\n     while (item && item!=document.body)\n     {\n       y   += item.offsetTop;\n       item = item.offsetParent;\n     }\n  }\n  return y;\n}\n\n/* A class handling everything associated with the search panel.\n\n   Parameters:\n   name - The name of the global variable that will be\n          storing this instance.  Is needed to be able to set timeouts.\n   resultPath - path to use for external files\n*/\nfunction SearchBox(name, resultsPath, inFrame, label)\n{\n  if (!name || !resultsPath) {  alert(\"Missing parameters to SearchBox.\"); }\n\n  // ---------- Instance variables\n  this.name                  = name;\n  this.resultsPath           = resultsPath;\n  this.keyTimeout            = 0;\n  this.keyTimeoutLength      = 500;\n  this.closeSelectionTimeout = 300;\n  this.lastSearchValue       = \"\";\n  this.lastResultsPage       = \"\";\n  this.hideTimeout           = 0;\n  this.searchIndex           = 0;\n  this.searchActive          = false;\n  this.insideFrame           = inFrame;\n  this.searchLabel           = label;\n\n  // ----------- DOM Elements\n\n  this.DOMSearchField = function()\n  {  return document.getElementById(\"MSearchField\");  }\n\n  this.DOMSearchSelect = function()\n  {  return document.getElementById(\"MSearchSelect\");  }\n\n  this.DOMSearchSelectWindow = function()\n  {  return document.getElementById(\"MSearchSelectWindow\");  }\n\n  this.DOMPopupSearchResults = function()\n  {  return document.getElementById(\"MSearchResults\");  }\n\n  this.DOMPopupSearchResultsWindow = function()\n  {  return document.getElementById(\"MSearchResultsWindow\");  }\n\n  this.DOMSearchClose = function()\n  {  return document.getElementById(\"MSearchClose\"); }\n\n  this.DOMSearchBox = function()\n  {  return document.getElementById(\"MSearchBox\");  }\n\n  // ------------ Event Handlers\n\n  // Called when focus is added or removed from the search field.\n  this.OnSearchFieldFocus = function(isActive)\n  {\n    this.Activate(isActive);\n  }\n\n  this.OnSearchSelectShow = function()\n  {\n    var searchSelectWindow = this.DOMSearchSelectWindow();\n    var searchField        = this.DOMSearchSelect();\n\n    if (this.insideFrame)\n    {\n      var left = getXPos(searchField);\n      var top  = getYPos(searchField);\n      left += searchField.offsetWidth + 6;\n      top += searchField.offsetHeight;\n\n      // show search selection popup\n      searchSelectWindow.style.display='block';\n      left -= searchSelectWindow.offsetWidth;\n      searchSelectWindow.style.left =  left + 'px';\n      searchSelectWindow.style.top  =  top  + 'px';\n    }\n    else\n    {\n      var left = getXPos(searchField);\n      var top  = getYPos(searchField);\n      top += searchField.offsetHeight;\n\n      // show search selection popup\n      searchSelectWindow.style.display='block';\n      searchSelectWindow.style.left =  left + 'px';\n      searchSelectWindow.style.top  =  top  + 'px';\n    }\n\n    // stop selection hide timer\n    if (this.hideTimeout)\n    {\n      clearTimeout(this.hideTimeout);\n      this.hideTimeout=0;\n    }\n    return false; // to avoid \"image drag\" default event\n  }\n\n  this.OnSearchSelectHide = function()\n  {\n    this.hideTimeout = setTimeout(this.name +\".CloseSelectionWindow()\",\n                                  this.closeSelectionTimeout);\n  }\n\n  // Called when the content of the search field is changed.\n  this.OnSearchFieldChange = function(evt)\n  {\n    if (this.keyTimeout) // kill running timer\n    {\n      clearTimeout(this.keyTimeout);\n      this.keyTimeout = 0;\n    }\n\n    var e  = (evt) ? evt : window.event; // for IE\n    if (e.keyCode==40 || e.keyCode==13)\n    {\n      if (e.shiftKey==1)\n      {\n        this.OnSearchSelectShow();\n        var win=this.DOMSearchSelectWindow();\n        for (i=0;i<win.childNodes.length;i++)\n        {\n          var child = win.childNodes[i]; // get span within a\n          if (child.className=='SelectItem')\n          {\n            child.focus();\n            return;\n          }\n        }\n        return;\n      }\n      else if (window.frames.MSearchResults.searchResults)\n      {\n        var elem = window.frames.MSearchResults.searchResults.NavNext(0);\n        if (elem) elem.focus();\n      }\n    }\n    else if (e.keyCode==27) // Escape out of the search field\n    {\n      this.DOMSearchField().blur();\n      this.DOMPopupSearchResultsWindow().style.display = 'none';\n      this.DOMSearchClose().style.display = 'none';\n      this.lastSearchValue = '';\n      this.Activate(false);\n      return;\n    }\n\n    // strip whitespaces\n    var searchValue = this.DOMSearchField().value.replace(/ +/g, \"\");\n\n    if (searchValue != this.lastSearchValue) // search value has changed\n    {\n      if (searchValue != \"\") // non-empty search\n      {\n        // set timer for search update\n        this.keyTimeout = setTimeout(this.name + '.Search()',\n                                     this.keyTimeoutLength);\n      }\n      else // empty search field\n      {\n        this.DOMPopupSearchResultsWindow().style.display = 'none';\n        this.DOMSearchClose().style.display = 'none';\n        this.lastSearchValue = '';\n      }\n    }\n  }\n\n  this.SelectItemCount = function(id)\n  {\n    var count=0;\n    var win=this.DOMSearchSelectWindow();\n    for (i=0;i<win.childNodes.length;i++)\n    {\n      var child = win.childNodes[i]; // get span within a\n      if (child.className=='SelectItem')\n      {\n        count++;\n      }\n    }\n    return count;\n  }\n\n  this.SelectItemSet = function(id)\n  {\n    var i,j=0;\n    var win=this.DOMSearchSelectWindow();\n    for (i=0;i<win.childNodes.length;i++)\n    {\n      var child = win.childNodes[i]; // get span within a\n      if (child.className=='SelectItem')\n      {\n        var node = child.firstChild;\n        if (j==id)\n        {\n          node.innerHTML='&#8226;';\n        }\n        else\n        {\n          node.innerHTML='&#160;';\n        }\n        j++;\n      }\n    }\n  }\n\n  // Called when an search filter selection is made.\n  // set item with index id as the active item\n  this.OnSelectItem = function(id)\n  {\n    this.searchIndex = id;\n    this.SelectItemSet(id);\n    var searchValue = this.DOMSearchField().value.replace(/ +/g, \"\");\n    if (searchValue!=\"\" && this.searchActive) // something was found -> do a search\n    {\n      this.Search();\n    }\n  }\n\n  this.OnSearchSelectKey = function(evt)\n  {\n    var e = (evt) ? evt : window.event; // for IE\n    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down\n    {\n      this.searchIndex++;\n      this.OnSelectItem(this.searchIndex);\n    }\n    else if (e.keyCode==38 && this.searchIndex>0) // Up\n    {\n      this.searchIndex--;\n      this.OnSelectItem(this.searchIndex);\n    }\n    else if (e.keyCode==13 || e.keyCode==27)\n    {\n      this.OnSelectItem(this.searchIndex);\n      this.CloseSelectionWindow();\n      this.DOMSearchField().focus();\n    }\n    return false;\n  }\n\n  // --------- Actions\n\n  // Closes the results window.\n  this.CloseResultsWindow = function()\n  {\n    this.DOMPopupSearchResultsWindow().style.display = 'none';\n    this.DOMSearchClose().style.display = 'none';\n    this.Activate(false);\n  }\n\n  this.CloseSelectionWindow = function()\n  {\n    this.DOMSearchSelectWindow().style.display = 'none';\n  }\n\n  // Performs a search.\n  this.Search = function()\n  {\n    this.keyTimeout = 0;\n\n    // strip leading whitespace\n    var searchValue = this.DOMSearchField().value.replace(/^ +/, \"\");\n\n    var code = searchValue.toLowerCase().charCodeAt(0);\n    var idxChar = searchValue.substr(0, 1).toLowerCase();\n    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair\n    {\n      idxChar = searchValue.substr(0, 2);\n    }\n\n    var resultsPage;\n    var resultsPageWithSearch;\n    var hasResultsPage;\n\n    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);\n    if (idx!=-1)\n    {\n       var hexCode=idx.toString(16);\n       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';\n       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);\n       hasResultsPage = true;\n    }\n    else // nothing available for this search term\n    {\n       resultsPage = this.resultsPath + '/nomatches.html';\n       resultsPageWithSearch = resultsPage;\n       hasResultsPage = false;\n    }\n\n    window.frames.MSearchResults.location = resultsPageWithSearch;\n    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();\n\n    if (domPopupSearchResultsWindow.style.display!='block')\n    {\n       var domSearchBox = this.DOMSearchBox();\n       this.DOMSearchClose().style.display = 'inline';\n       if (this.insideFrame)\n       {\n         var domPopupSearchResults = this.DOMPopupSearchResults();\n         domPopupSearchResultsWindow.style.position = 'relative';\n         domPopupSearchResultsWindow.style.display  = 'block';\n         var width = document.body.clientWidth - 8; // the -8 is for IE :-(\n         domPopupSearchResultsWindow.style.width    = width + 'px';\n         domPopupSearchResults.style.width          = width + 'px';\n       }\n       else\n       {\n         var domPopupSearchResults = this.DOMPopupSearchResults();\n         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;\n         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;\n         domPopupSearchResultsWindow.style.display = 'block';\n         left -= domPopupSearchResults.offsetWidth;\n         domPopupSearchResultsWindow.style.top     = top  + 'px';\n         domPopupSearchResultsWindow.style.left    = left + 'px';\n       }\n    }\n\n    this.lastSearchValue = searchValue;\n    this.lastResultsPage = resultsPage;\n  }\n\n  // -------- Activation Functions\n\n  // Activates or deactivates the search panel, resetting things to\n  // their default values if necessary.\n  this.Activate = function(isActive)\n  {\n    if (isActive || // open it\n        this.DOMPopupSearchResultsWindow().style.display == 'block'\n       )\n    {\n      this.DOMSearchBox().className = 'MSearchBoxActive';\n\n      var searchField = this.DOMSearchField();\n\n      if (searchField.value == this.searchLabel) // clear \"Search\" term upon entry\n      {\n        searchField.value = '';\n        this.searchActive = true;\n      }\n    }\n    else if (!isActive) // directly remove the panel\n    {\n      this.DOMSearchBox().className = 'MSearchBoxInactive';\n      this.DOMSearchField().value   = this.searchLabel;\n      this.searchActive             = false;\n      this.lastSearchValue          = ''\n      this.lastResultsPage          = '';\n    }\n  }\n}\n\n// -----------------------------------------------------------------------\n\n// The class that handles everything on the search results page.\nfunction SearchResults(name)\n{\n    // The number of matches from the last run of <Search()>.\n    this.lastMatchCount = 0;\n    this.lastKey = 0;\n    this.repeatOn = false;\n\n    // Toggles the visibility of the passed element ID.\n    this.FindChildElement = function(id)\n    {\n      var parentElement = document.getElementById(id);\n      var element = parentElement.firstChild;\n\n      while (element && element!=parentElement)\n      {\n        if (element.nodeName == 'DIV' && element.className == 'SRChildren')\n        {\n          return element;\n        }\n\n        if (element.nodeName == 'DIV' && element.hasChildNodes())\n        {\n           element = element.firstChild;\n        }\n        else if (element.nextSibling)\n        {\n           element = element.nextSibling;\n        }\n        else\n        {\n          do\n          {\n            element = element.parentNode;\n          }\n          while (element && element!=parentElement && !element.nextSibling);\n\n          if (element && element!=parentElement)\n          {\n            element = element.nextSibling;\n          }\n        }\n      }\n    }\n\n    this.Toggle = function(id)\n    {\n      var element = this.FindChildElement(id);\n      if (element)\n      {\n        if (element.style.display == 'block')\n        {\n          element.style.display = 'none';\n        }\n        else\n        {\n          element.style.display = 'block';\n        }\n      }\n    }\n\n    // Searches for the passed string.  If there is no parameter,\n    // it takes it from the URL query.\n    //\n    // Always returns true, since other documents may try to call it\n    // and that may or may not be possible.\n    this.Search = function(search)\n    {\n      if (!search) // get search word from URL\n      {\n        search = window.location.search;\n        search = search.substring(1);  // Remove the leading '?'\n        search = unescape(search);\n      }\n\n      search = search.replace(/^ +/, \"\"); // strip leading spaces\n      search = search.replace(/ +$/, \"\"); // strip trailing spaces\n      search = search.toLowerCase();\n      search = convertToId(search);\n\n      var resultRows = document.getElementsByTagName(\"div\");\n      var matches = 0;\n\n      var i = 0;\n      while (i < resultRows.length)\n      {\n        var row = resultRows.item(i);\n        if (row.className == \"SRResult\")\n        {\n          var rowMatchName = row.id.toLowerCase();\n          rowMatchName = rowMatchName.replace(/^sr\\d*_/, ''); // strip 'sr123_'\n\n          if (search.length<=rowMatchName.length &&\n             rowMatchName.substr(0, search.length)==search)\n          {\n            row.style.display = 'block';\n            matches++;\n          }\n          else\n          {\n            row.style.display = 'none';\n          }\n        }\n        i++;\n      }\n      document.getElementById(\"Searching\").style.display='none';\n      if (matches == 0) // no results\n      {\n        document.getElementById(\"NoMatches\").style.display='block';\n      }\n      else // at least one result\n      {\n        document.getElementById(\"NoMatches\").style.display='none';\n      }\n      this.lastMatchCount = matches;\n      return true;\n    }\n\n    // return the first item with index index or higher that is visible\n    this.NavNext = function(index)\n    {\n      var focusItem;\n      while (1)\n      {\n        var focusName = 'Item'+index;\n        focusItem = document.getElementById(focusName);\n        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')\n        {\n          break;\n        }\n        else if (!focusItem) // last element\n        {\n          break;\n        }\n        focusItem=null;\n        index++;\n      }\n      return focusItem;\n    }\n\n    this.NavPrev = function(index)\n    {\n      var focusItem;\n      while (1)\n      {\n        var focusName = 'Item'+index;\n        focusItem = document.getElementById(focusName);\n        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')\n        {\n          break;\n        }\n        else if (!focusItem) // last element\n        {\n          break;\n        }\n        focusItem=null;\n        index--;\n      }\n      return focusItem;\n    }\n\n    this.ProcessKeys = function(e)\n    {\n      if (e.type == \"keydown\")\n      {\n        this.repeatOn = false;\n        this.lastKey = e.keyCode;\n      }\n      else if (e.type == \"keypress\")\n      {\n        if (!this.repeatOn)\n        {\n          if (this.lastKey) this.repeatOn = true;\n          return false; // ignore first keypress after keydown\n        }\n      }\n      else if (e.type == \"keyup\")\n      {\n        this.lastKey = 0;\n        this.repeatOn = false;\n      }\n      return this.lastKey!=0;\n    }\n\n    this.Nav = function(evt,itemIndex)\n    {\n      var e  = (evt) ? evt : window.event; // for IE\n      if (e.keyCode==13) return true;\n      if (!this.ProcessKeys(e)) return false;\n\n      if (this.lastKey==38) // Up\n      {\n        var newIndex = itemIndex-1;\n        var focusItem = this.NavPrev(newIndex);\n        if (focusItem)\n        {\n          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);\n          if (child && child.style.display == 'block') // children visible\n          {\n            var n=0;\n            var tmpElem;\n            while (1) // search for last child\n            {\n              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);\n              if (tmpElem)\n              {\n                focusItem = tmpElem;\n              }\n              else // found it!\n              {\n                break;\n              }\n              n++;\n            }\n          }\n        }\n        if (focusItem)\n        {\n          focusItem.focus();\n        }\n        else // return focus to search field\n        {\n           parent.document.getElementById(\"MSearchField\").focus();\n        }\n      }\n      else if (this.lastKey==40) // Down\n      {\n        var newIndex = itemIndex+1;\n        var focusItem;\n        var item = document.getElementById('Item'+itemIndex);\n        var elem = this.FindChildElement(item.parentNode.parentNode.id);\n        if (elem && elem.style.display == 'block') // children visible\n        {\n          focusItem = document.getElementById('Item'+itemIndex+'_c0');\n        }\n        if (!focusItem) focusItem = this.NavNext(newIndex);\n        if (focusItem)  focusItem.focus();\n      }\n      else if (this.lastKey==39) // Right\n      {\n        var item = document.getElementById('Item'+itemIndex);\n        var elem = this.FindChildElement(item.parentNode.parentNode.id);\n        if (elem) elem.style.display = 'block';\n      }\n      else if (this.lastKey==37) // Left\n      {\n        var item = document.getElementById('Item'+itemIndex);\n        var elem = this.FindChildElement(item.parentNode.parentNode.id);\n        if (elem) elem.style.display = 'none';\n      }\n      else if (this.lastKey==27) // Escape\n      {\n        parent.searchBox.CloseResultsWindow();\n        parent.document.getElementById(\"MSearchField\").focus();\n      }\n      else if (this.lastKey==13) // Enter\n      {\n        return true;\n      }\n      return false;\n    }\n\n    this.NavChild = function(evt,itemIndex,childIndex)\n    {\n      var e  = (evt) ? evt : window.event; // for IE\n      if (e.keyCode==13) return true;\n      if (!this.ProcessKeys(e)) return false;\n\n      if (this.lastKey==38) // Up\n      {\n        if (childIndex>0)\n        {\n          var newIndex = childIndex-1;\n          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();\n        }\n        else // already at first child, jump to parent\n        {\n          document.getElementById('Item'+itemIndex).focus();\n        }\n      }\n      else if (this.lastKey==40) // Down\n      {\n        var newIndex = childIndex+1;\n        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);\n        if (!elem) // last child, jump to parent next parent\n        {\n          elem = this.NavNext(itemIndex+1);\n        }\n        if (elem)\n        {\n          elem.focus();\n        }\n      }\n      else if (this.lastKey==27) // Escape\n      {\n        parent.searchBox.CloseResultsWindow();\n        parent.document.getElementById(\"MSearchField\").focus();\n      }\n      else if (this.lastKey==13) // Enter\n      {\n        return true;\n      }\n      return false;\n    }\n}\n\nfunction setKeyActions(elem,action)\n{\n  elem.setAttribute('onkeydown',action);\n  elem.setAttribute('onkeypress',action);\n  elem.setAttribute('onkeyup',action);\n}\n\nfunction setClassAttr(elem,attr)\n{\n  elem.setAttribute('class',attr);\n  elem.setAttribute('className',attr);\n}\n\nfunction createResults()\n{\n  var results = document.getElementById(\"SRResults\");\n  for (var e=0; e<searchData.length; e++)\n  {\n    var id = searchData[e][0];\n    var srResult = document.createElement('div');\n    srResult.setAttribute('id','SR_'+id);\n    setClassAttr(srResult,'SRResult');\n    var srEntry = document.createElement('div');\n    setClassAttr(srEntry,'SREntry');\n    var srLink = document.createElement('a');\n    srLink.setAttribute('id','Item'+e);\n    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');\n    setClassAttr(srLink,'SRSymbol');\n    srLink.innerHTML = searchData[e][1][0];\n    srEntry.appendChild(srLink);\n    if (searchData[e][1].length==2) // single result\n    {\n      srLink.setAttribute('href',searchData[e][1][1][0]);\n      if (searchData[e][1][1][1])\n      {\n       srLink.setAttribute('target','_parent');\n      }\n      var srScope = document.createElement('span');\n      setClassAttr(srScope,'SRScope');\n      srScope.innerHTML = searchData[e][1][1][2];\n      srEntry.appendChild(srScope);\n    }\n    else // multiple results\n    {\n      srLink.setAttribute('href','javascript:searchResults.Toggle(\"SR_'+id+'\")');\n      var srChildren = document.createElement('div');\n      setClassAttr(srChildren,'SRChildren');\n      for (var c=0; c<searchData[e][1].length-1; c++)\n      {\n        var srChild = document.createElement('a');\n        srChild.setAttribute('id','Item'+e+'_c'+c);\n        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');\n        setClassAttr(srChild,'SRScope');\n        srChild.setAttribute('href',searchData[e][1][c+1][0]);\n        if (searchData[e][1][c+1][1])\n        {\n         srChild.setAttribute('target','_parent');\n        }\n        srChild.innerHTML = searchData[e][1][c+1][2];\n        srChildren.appendChild(srChild);\n      }\n      srEntry.appendChild(srChildren);\n    }\n    srResult.appendChild(srEntry);\n    results.appendChild(srResult);\n  }\n}\n\nfunction init_search()\n{\n  var results = document.getElementById(\"MSearchSelectWindow\");\n  for (var key in indexSectionLabels)\n  {\n    var link = document.createElement('a');\n    link.setAttribute('class','SelectItem');\n    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');\n    link.href='javascript:void(0)';\n    link.innerHTML='<span class=\"SelectionMark\">&#160;</span>'+indexSectionLabels[key];\n    results.appendChild(link);\n  }\n  searchBox.OnSelectItem(0);\n}\n\n"
  },
  {
    "path": "website/static/docs/en/html/search/searchdata.js",
    "content": "var indexSectionsWithContent =\n{\n  0: \"abcdefghiklmnopqrstuvwz~\",\n  1: \"adefmnpqv\",\n  2: \"f\",\n  3: \"adfmpqruv\",\n  4: \"abcdefghiklmnopqrstuvwz~\",\n  5: \"abcdeghiklmnopqrstvw\",\n  6: \"ir\",\n  7: \"elm\",\n  8: \"chlnsw\",\n  9: \"flms\"\n};\n\nvar indexSectionNames =\n{\n  0: \"all\",\n  1: \"classes\",\n  2: \"namespaces\",\n  3: \"files\",\n  4: \"functions\",\n  5: \"variables\",\n  6: \"typedefs\",\n  7: \"enums\",\n  8: \"enumvalues\",\n  9: \"defines\"\n};\n\nvar indexSectionLabels =\n{\n  0: \"All\",\n  1: \"Classes\",\n  2: \"Namespaces\",\n  3: \"Files\",\n  4: \"Functions\",\n  5: \"Variables\",\n  6: \"Typedefs\",\n  7: \"Enumerations\",\n  8: \"Enumerator\",\n  9: \"Macros\"\n};\n\n"
  },
  {
    "path": "website/static/docs/en/html/search/typedefs_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"typedefs_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/typedefs_0.js",
    "content": "var searchData=\n[\n  ['id_5ftype',['id_type',['../namespacefasttext.html#a6778f74ca8c360ba917216cb7fcbf497',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/typedefs_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"typedefs_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/typedefs_1.js",
    "content": "var searchData=\n[\n  ['real',['real',['../namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3',1,'fasttext']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_0.js",
    "content": "var searchData=\n[\n  ['args_5f',['args_',['../classfasttext_1_1Dictionary.html#a6deee7ff65d22fc2509702dcc48bb889',1,'fasttext::Dictionary::args_()'],['../classfasttext_1_1FastText.html#adb5bfe8d98e11ae5dd3498f9ee4829ee',1,'fasttext::FastText::args_()'],['../classfasttext_1_1Model.html#a76314e94e2582e9e2160bcfd9c75ba99',1,'fasttext::Model::args_()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_1.js",
    "content": "var searchData=\n[\n  ['binary',['binary',['../structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda',1,'fasttext::Node']]],\n  ['bow',['BOW',['../classfasttext_1_1Dictionary.html#a1024c006f9f04d04653ea529f33888ec',1,'fasttext::Dictionary']]],\n  ['bucket',['bucket',['../classfasttext_1_1Args.html#a5534e863c25fa270fd0e27792723f6cb',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_10.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_10.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_10.js",
    "content": "var searchData=\n[\n  ['saveoutput',['saveOutput',['../classfasttext_1_1Args.html#a31f3ec7d9d592e40c1c64f7469f55d72',1,'fasttext::Args']]],\n  ['seed_5f',['seed_',['../classfasttext_1_1ProductQuantizer.html#ae71f8417a9265bdee493edfa6139d757',1,'fasttext::ProductQuantizer']]],\n  ['size_5f',['size_',['../classfasttext_1_1Dictionary.html#a1a9a71e671291ed095b84fa5457bddb3',1,'fasttext::Dictionary']]],\n  ['start',['start',['../classfasttext_1_1FastText.html#a70fdc2b9419ebdb3a3adb582b713ecce',1,'fasttext::FastText']]],\n  ['subwords',['subwords',['../structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b',1,'fasttext::entry']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_11.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_11.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_11.js",
    "content": "var searchData=\n[\n  ['t',['t',['../classfasttext_1_1Args.html#afd2a262e8e1bbf6d58aa4fe6ae44d7e0',1,'fasttext::Args']]],\n  ['t_5flog',['t_log',['../classfasttext_1_1Model.html#a790013d8e68ed70db7074c9d3e262170',1,'fasttext::Model']]],\n  ['t_5fsigmoid',['t_sigmoid',['../classfasttext_1_1Model.html#a8df9424c08479931b6351844be3bd090',1,'fasttext::Model']]],\n  ['test',['test',['../classfasttext_1_1Args.html#ade3949381170993298b7541f1986d101',1,'fasttext::Args']]],\n  ['thread',['thread',['../classfasttext_1_1Args.html#a97d357a5d64c7826b97fb8860adf8567',1,'fasttext::Args']]],\n  ['tokencount',['tokenCount',['../classfasttext_1_1FastText.html#af34de232baec78782ede73041209dd7b',1,'fasttext::FastText']]],\n  ['tree',['tree',['../classfasttext_1_1Model.html#a53a03f49121369e4100ceb6ab06f178a',1,'fasttext::Model']]],\n  ['type',['type',['../structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d',1,'fasttext::entry']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_12.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_12.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_12.js",
    "content": "var searchData=\n[\n  ['verbose',['verbose',['../classfasttext_1_1Args.html#a8e6e64c0bece5cce5cee420ed8f98f81',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_13.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_13.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_13.js",
    "content": "var searchData=\n[\n  ['wi_5f',['wi_',['../classfasttext_1_1Model.html#ae7c72e4f6b9fda134708d08efb0170e2',1,'fasttext::Model']]],\n  ['wo_5f',['wo_',['../classfasttext_1_1Model.html#ad6b3771605106e55bb132be316ec34b9',1,'fasttext::Model']]],\n  ['word',['word',['../structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085',1,'fasttext::entry']]],\n  ['word2int_5f',['word2int_',['../classfasttext_1_1Dictionary.html#a3112f6337782249ffdfb4801363c5d7c',1,'fasttext::Dictionary']]],\n  ['wordngrams',['wordNgrams',['../classfasttext_1_1Args.html#a1386da6e5bb230bc10f86095b7ce3beb',1,'fasttext::Args']]],\n  ['words_5f',['words_',['../classfasttext_1_1Dictionary.html#aa57c616c7bff0be7d9ac40b79bc7b2a7',1,'fasttext::Dictionary']]],\n  ['ws',['ws',['../classfasttext_1_1Args.html#ada209739bcfab2a6ac19a4deebbf901f',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_2.js",
    "content": "var searchData=\n[\n  ['centroids_5f',['centroids_',['../classfasttext_1_1ProductQuantizer.html#a56ed1ae67f47e95f2d1f4c6146d4913a',1,'fasttext::ProductQuantizer']]],\n  ['codes',['codes',['../classfasttext_1_1Model.html#ab6675d265df22787dfa9835196300d3b',1,'fasttext::Model']]],\n  ['codes_5f',['codes_',['../classfasttext_1_1QMatrix.html#acc957d3d66b58cb9381f6a0556096c93',1,'fasttext::QMatrix']]],\n  ['codesize_5f',['codesize_',['../classfasttext_1_1QMatrix.html#a4a69f60ba96c0b1a9da22c3951eca759',1,'fasttext::QMatrix']]],\n  ['count',['count',['../structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a',1,'fasttext::entry::count()'],['../structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118',1,'fasttext::Node::count()']]],\n  ['cutoff',['cutoff',['../classfasttext_1_1Args.html#aecc2b6243e3fa7c8da1b6d1205da8df0',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_3.js",
    "content": "var searchData=\n[\n  ['data_5f',['data_',['../classfasttext_1_1Matrix.html#a3a63d6e3e3db63e5f756bbc4692a46ae',1,'fasttext::Matrix::data_()'],['../classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e',1,'fasttext::Vector::data_()']]],\n  ['dict_5f',['dict_',['../classfasttext_1_1FastText.html#a2f5648d532a7ff4f46ac425197082422',1,'fasttext::FastText']]],\n  ['dim',['dim',['../classfasttext_1_1Args.html#a76595eefd3fcfd980d1d4d2fa57dbaf3',1,'fasttext::Args']]],\n  ['dim_5f',['dim_',['../classfasttext_1_1ProductQuantizer.html#afdeec3948e983b1f3e1e36292153e300',1,'fasttext::ProductQuantizer']]],\n  ['dsub',['dsub',['../classfasttext_1_1Args.html#a7ee03404aa6c513ee8cc4b07715977c5',1,'fasttext::Args']]],\n  ['dsub_5f',['dsub_',['../classfasttext_1_1ProductQuantizer.html#a9221f241be27487c671bbbba7a84b389',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_4.js",
    "content": "var searchData=\n[\n  ['eos',['EOS',['../classfasttext_1_1Dictionary.html#ab2661682cbe4837eb826cff941447086',1,'fasttext::Dictionary']]],\n  ['eow',['EOW',['../classfasttext_1_1Dictionary.html#a9330bf13a50dea1a84545a5eed943e7b',1,'fasttext::Dictionary']]],\n  ['epoch',['epoch',['../classfasttext_1_1Args.html#a7b95ffbf446a4f99636051d720ef7815',1,'fasttext::Args']]],\n  ['eps_5f',['eps_',['../classfasttext_1_1ProductQuantizer.html#a2334f23eb94911fa4b528a584eb7f7e4',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_5.js",
    "content": "var searchData=\n[\n  ['grad_5f',['grad_',['../classfasttext_1_1Model.html#a79bd4bcbd2e6f10c5483249dfea74e97',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_6.js",
    "content": "var searchData=\n[\n  ['hidden_5f',['hidden_',['../classfasttext_1_1Model.html#a31e9eee86f238bd2962569be67444e79',1,'fasttext::Model']]],\n  ['hsz_5f',['hsz_',['../classfasttext_1_1Model.html#a0b7f9ccdcdb6e44c0515b46af829bc19',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_7.js",
    "content": "var searchData=\n[\n  ['input',['input',['../classfasttext_1_1Args.html#a6377f6e903dd4f991ffd477a7a4392dd',1,'fasttext::Args']]],\n  ['input_5f',['input_',['../classfasttext_1_1FastText.html#aa25683f12eed057c159fd11fd3a55efb',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_8.js",
    "content": "var searchData=\n[\n  ['ksub_5f',['ksub_',['../classfasttext_1_1ProductQuantizer.html#afa68c0f82fab09a93c2024a4dceecdf7',1,'fasttext::ProductQuantizer']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_9.js",
    "content": "var searchData=\n[\n  ['label',['label',['../classfasttext_1_1Args.html#a1c072949833ab403ef53184dcb77b642',1,'fasttext::Args']]],\n  ['lastdsub_5f',['lastdsub_',['../classfasttext_1_1ProductQuantizer.html#ae79be52ccbb6230ce129234e150bc826',1,'fasttext::ProductQuantizer']]],\n  ['left',['left',['../structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1',1,'fasttext::Node']]],\n  ['loss',['loss',['../classfasttext_1_1Args.html#a02be205f9a7c002aad68924f426b7290',1,'fasttext::Args']]],\n  ['loss_5f',['loss_',['../classfasttext_1_1Model.html#a3cc48ada470c99ef69840cf79967616e',1,'fasttext::Model']]],\n  ['lr',['lr',['../classfasttext_1_1Args.html#ad6f86c95de9402344106570e6a917445',1,'fasttext::Args']]],\n  ['lrupdaterate',['lrUpdateRate',['../classfasttext_1_1Args.html#a66876acfb52e46dc166b77d7db15889d',1,'fasttext::Args']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_a.js",
    "content": "var searchData=\n[\n  ['m_5f',['m_',['../classfasttext_1_1Matrix.html#adbdd245dfc806fbbbef33a07e4805084',1,'fasttext::Matrix::m_()'],['../classfasttext_1_1QMatrix.html#ad2457490bb9a531740187fffb63cace2',1,'fasttext::QMatrix::m_()'],['../classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491',1,'fasttext::Vector::m_()']]],\n  ['max_5fline_5fsize',['MAX_LINE_SIZE',['../classfasttext_1_1Dictionary.html#a9ec24042441fb418a4c3d10b61357933',1,'fasttext::Dictionary']]],\n  ['max_5fpoints_5f',['max_points_',['../classfasttext_1_1ProductQuantizer.html#a38780ae9c1997722683bb43d55ece633',1,'fasttext::ProductQuantizer']]],\n  ['max_5fpoints_5fper_5fcluster_5f',['max_points_per_cluster_',['../classfasttext_1_1ProductQuantizer.html#ad439c3fefe554fa05f2b1d06ddcd77b6',1,'fasttext::ProductQuantizer']]],\n  ['max_5fvocab_5fsize',['MAX_VOCAB_SIZE',['../classfasttext_1_1Dictionary.html#ac12687ea2998c3f9ec507d73896295c7',1,'fasttext::Dictionary']]],\n  ['maxn',['maxn',['../classfasttext_1_1Args.html#a32da43d82eb53a6ba11d39178e86bda9',1,'fasttext::Args']]],\n  ['mincount',['minCount',['../classfasttext_1_1Args.html#ac3ad48abd87d82df89272e19242558a5',1,'fasttext::Args']]],\n  ['mincountlabel',['minCountLabel',['../classfasttext_1_1Args.html#a831335fce23004ac9dcb823049d76a1b',1,'fasttext::Args']]],\n  ['minn',['minn',['../classfasttext_1_1Args.html#a7f2b387a9b29fa1180e143b01dd365be',1,'fasttext::Args']]],\n  ['model',['model',['../classfasttext_1_1Args.html#afaf1d8872c58e7cb90e2ae3213f15f35',1,'fasttext::Args']]],\n  ['model_5f',['model_',['../classfasttext_1_1FastText.html#a4b599ce1e4fa1dedae97bd7fad225cb8',1,'fasttext::FastText']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_b.js",
    "content": "var searchData=\n[\n  ['n_5f',['n_',['../classfasttext_1_1Matrix.html#aeeddaea318709ea37127caae30194ff3',1,'fasttext::Matrix::n_()'],['../classfasttext_1_1QMatrix.html#a54082c819b9939e2d49fc0733a609cea',1,'fasttext::QMatrix::n_()']]],\n  ['nbits_5f',['nbits_',['../classfasttext_1_1ProductQuantizer.html#ac44db00342a54cb05df9d0c136a8633c',1,'fasttext::ProductQuantizer']]],\n  ['neg',['neg',['../classfasttext_1_1Args.html#a9f11afb2ec9b096e465149fb59153b30',1,'fasttext::Args']]],\n  ['negative_5ftable_5fsize',['NEGATIVE_TABLE_SIZE',['../classfasttext_1_1Model.html#ab8e5d608cd0338d1dc2e2b2eeaed751c',1,'fasttext::Model']]],\n  ['negatives',['negatives',['../classfasttext_1_1Model.html#a082187d7f01c243f296084878ea0e0f1',1,'fasttext::Model']]],\n  ['negpos',['negpos',['../classfasttext_1_1Model.html#afaf1104f9e1c382c3eb30ca41311e84f',1,'fasttext::Model']]],\n  ['nexamples_5f',['nexamples_',['../classfasttext_1_1Model.html#aeec9f08e7775bfcab322960fc80d7621',1,'fasttext::Model']]],\n  ['niter_5f',['niter_',['../classfasttext_1_1ProductQuantizer.html#afa968d226983fbebfd2bb9d80bf6571f',1,'fasttext::ProductQuantizer']]],\n  ['nlabels_5f',['nlabels_',['../classfasttext_1_1Dictionary.html#a875bb508d2a202b229e97e8295721f2c',1,'fasttext::Dictionary']]],\n  ['norm_5fcodes_5f',['norm_codes_',['../classfasttext_1_1QMatrix.html#a17f22153d042c64052a3468faec70fce',1,'fasttext::QMatrix']]],\n  ['npq_5f',['npq_',['../classfasttext_1_1QMatrix.html#a8203216a4cb2b721697f7dc2b509f25a',1,'fasttext::QMatrix']]],\n  ['nsubq_5f',['nsubq_',['../classfasttext_1_1ProductQuantizer.html#a1e09b5c96869b0b4758348b976152309',1,'fasttext::ProductQuantizer']]],\n  ['ntokens_5f',['ntokens_',['../classfasttext_1_1Dictionary.html#a9b92bc5d615b81df69f035448d329108',1,'fasttext::Dictionary']]],\n  ['nwords_5f',['nwords_',['../classfasttext_1_1Dictionary.html#a534f33c9e34ed5185ea2a050d1140c62',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_c.js",
    "content": "var searchData=\n[\n  ['osz_5f',['osz_',['../classfasttext_1_1Model.html#a39799429dd196a7ec7e4bdee63087751',1,'fasttext::Model']]],\n  ['output',['output',['../classfasttext_1_1Args.html#a3b22b477737f538801682c85fd5b835d',1,'fasttext::Args']]],\n  ['output_5f',['output_',['../classfasttext_1_1FastText.html#a48ba03fda3c2cceef301b24b5a2c2b38',1,'fasttext::FastText::output_()'],['../classfasttext_1_1Model.html#a845160e4cdb0e8c17b74f269563dc71c',1,'fasttext::Model::output_()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_d.js",
    "content": "var searchData=\n[\n  ['parent',['parent',['../structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09',1,'fasttext::Node']]],\n  ['paths',['paths',['../classfasttext_1_1Model.html#a0ff68cfe9333feff1f8914f3787b1b5f',1,'fasttext::Model']]],\n  ['pdiscard_5f',['pdiscard_',['../classfasttext_1_1Dictionary.html#a51554de7a2f0e807e931febc24bfef57',1,'fasttext::Dictionary']]],\n  ['pq_5f',['pq_',['../classfasttext_1_1QMatrix.html#a6c62644a138ed88863088dcdeb32dbd7',1,'fasttext::QMatrix']]],\n  ['pretrainedvectors',['pretrainedVectors',['../classfasttext_1_1Args.html#aef35433948eb9201cd780276150edaf0',1,'fasttext::Args']]],\n  ['pruneidx_5f',['pruneidx_',['../classfasttext_1_1Dictionary.html#af0b15349507137afbb934dfb07555921',1,'fasttext::Dictionary']]],\n  ['pruneidx_5fsize_5f',['pruneidx_size_',['../classfasttext_1_1Dictionary.html#aa72fbf247e76df128e3e324388963dab',1,'fasttext::Dictionary']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_e.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_e.js",
    "content": "var searchData=\n[\n  ['qinput_5f',['qinput_',['../classfasttext_1_1FastText.html#aa4f1d5f2269feee25ae8119bc8e778c4',1,'fasttext::FastText']]],\n  ['qnorm',['qnorm',['../classfasttext_1_1Args.html#a1926c846b30e99f825a90948faba145f',1,'fasttext::Args']]],\n  ['qnorm_5f',['qnorm_',['../classfasttext_1_1QMatrix.html#aadc6e4d399442555f3c2993b97285143',1,'fasttext::QMatrix']]],\n  ['qout',['qout',['../classfasttext_1_1Args.html#ac689f4264b24814541bee8b5cf3abbcc',1,'fasttext::Args']]],\n  ['qoutput_5f',['qoutput_',['../classfasttext_1_1FastText.html#a62ad59060370a16588e407ce3ffebfaa',1,'fasttext::FastText']]],\n  ['quant_5f',['quant_',['../classfasttext_1_1FastText.html#aeb75b28c20c01110cfcf807a518076c8',1,'fasttext::FastText::quant_()'],['../classfasttext_1_1Model.html#a0d3b51a1c171314b879aae52c3717a43',1,'fasttext::Model::quant_()']]],\n  ['qwi_5f',['qwi_',['../classfasttext_1_1Model.html#ac9524ea5200abefdd2d83e29ffaa9693',1,'fasttext::Model']]],\n  ['qwo_5f',['qwo_',['../classfasttext_1_1Model.html#a4ee087454e830b18c22a59ae9bb6fcf1',1,'fasttext::Model']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html><head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_f.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\"><!--\ncreateResults();\n--></script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\"><!--\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\n--></script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/search/variables_f.js",
    "content": "var searchData=\n[\n  ['retrain',['retrain',['../classfasttext_1_1Args.html#a3bfb953b0cfe153207ad75c757af292b',1,'fasttext::Args']]],\n  ['right',['right',['../structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366',1,'fasttext::Node']]],\n  ['rng',['rng',['../classfasttext_1_1Model.html#a7e27d2fd2800dcee09ea8101fea49676',1,'fasttext::Model::rng()'],['../classfasttext_1_1ProductQuantizer.html#af5755b1c5ed3128430f1c1de2c03ac26',1,'fasttext::ProductQuantizer::rng()']]]\n];\n"
  },
  {
    "path": "website/static/docs/en/html/structfasttext_1_1Node-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('structfasttext_1_1Node.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Node Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">binary</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">count</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">left</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">parent</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">right</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">fasttext::Node</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/structfasttext_1_1Node.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::Node Struct Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('structfasttext_1_1Node.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-attribs\">Public Attributes</a> &#124;\n<a href=\"structfasttext_1_1Node-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::Node Struct Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"model_8h_source.html\">model.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-attribs\"></a>\nPublic Attributes</h2></td></tr>\n<tr class=\"memitem:a57d838e16a5dbb34aa0548a20843cf09\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\">parent</a></td></tr>\n<tr class=\"separator:a57d838e16a5dbb34aa0548a20843cf09\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a44f47a277a7fc982be30569befc7d8c1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\">left</a></td></tr>\n<tr class=\"separator:a44f47a277a7fc982be30569befc7d8c1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8a02d78386d6837a20858269bf9c6366\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int32_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\">right</a></td></tr>\n<tr class=\"separator:a8a02d78386d6837a20858269bf9c6366\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a76430b0ffbb3b8f217435b11e4f51118\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\">count</a></td></tr>\n<tr class=\"separator:a76430b0ffbb3b8f217435b11e4f51118\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a567bed8e85aa54f73371420f1b42dcda\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\">binary</a></td></tr>\n<tr class=\"separator:a567bed8e85aa54f73371420f1b42dcda\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a567bed8e85aa54f73371420f1b42dcda\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a567bed8e85aa54f73371420f1b42dcda\">&#9670;&nbsp;</a></span>binary</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool fasttext::Node::binary</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a76430b0ffbb3b8f217435b11e4f51118\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a76430b0ffbb3b8f217435b11e4f51118\">&#9670;&nbsp;</a></span>count</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::Node::count</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a44f47a277a7fc982be30569befc7d8c1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a44f47a277a7fc982be30569befc7d8c1\">&#9670;&nbsp;</a></span>left</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Node::left</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a57d838e16a5dbb34aa0548a20843cf09\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a57d838e16a5dbb34aa0548a20843cf09\">&#9670;&nbsp;</a></span>parent</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Node::parent</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8a02d78386d6837a20858269bf9c6366\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8a02d78386d6837a20858269bf9c6366\">&#9670;&nbsp;</a></span>right</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int32_t fasttext::Node::right</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this struct was generated from the following file:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"model_8h_source.html\">model.h</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"structfasttext_1_1Node.html\">Node</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/structfasttext_1_1Node.js",
    "content": "var structfasttext_1_1Node =\n[\n    [ \"binary\", \"structfasttext_1_1Node.html#a567bed8e85aa54f73371420f1b42dcda\", null ],\n    [ \"count\", \"structfasttext_1_1Node.html#a76430b0ffbb3b8f217435b11e4f51118\", null ],\n    [ \"left\", \"structfasttext_1_1Node.html#a44f47a277a7fc982be30569befc7d8c1\", null ],\n    [ \"parent\", \"structfasttext_1_1Node.html#a57d838e16a5dbb34aa0548a20843cf09\", null ],\n    [ \"right\", \"structfasttext_1_1Node.html#a8a02d78386d6837a20858269bf9c6366\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/structfasttext_1_1entry-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('structfasttext_1_1entry.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::entry Member List</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"structfasttext_1_1entry.html\">fasttext::entry</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">count</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">fasttext::entry</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">subwords</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">fasttext::entry</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">type</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">fasttext::entry</a></td><td class=\"entry\"></td></tr>\n  <tr><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">word</a></td><td class=\"entry\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">fasttext::entry</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/structfasttext_1_1entry.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: fasttext::entry Struct Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('structfasttext_1_1entry.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-attribs\">Public Attributes</a> &#124;\n<a href=\"structfasttext_1_1entry-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">fasttext::entry Struct Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><code>#include &lt;<a class=\"el\" href=\"dictionary_8h_source.html\">dictionary.h</a>&gt;</code></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"pub-attribs\"></a>\nPublic Attributes</h2></td></tr>\n<tr class=\"memitem:ae22a7e78ad207d2f90086a48a6f0d085\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\">word</a></td></tr>\n<tr class=\"separator:ae22a7e78ad207d2f90086a48a6f0d085\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab1f793678a1669b826d48f8b9ddcee6a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\">count</a></td></tr>\n<tr class=\"separator:ab1f793678a1669b826d48f8b9ddcee6a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a345f716349f28b9a1a13e083b1cdb92d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\">type</a></td></tr>\n<tr class=\"separator:a345f716349f28b9a1a13e083b1cdb92d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0487be0781a1d71b9bb2a9c039c4be9b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::vector&lt; int32_t &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\">subwords</a></td></tr>\n<tr class=\"separator:a0487be0781a1d71b9bb2a9c039c4be9b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"ab1f793678a1669b826d48f8b9ddcee6a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab1f793678a1669b826d48f8b9ddcee6a\">&#9670;&nbsp;</a></span>count</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int64_t fasttext::entry::count</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0487be0781a1d71b9bb2a9c039c4be9b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0487be0781a1d71b9bb2a9c039c4be9b\">&#9670;&nbsp;</a></span>subwords</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::vector&lt;int32_t&gt; fasttext::entry::subwords</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a345f716349f28b9a1a13e083b1cdb92d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a345f716349f28b9a1a13e083b1cdb92d\">&#9670;&nbsp;</a></span>type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespacefasttext.html#a532eedeee97e8d66a96b519d165f4eb7\">entry_type</a> fasttext::entry::type</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae22a7e78ad207d2f90086a48a6f0d085\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae22a7e78ad207d2f90086a48a6f0d085\">&#9670;&nbsp;</a></span>word</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">std::string fasttext::entry::word</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this struct was generated from the following file:<ul>\n<li>/data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/<a class=\"el\" href=\"dictionary_8h_source.html\">dictionary.h</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></li><li class=\"navelem\"><a class=\"el\" href=\"structfasttext_1_1entry.html\">entry</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/structfasttext_1_1entry.js",
    "content": "var structfasttext_1_1entry =\n[\n    [ \"count\", \"structfasttext_1_1entry.html#ab1f793678a1669b826d48f8b9ddcee6a\", null ],\n    [ \"subwords\", \"structfasttext_1_1entry.html#a0487be0781a1d71b9bb2a9c039c4be9b\", null ],\n    [ \"type\", \"structfasttext_1_1entry.html#a345f716349f28b9a1a13e083b1cdb92d\", null ],\n    [ \"word\", \"structfasttext_1_1entry.html#ae22a7e78ad207d2f90086a48a6f0d085\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/tabs.css",
    "content": ".sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:\"\\00a0\";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url(\"tab_b.png\")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:\"Lucida Grande\",\"Geneva\",\"Helvetica\",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url(\"tab_a.png\");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url(\"tab_a.png\");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url(\"tab_b.png\");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url(\"tab_s.png\");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url(\"tab_a.png\");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url(\"tab_a.png\");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url(\"tab_b.png\")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}"
  },
  {
    "path": "website/static/docs/en/html/utils_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/utils.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('utils_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">utils.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"utils_8h_source.html\">utils.h</a>&quot;</code><br />\n<code>#include &lt;ios&gt;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:namespacefasttext_1_1utils\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html\">fasttext::utils</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a2d7a0a4c572dbfa5458ca782355c35aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">fasttext::utils::size</a> (std::ifstream &amp;ifs)</td></tr>\n<tr class=\"separator:a2d7a0a4c572dbfa5458ca782355c35aa\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9d7d5c4b31752c7fe0bf71970203f82d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">fasttext::utils::seek</a> (std::ifstream &amp;ifs, int64_t pos)</td></tr>\n<tr class=\"separator:a9d7d5c4b31752c7fe0bf71970203f82d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"utils_8cc.html\">utils.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/utils_8cc.js",
    "content": "var utils_8cc =\n[\n    [ \"seek\", \"utils_8cc.html#a9d7d5c4b31752c7fe0bf71970203f82d\", null ],\n    [ \"size\", \"utils_8cc.html#a2d7a0a4c572dbfa5458ca782355c35aa\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/utils_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/utils.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('utils_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">utils.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;fstream&gt;</code><br />\n</div>\n<p><a href=\"utils_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:namespacefasttext_1_1utils\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html\">fasttext::utils</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a2d7a0a4c572dbfa5458ca782355c35aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int64_t&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">fasttext::utils::size</a> (std::ifstream &amp;ifs)</td></tr>\n<tr class=\"separator:a2d7a0a4c572dbfa5458ca782355c35aa\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9d7d5c4b31752c7fe0bf71970203f82d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">fasttext::utils::seek</a> (std::ifstream &amp;ifs, int64_t pos)</td></tr>\n<tr class=\"separator:a9d7d5c4b31752c7fe0bf71970203f82d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"utils_8h.html\">utils.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/utils_8h.js",
    "content": "var utils_8h =\n[\n    [ \"seek\", \"utils_8h.html#a9d7d5c4b31752c7fe0bf71970203f82d\", null ],\n    [ \"size\", \"utils_8h.html#a2d7a0a4c572dbfa5458ca782355c35aa\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/utils_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/utils.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('utils_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">utils.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"utils_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_UTILS_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_UTILS_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;fstream&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;</div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;</div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;<span class=\"keyword\">namespace </span>utils {</div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;</div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;  int64_t <a class=\"code\" href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">size</a>(std::ifstream&amp;);</div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;  <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">seek</a>(std::ifstream&amp;, int64_t);</div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;}</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;</div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\">   23</span>&#160;}</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_1_1utils_html_a2d7a0a4c572dbfa5458ca782355c35aa\"><div class=\"ttname\"><a href=\"namespacefasttext_1_1utils.html#a2d7a0a4c572dbfa5458ca782355c35aa\">fasttext::utils::size</a></div><div class=\"ttdeci\">int64_t size(std::ifstream &amp;ifs)</div><div class=\"ttdef\"><b>Definition:</b> utils.cc:18</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_1_1utils_html_a9d7d5c4b31752c7fe0bf71970203f82d\"><div class=\"ttname\"><a href=\"namespacefasttext_1_1utils.html#a9d7d5c4b31752c7fe0bf71970203f82d\">fasttext::utils::seek</a></div><div class=\"ttdeci\">void seek(std::ifstream &amp;ifs, int64_t pos)</div><div class=\"ttdef\"><b>Definition:</b> utils.cc:23</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"utils_8h.html\">utils.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/vector_8cc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/vector.cc File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('vector_8cc.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">vector.cc File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &quot;<a class=\"el\" href=\"vector_8h_source.html\">vector.h</a>&quot;</code><br />\n<code>#include &lt;assert.h&gt;</code><br />\n<code>#include &lt;iomanip&gt;</code><br />\n<code>#include &lt;cmath&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"matrix_8h_source.html\">matrix.h</a>&quot;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"qmatrix_8h_source.html\">qmatrix.h</a>&quot;</code><br />\n</div><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a23eb4596f3beb9859b22cf64a83461d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::ostream &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">fasttext::operator&lt;&lt;</a> (std::ostream &amp;os, const Vector &amp;v)</td></tr>\n<tr class=\"separator:a23eb4596f3beb9859b22cf64a83461d6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"vector_8cc.html\">vector.cc</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/vector_8cc.js",
    "content": "var vector_8cc =\n[\n    [ \"operator<<\", \"vector_8cc.html#a23eb4596f3beb9859b22cf64a83461d6\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/vector_8h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/vector.h File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('vector_8h.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\">\n<div class=\"title\">vector.h File Reference</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><code>#include &lt;cstdint&gt;</code><br />\n<code>#include &lt;ostream&gt;</code><br />\n<code>#include &quot;<a class=\"el\" href=\"real_8h_source.html\">real.h</a>&quot;</code><br />\n</div>\n<p><a href=\"vector_8h_source.html\">Go to the source code of this file.</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespacefasttext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"> &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html\">fasttext</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a23eb4596f3beb9859b22cf64a83461d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::ostream &amp;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">fasttext::operator&lt;&lt;</a> (std::ostream &amp;os, const Vector &amp;v)</td></tr>\n<tr class=\"separator:a23eb4596f3beb9859b22cf64a83461d6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"vector_8h.html\">vector.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/docs/en/html/vector_8h.js",
    "content": "var vector_8h =\n[\n    [ \"Vector\", \"classfasttext_1_1Vector.html\", \"classfasttext_1_1Vector\" ],\n    [ \"operator<<\", \"vector_8h.html#a23eb4596f3beb9859b22cf64a83461d6\", null ]\n];"
  },
  {
    "path": "website/static/docs/en/html/vector_8h_source.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\"/>\n<meta name=\"generator\" content=\"Doxygen 1.8.13\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>fastText: /data/users/cpuhrsch/fbsource/fbcode/deeplearning/fastText/src/vector.h Source File</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\">\n  $(document).ready(initResizable);\n</script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"favicon.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">fastText\n   &#160;<span id=\"projectnumber\">d00d36476b15</span>\n   </div>\n   <div id=\"projectbrief\">Fast text processing tool/library</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.8.13 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search\",false,'Search');\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(document).ready(function(){initNavTree('vector_8h_source.html','');});\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\">\n<div class=\"title\">vector.h</div>  </div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"vector_8h.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a name=\"l00001\"></a><span class=\"lineno\">    1</span>&#160;</div><div class=\"line\"><a name=\"l00010\"></a><span class=\"lineno\">   10</span>&#160;<span class=\"preprocessor\">#ifndef FASTTEXT_VECTOR_H</span></div><div class=\"line\"><a name=\"l00011\"></a><span class=\"lineno\">   11</span>&#160;<span class=\"preprocessor\">#define FASTTEXT_VECTOR_H</span></div><div class=\"line\"><a name=\"l00012\"></a><span class=\"lineno\">   12</span>&#160;</div><div class=\"line\"><a name=\"l00013\"></a><span class=\"lineno\">   13</span>&#160;<span class=\"preprocessor\">#include &lt;cstdint&gt;</span></div><div class=\"line\"><a name=\"l00014\"></a><span class=\"lineno\">   14</span>&#160;<span class=\"preprocessor\">#include &lt;ostream&gt;</span></div><div class=\"line\"><a name=\"l00015\"></a><span class=\"lineno\">   15</span>&#160;</div><div class=\"line\"><a name=\"l00016\"></a><span class=\"lineno\">   16</span>&#160;<span class=\"preprocessor\">#include &quot;<a class=\"code\" href=\"real_8h.html\">real.h</a>&quot;</span></div><div class=\"line\"><a name=\"l00017\"></a><span class=\"lineno\">   17</span>&#160;</div><div class=\"line\"><a name=\"l00018\"></a><span class=\"lineno\">   18</span>&#160;<span class=\"keyword\">namespace </span><a class=\"code\" href=\"namespacefasttext.html\">fasttext</a> {</div><div class=\"line\"><a name=\"l00019\"></a><span class=\"lineno\">   19</span>&#160;</div><div class=\"line\"><a name=\"l00020\"></a><span class=\"lineno\">   20</span>&#160;<span class=\"keyword\">class </span>Matrix;</div><div class=\"line\"><a name=\"l00021\"></a><span class=\"lineno\">   21</span>&#160;<span class=\"keyword\">class </span>QMatrix;</div><div class=\"line\"><a name=\"l00022\"></a><span class=\"lineno\">   22</span>&#160;</div><div class=\"line\"><a name=\"l00023\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Vector.html\">   23</a></span>&#160;<span class=\"keyword\">class </span><a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a> {</div><div class=\"line\"><a name=\"l00024\"></a><span class=\"lineno\">   24</span>&#160;</div><div class=\"line\"><a name=\"l00025\"></a><span class=\"lineno\">   25</span>&#160;  <span class=\"keyword\">public</span>:</div><div class=\"line\"><a name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">   26</a></span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">m_</a>;</div><div class=\"line\"><a name=\"l00027\"></a><span class=\"lineno\"><a class=\"line\" href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">   27</a></span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>* <a class=\"code\" href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">data_</a>;</div><div class=\"line\"><a name=\"l00028\"></a><span class=\"lineno\">   28</span>&#160;</div><div class=\"line\"><a name=\"l00029\"></a><span class=\"lineno\">   29</span>&#160;    <span class=\"keyword\">explicit</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\">Vector</a>(int64_t);</div><div class=\"line\"><a name=\"l00030\"></a><span class=\"lineno\">   30</span>&#160;    <a class=\"code\" href=\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\">~Vector</a>();</div><div class=\"line\"><a name=\"l00031\"></a><span class=\"lineno\">   31</span>&#160;</div><div class=\"line\"><a name=\"l00032\"></a><span class=\"lineno\">   32</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&amp; <a class=\"code\" href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">operator[]</a>(int64_t);</div><div class=\"line\"><a name=\"l00033\"></a><span class=\"lineno\">   33</span>&#160;    <span class=\"keyword\">const</span> <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>&amp; <a class=\"code\" href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">operator[]</a>(int64_t) <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00034\"></a><span class=\"lineno\">   34</span>&#160;</div><div class=\"line\"><a name=\"l00035\"></a><span class=\"lineno\">   35</span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\">size</a>() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00036\"></a><span class=\"lineno\">   36</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\">zero</a>();</div><div class=\"line\"><a name=\"l00037\"></a><span class=\"lineno\">   37</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">mul</a>(<a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00038\"></a><span class=\"lineno\">   38</span>&#160;    <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a> <a class=\"code\" href=\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\">norm</a>() <span class=\"keyword\">const</span>;</div><div class=\"line\"><a name=\"l00039\"></a><span class=\"lineno\">   39</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">addVector</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp; source);</div><div class=\"line\"><a name=\"l00040\"></a><span class=\"lineno\">   40</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">addVector</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00041\"></a><span class=\"lineno\">   41</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">addRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;, int64_t);</div><div class=\"line\"><a name=\"l00042\"></a><span class=\"lineno\">   42</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">addRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a>&amp;, int64_t);</div><div class=\"line\"><a name=\"l00043\"></a><span class=\"lineno\">   43</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">addRow</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;, int64_t, <a class=\"code\" href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">real</a>);</div><div class=\"line\"><a name=\"l00044\"></a><span class=\"lineno\">   44</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">mul</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1QMatrix.html\">QMatrix</a>&amp;, <span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;);</div><div class=\"line\"><a name=\"l00045\"></a><span class=\"lineno\">   45</span>&#160;    <span class=\"keywordtype\">void</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">mul</a>(<span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Matrix.html\">Matrix</a>&amp;, <span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;);</div><div class=\"line\"><a name=\"l00046\"></a><span class=\"lineno\">   46</span>&#160;    int64_t <a class=\"code\" href=\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\">argmax</a>();</div><div class=\"line\"><a name=\"l00047\"></a><span class=\"lineno\">   47</span>&#160;};</div><div class=\"line\"><a name=\"l00048\"></a><span class=\"lineno\">   48</span>&#160;</div><div class=\"line\"><a name=\"l00049\"></a><span class=\"lineno\">   49</span>&#160;std::ostream&amp; <a class=\"code\" href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">operator&lt;&lt;</a>(std::ostream&amp;, <span class=\"keyword\">const</span> <a class=\"code\" href=\"classfasttext_1_1Vector.html\">Vector</a>&amp;);</div><div class=\"line\"><a name=\"l00050\"></a><span class=\"lineno\">   50</span>&#160;</div><div class=\"line\"><a name=\"l00051\"></a><span class=\"lineno\">   51</span>&#160;}</div><div class=\"line\"><a name=\"l00052\"></a><span class=\"lineno\">   52</span>&#160;</div><div class=\"line\"><a name=\"l00053\"></a><span class=\"lineno\">   53</span>&#160;<span class=\"preprocessor\">#endif</span></div><div class=\"ttc\" id=\"classfasttext_1_1Vector_html_af0cd17b1bbdf212780c31e427e982793\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#af0cd17b1bbdf212780c31e427e982793\">fasttext::Vector::zero</a></div><div class=\"ttdeci\">void zero()</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:35</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_af3e8aa155da430d0911896d53db6789d\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#af3e8aa155da430d0911896d53db6789d\">fasttext::Vector::size</a></div><div class=\"ttdeci\">int64_t size() const</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:31</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_ad60a80620d695fc64062b9b493bc6232\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#ad60a80620d695fc64062b9b493bc6232\">fasttext::Vector::operator[]</a></div><div class=\"ttdeci\">real &amp; operator[](int64_t)</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:120</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html\"><div class=\"ttname\"><a href=\"namespacefasttext.html\">fasttext</a></div><div class=\"ttdef\"><b>Definition:</b> args.cc:17</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html\">fasttext::Vector</a></div><div class=\"ttdef\"><b>Definition:</b> vector.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_ab177f24ed7071636dcd17e90a746dd2e\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#ab177f24ed7071636dcd17e90a746dd2e\">fasttext::Vector::data_</a></div><div class=\"ttdeci\">real * data_</div><div class=\"ttdef\"><b>Definition:</b> vector.h:27</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_a5ca06ee0880c24409faad3e69a920d9a\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#a5ca06ee0880c24409faad3e69a920d9a\">fasttext::Vector::argmax</a></div><div class=\"ttdeci\">int64_t argmax()</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:108</div></div>\n<div class=\"ttc\" id=\"real_8h_html\"><div class=\"ttname\"><a href=\"real_8h.html\">real.h</a></div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_a94d369014b965b42ead2deb5e3fa0b11\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#a94d369014b965b42ead2deb5e3fa0b11\">fasttext::Vector::addRow</a></div><div class=\"ttdeci\">void addRow(const Matrix &amp;, int64_t)</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:69</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_ab7f9177915b3d3837213abb15de9b939\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#ab7f9177915b3d3837213abb15de9b939\">fasttext::Vector::Vector</a></div><div class=\"ttdeci\">Vector(int64_t)</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:22</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_af14f0011942b0a98562ca2f677aa4395\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#af14f0011942b0a98562ca2f677aa4395\">fasttext::Vector::mul</a></div><div class=\"ttdeci\">void mul(real)</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:49</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a7afdad102f318271c14154b8e65e5ea3\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a7afdad102f318271c14154b8e65e5ea3\">fasttext::real</a></div><div class=\"ttdeci\">float real</div><div class=\"ttdef\"><b>Definition:</b> real.h:15</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Matrix_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1Matrix.html\">fasttext::Matrix</a></div><div class=\"ttdef\"><b>Definition:</b> matrix.h:23</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_a97bc75d46013e08d43881e1ee3725491\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#a97bc75d46013e08d43881e1ee3725491\">fasttext::Vector::m_</a></div><div class=\"ttdeci\">int64_t m_</div><div class=\"ttdef\"><b>Definition:</b> vector.h:26</div></div>\n<div class=\"ttc\" id=\"namespacefasttext_html_a23eb4596f3beb9859b22cf64a83461d6\"><div class=\"ttname\"><a href=\"namespacefasttext.html#a23eb4596f3beb9859b22cf64a83461d6\">fasttext::operator&lt;&lt;</a></div><div class=\"ttdeci\">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const Vector &amp;v)</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:128</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_aedde9ca3a3952dfd54addd21f8a63506\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#aedde9ca3a3952dfd54addd21f8a63506\">fasttext::Vector::~Vector</a></div><div class=\"ttdeci\">~Vector()</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:27</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1QMatrix_html\"><div class=\"ttname\"><a href=\"classfasttext_1_1QMatrix.html\">fasttext::QMatrix</a></div><div class=\"ttdef\"><b>Definition:</b> qmatrix.h:29</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_aa88e78466e3db802c403f6fe13421ff6\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#aa88e78466e3db802c403f6fe13421ff6\">fasttext::Vector::norm</a></div><div class=\"ttdeci\">real norm() const</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:41</div></div>\n<div class=\"ttc\" id=\"classfasttext_1_1Vector_html_aef57a1c3a853b8691f544e9f881a3394\"><div class=\"ttname\"><a href=\"classfasttext_1_1Vector.html#aef57a1c3a853b8691f544e9f881a3394\">fasttext::Vector::addVector</a></div><div class=\"ttdeci\">void addVector(const Vector &amp;source)</div><div class=\"ttdef\"><b>Definition:</b> vector.cc:55</div></div>\n</div><!-- fragment --></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"vector_8h.html\">vector.h</a></li>\n    <li class=\"footer\">Generated by\n    <a href=\"http://www.doxygen.org/index.html\">\n    <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> 1.8.13 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "website/static/fasttext.css",
    "content": ".mainContainer .wrapper a {\n  text-decoration: initial;\n}\n\ndiv.productShowcaseSection {\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\n\n.productShowcaseSection .indexUsers a {\n    max-width: 300px;\n    padding: 0 15 0 15;\n}\n\n.productShowcaseSection h2 {\n  margin-bottom: 10px;\n}\n\n.productShowcaseSection div.container {\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\n\n.productShowcaseSection div.blockElement {\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\n\ndiv.descriptionSection {\n  padding-top: 20px;\n  padding-bottom: 40px;\n}\n\n.descriptionSection p {\n  text-align: left;\n  margin-left: 21.5%;\n  margin-right: 21.5%;\n}\n\n.descriptionSection .container h2 {\n  font-size: 30px;\n}\n\n.descriptionSection .blockImage {\n\t  margin-top: 7%;\n}\n\n/* Social Banner */\n.SocialBanner {\n  font-weight: bold;\n  font-size: 20px;\n  padding: 20px;\n  max-width: 768px;\n  margin: 0 auto;\n  text-align: center;\n}\n\n"
  },
  {
    "path": "website/static/tabber.js",
    "content": "function addLoadEvent(func) {\n  var oldonload = window.onload;\n  if (typeof window.onload != 'function') {\n    window.onload = func;\n  } else {\n    window.onload = function() {\n      if (oldonload) {\n        oldonload();\n      }\n      func();\n    }\n  }\n}\n\n\nfunction tabber(){\n    let navTabs = document.getElementsByClassName(\"nav-tabs\");\n    let selectAll = function(ind){\n        for(let navTab of navTabs){\n            let dom = navTab.childNodes[ind];\n            let old = dom.onclick;\n            dom.onclick = null;\n            dom.click();\n            dom.onclick = old;\n        }\n    }\n    let registerAll = function(){\n        for(let navTab of navTabs){\n            let commandLineTab = navTab.childNodes[0];\n            let pythonTab = navTab.childNodes[1];\n            commandLineTab.onclick = function(){\n                selectAll(0);\n            }\n            pythonTab.onclick = function(){\n                selectAll(1);\n            }\n        }\n    }\n    registerAll();\n};\n\naddLoadEvent(tabber);\n"
  },
  {
    "path": "wikifil.pl",
    "content": "#!/usr/bin/perl\n\n# Program to filter Wikipedia XML dumps to \"clean\" text consisting only of lowercase\n# letters (a-z, converted from A-Z), and spaces (never consecutive).  \n# All other characters are converted to spaces.  Only text which normally appears \n# in the web browser is displayed.  Tables are removed.  Image captions are \n# preserved.  Links are converted to normal text.  Digits are spelled out.\n\n# Written by Matt Mahoney, June 10, 2006.  This program is released to the public domain.\n\n$/=\">\";                     # input record separator\nwhile (<>) {\n  if (/<text /) {$text=1;}  # remove all but between <text> ... </text>\n  if (/#redirect/i) {$text=0;}  # remove #REDIRECT\n  if ($text) {\n\n    # Remove any text not normally visible\n    if (/<\\/text>/) {$text=0;}\n    s/<.*>//;               # remove xml tags\n    s/&amp;/&/g;            # decode URL encoded chars\n    s/&lt;/</g;\n    s/&gt;/>/g;\n    s/<ref[^<]*<\\/ref>//g;  # remove references <ref...> ... </ref>\n    s/<[^>]*>//g;           # remove xhtml tags\n    s/\\[http:[^] ]*/[/g;    # remove normal url, preserve visible text\n    s/\\|thumb//ig;          # remove images links, preserve caption\n    s/\\|left//ig;\n    s/\\|right//ig;\n    s/\\|\\d+px//ig;\n    s/\\[\\[image:[^\\[\\]]*\\|//ig;\n    s/\\[\\[category:([^|\\]]*)[^]]*\\]\\]/[[$1]]/ig;  # show categories without markup\n    s/\\[\\[[a-z\\-]*:[^\\]]*\\]\\]//g;  # remove links to other languages\n    s/\\[\\[[^\\|\\]]*\\|/[[/g;  # remove wiki url, preserve visible text\n    s/\\{\\{[^\\}]*\\}\\}//g;         # remove {{icons}} and {tables}\n    s/\\{[^\\}]*\\}//g;\n    s/\\[//g;                # remove [ and ]\n    s/\\]//g;\n    s/&[^;]*;/ /g;          # remove URL encoded chars\n\n    # convert to lowercase letters and spaces, spell digits\n    $_=\" $_ \";\n    tr/A-Z/a-z/;\n    s/0/ zero /g;\n    s/1/ one /g;\n    s/2/ two /g;\n    s/3/ three /g;\n    s/4/ four /g;\n    s/5/ five /g;\n    s/6/ six /g;\n    s/7/ seven /g;\n    s/8/ eight /g;\n    s/9/ nine /g;\n    tr/a-z/ /cs;\n    chop;\n    print $_;\n  }\n}\n"
  },
  {
    "path": "word-vector-example.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n#\n\nRESULTDIR=result\nDATADIR=data\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nif [ ! -f \"${DATADIR}/fil9\" ]\nthen\n  wget -c http://mattmahoney.net/dc/enwik9.zip -P \"${DATADIR}\"\n  unzip \"${DATADIR}/enwik9.zip\" -d \"${DATADIR}\"\n  perl wikifil.pl \"${DATADIR}/enwik9\" > \"${DATADIR}\"/fil9\nfi\n\nif [ ! -f \"${DATADIR}/rw/rw.txt\" ]\nthen\n  wget -c https://nlp.stanford.edu/~lmthang/morphoNLM/rw.zip -P \"${DATADIR}\"\n  unzip \"${DATADIR}/rw.zip\" -d \"${DATADIR}\"\nfi\n\nmake\n\n./fasttext skipgram -input \"${DATADIR}\"/fil9 -output \"${RESULTDIR}\"/fil9 -lr 0.025 -dim 100 \\\n  -ws 5 -epoch 1 -minCount 5 -neg 5 -loss ns -bucket 2000000 \\\n  -minn 3 -maxn 6 -thread 4 -t 1e-4 -lrUpdateRate 100\n\ncut -f 1,2 \"${DATADIR}\"/rw/rw.txt | awk '{print tolower($0)}' | tr '\\t' '\\n' > \"${DATADIR}\"/queries.txt\n\ncat \"${DATADIR}\"/queries.txt | ./fasttext print-word-vectors \"${RESULTDIR}\"/fil9.bin > \"${RESULTDIR}\"/vectors.txt\n\npython eval.py -m \"${RESULTDIR}\"/vectors.txt -d \"${DATADIR}\"/rw/rw.txt\n"
  }
]