From 90560d7194f3e451ddab9d4033c98d2e6aec977b Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 23 Aug 2015 10:19:23 -0700 Subject: 2062 --- html/014literal_noninteger.cc.html | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'html/014literal_noninteger.cc.html') diff --git a/html/014literal_noninteger.cc.html b/html/014literal_noninteger.cc.html index 8ea14042..eb054c75 100644 --- a/html/014literal_noninteger.cc.html +++ b/html/014literal_noninteger.cc.html @@ -13,14 +13,13 @@ pre { white-space: pre-wrap; font-family: monospace; color: #eeeeee; background-color: #080808; } body { font-family: monospace; color: #eeeeee; background-color: #080808; } * { font-size: 1.05em; } -.traceContains { color: #008000; } -.Constant { color: #00a0a0; } .cSpecial { color: #008000; } -.Normal { color: #eeeeee; background-color: #080808; padding-bottom: 1px; } .Comment { color: #9090ff; } .Delimiter { color: #a04060; } .Special { color: #ff6060; } .Identifier { color: #804000; } +.Constant { color: #00a0a0; } +.traceContains { color: #008000; } --> @@ -42,7 +41,7 @@ recipe main [ +parse: ingredient: {name: "3.14159", properties: ["3.14159": "literal-number"]} :(after "Parsing reagent(string s)") -if (is_noninteger(s)) { +if (is_noninteger(s)) { name = s; types.push_back(0); properties.push_back(pair<string, vector<string> >(name, vector<string>())); @@ -52,15 +51,15 @@ recipe main [ } :(code) -bool is_noninteger(const string& s) { +bool is_noninteger(const string& s) { return s.find_first_not_of("0123456789-.") == string::npos && s.find('.') != string::npos; } -double to_double(string n) { - char* end = NULL; +double to_double(string n) { + char* end = NULL; // safe because string.c_str() is guaranteed to be null-terminated - double result = strtod(n.c_str(), &end); + double result = strtod(n.c_str(), &end); assert(*end == '\0'); return result; } -- cgit 1.4.1-2-gfad0 >45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
                               ━━━━━━━━━
                                 OCTANS

                                Andinus
                               ━━━━━━━━━


Table of Contents
─────────────────

1. Demo
2. Documentation
.. 1. Implementation
.. 2. Options


Octans is a program to solve Algot's Wordplay (Wordsearch) puzzles.

• Website: <https://andinus.nand.sh/octans>
• Source: <https://git.tilde.institute/andinus/octans>
• GitHub: <https://github.com/andinus/octans>


1 Demo
══════

  This was recorded with `asciinema(1)'.

  [https://asciinema.org/a/384464.png]

  ⁃ Octans 2020-01-14: <https://asciinema.org/a/384464>
  ⁃ alt-link (download): <https://andinus.nand.sh/static/octans>


[https://asciinema.org/a/384464.png] <https://asciinema.org/a/384464>


2 Documentation
═══════════════

2.1 Implementation
──────────────────

  Initially it went over the list of words & checked if they exist in
  the grid. This was very slow.

  Currently it walks the grid & checks if the current string exist in
  the dictionary. This is faster for these reasons:

  • The dictionary is sorted, we perform binary range search on the
    dictionary to return the list of all words that start with specific
    string.
  • Starting positions are limited.

  If the dictionary wasn't sorted then this probably would've been
  slower than previous implementation.


2.2 Options
───────────

2.2.1 dict
╌╌╌╌╌╌╌╌╌╌

  Octans's default dictionary file is `/usr/share/dict/words', use
  `--dict' flag to change the dictionary. The words in dictionary must
  be seperated by a newline (`\n') & sorted alphabetically.


2.2.2 url
╌╌╌╌╌╌╌╌╌

  The url to be passed must be in either format:

  • Link when you view it from your local instance:
    <https://tilde.zone/web/statuses/105531207939242077>

  • Link from Algot's profile:
    <https://mastodon.art/@Algot/105333136907848390>


2.2.3 verbose
╌╌╌╌╌╌╌╌╌╌╌╌╌

  This will increase verbosity.