Code Monkey home page Code Monkey logo

collatz_finder's Introduction

Me

Personal

  • Currently doing courses listed by CIC. After I complete the technical-capacitation phase, I'll get my 1st job!
  • Considering leaving GH, for many reasons.
  • If I contribute to any of your repos, I hope you do the same for me and/or other people :)

Repos

  • I'll delete any fork that has 0 "Yours"(from my POV) branches. Therefore, links to such forks may become broken (not dead, because it's not permanent).
    • I may delete "Yours" branches if their corresponding pull-request is merged/closed.
  • I may delete any of my Gists without warning. The most likely reason is due to moving its contents to an actual repo.

Langs

Editors

Helix

I also have experience with VScode and GNU Nano

OS

  • ❤Favorites

    1. Debian
    2. Android
    3. Microsoft Windows
  • 🧠Expertise

    1. Android 4 to 8.1, and 12 (0 experience with A[9, 11])
      • Most of my experience was from using
        • TouchWiz
        • Samsung Experience
        • OneUI
      • I do have some experience with AOSP (0 Gapps)
    2. Debian-based Linux distros
    3. ChromeOS
      • I only have basic knowledge about its internals
    4. Microsoft Windows XP, [7, 11] (I haven't touched Vista 💀)
      • Despite using it my entire life, this beast is so bloated/complex that I know less than ~20% about it
  • 👀Interested

    1. Redox
    2. Nix
    3. G Fuchsia

Browsers

  • Favorites
    • in practice
      • Main: Mozilla Firefox
      • Windows: Microsoft Edge
    • in theory

I also have expertise with Chromium-based browsers.

Terminals

  • Linux: GNOME Terminal (not Console)
  • Android: Termux

collatz_finder's People

Contributors

rudxain avatar

Watchers

 avatar

collatz_finder's Issues

Add `stdin` support

This is crucial to have a fast way of checking files or random data from /dev/urandom. It can have a REPL mode for humans, and a "direct" mode for programs

Use env vars as cache

By using environment variables, users can change the values of lim_pos and lim_neg persistently, and a future version of the program with --search functionality could use it as memoization/cache

Table Optimization

See this post

For better performance, it should store the table in a file, so the table isn't computed for every call to the program. The file may also store multiple tables (each with a different size). Maybe there should be a directory where each file is its own table.

I don't know where to place these files

Range parallelism?

extremely related to #6 .

Is it possible to accelerate range-search by using multiple cores?

I have 2 implementation ideas (both are essentially the same concept):

Magnitude-based sync. All cores will skip n odd ints, where n is the number of cores. Each core is offset by c, where 0 <= c < n. When the ints they're checking increase in magnitude (1 bit more), each core waits for the other cores to get to the same magnitude level, after that happens, they save the progress to memory (lim_pos & lim_neg) and storage-based cache.

Loop unrolling technique. This works exactly the same as above, but in steps of m, rather than magnitudes. m should be 1 <= m <= 0x100

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.