)]}'
{
  "log": [
    {
      "commit": "b4b26475acce0be9b7e9844db4af5a1b9929cab1",
      "tree": "9b59d1bcaf09f1f1127ef4d4e3d28d604ac47ed7",
      "parents": [
        "22648a237d150d648d76a68e8f30a4623e0b1a1d"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Dec 12 23:49:03 2022 -0800"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Thu Dec 15 17:53:11 2022 +0100"
      },
      "message": "Incorporating the \"Connect the Dots\" algorithm in PLD accounting library.\n\nReference: https://arxiv.org/abs/2207.04380\n\nMain changes are as follows:\n- Allow vectorized calls to get_delta_for_epsilon,\n- Construct pessimistic PLDPmf using Connect-the-Dots algorithm,\n- Support Connect-the-Dots algorithm for privacy loss distributions of additive noise mechanisms.\n\nSome other minor changes included as follows:\n- Add checks to make sure that truncation bounds in self convolution does not result in truncation of the input list,\n- Use more numerically stable scipy.special.logsumexp for moment generating function computation,\n- Use more efficient np.roll for shifting the output result for self convolution.\n\nPiperOrigin-RevId: 494208119\nChange-Id: I1c50896b3252c19c8802b1e1ebfd6f0ba94c3be2\nGitOrigin-RevId: fca6f9ba22ab0a7b3d020d3c5bc95d30405261df\n"
    },
    {
      "commit": "22648a237d150d648d76a68e8f30a4623e0b1a1d",
      "tree": "7441aaaa70ca74fd52af455fb2f9875ffc6162a0",
      "parents": [
        "a96d65e7fd32b83fc012ed367427348a8a57fc45"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Dec 06 10:50:14 2022 -0800"
      },
      "committer": {
        "name": "jspacek",
        "email": "jodi.spacek@gmail.com",
        "time": "Mon Dec 12 16:01:40 2022 +0000"
      },
      "message": "Fix for thread contention, refactoring, and test cleanup.\n\nC++ DP\n- Refactor partition selection tests\n\nGO DP\n- Replace `interface{}` with `any`\n- Language edits\n\nPython DP PLD Accounting\n- Clean up and compress tests for privacy_loss_distribution using common method\n- Make one default value for num_queries in get_smallest_*_noise\n- Fix error message in assert_dictionary_contained\n\nChange-Id: Ifc0fb78a0277da81b465e7aae8fa857fa5580c9f\nGitOrigin-RevId: b5f1f49af26c99f352db4c3d424a54b04b68c82b\n"
    },
    {
      "commit": "a96d65e7fd32b83fc012ed367427348a8a57fc45",
      "tree": "1eed3a66b1256ce6e7a3180ebb183aeab2011deb",
      "parents": [
        "1ac116b34d790aff4d3ab7deb1d839285fb7ed3b"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Nov 14 23:24:27 2022 -0800"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Tue Nov 15 10:45:21 2022 +0100"
      },
      "message": "Update go.sum and go.mod for v2.0.0 release\n\nChange-Id: I0344df51616b315adae5193b2bb36c0d0c58c3c8\nGitOrigin-RevId: 81f00a216de65de3a6dd4b5ad47ace768693f464\n"
    },
    {
      "commit": "1ac116b34d790aff4d3ab7deb1d839285fb7ed3b",
      "tree": "068720df2dcb0b8cf61ad9c4fbd4f5fc7135e2f2",
      "parents": [
        "2c60716ce93cf2dbf27f9f98624150ae0596ed14"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Nov 10 13:17:04 2022 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Nov 14 10:37:12 2022 +0100"
      },
      "message": "Improvements in Accounting, refactoring in C++ \u0026 Go\n\nAccounting:\n- Support noise_multiplier\u003d0 and sampling_probability\u003d0 in (Poisson\n  subsampled) Gaussian and Laplace DpEvent\n- Fix behavior of RdpAccountant when sampling_probability\u003d0 and\n  noise_multiplier\u003d0 in Poisson subsampled Gaussian DpEvent\n- Add [0, 1] as default lower-endpoint-and-guess bracket interval.\n  Remove redundant check of bracket interval, since brentq also raises\n  when interval is bad\n\nC++:\n- Refactoring of partition selection\n\nGo:\n- Add go.sum\n\nChange-Id: I1f6219a51f43218693aa9b32c51b585469a1eb28\nGitOrigin-RevId: 6bf7243904c5d31ad6670832912da2c9c19ebc38\n"
    },
    {
      "commit": "2c60716ce93cf2dbf27f9f98624150ae0596ed14",
      "tree": "55d68548fd7b6270da89b3c939e4530d5a962c8a",
      "parents": [
        "2c1b4f7828f0604ad360a8bfd1739a8fa390d21c"
      ],
      "author": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Thu Nov 10 12:53:28 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 10 12:53:28 2022 +0100"
      },
      "message": "Update rules jvm external to 4.4.2 (#132)\n\n* Updated the rules jvm external dependency (#129)\r\n* add .gitignore at top-level\r\n\r\nCo-authored-by: James Kyle \u003cjames@jameskyle.org\u003e"
    },
    {
      "commit": "2c1b4f7828f0604ad360a8bfd1739a8fa390d21c",
      "tree": "223f6ea084dae04b0355b5345c8eeb69e5acc064",
      "parents": [
        "e218175e1ee866d6bea3031b2da9dfa4bb312135"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Nov 09 04:21:15 2022 -0800"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Thu Nov 10 10:51:01 2022 +0100"
      },
      "message": "Update Go dependencies, C++ cleanup\n\nAll Workspaces:\n* Update Bazel version to 5.3.2\n\nGo DP Lib and Privacy on Beam:\n* Fix GitHub CI\n* Fix dependency setup\n* Update dependencies\n\nC++ DP Lib:\n* Replace deprecated functions absl::MakeUnique and absl::make_unique\nwith std::make_unique\n\nChange-Id: Iaf133dfaefdb5bb3b614f0fa1072628103680467\nGitOrigin-RevId: 4151338af59ede464d32597f07bb3de7f1794520\n"
    },
    {
      "commit": "e218175e1ee866d6bea3031b2da9dfa4bb312135",
      "tree": "83f3c5d5607f1b78a5d1c3766ff6a06ce724e98f",
      "parents": [
        "e31cdaf0a5b2925fcf293ea6a2ac968625b65a9a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Nov 02 11:54:50 2022 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Thu Nov 03 09:01:03 2022 +0100"
      },
      "message": "Update Go DP Lib and Privacy on Beam dependencies\n\nGo DP Lib:\n* Update dependencies\n\nPrivacy on Beam:\n* Update dependencies\n\nClustering:\n* Add mechanism calibration option.\n\nAccounting:\n* More precise error messages if an accountant cannot process some event.\n\nChange-Id: I74da9701ea35931fbecfc6da0c930c21327ab0e3\nGitOrigin-RevId: 0ad3bc29eb78a24cc17bcab4113d3683622f2ace\n"
    },
    {
      "commit": "e31cdaf0a5b2925fcf293ea6a2ac968625b65a9a",
      "tree": "ebc3df5df5ab50ffd88364e0c7afacb57066fef8",
      "parents": [
        "605ec87bcbd4a536995b611132dbf4d341d2e91d"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Oct 13 05:43:33 2022 -0700"
      },
      "committer": {
        "name": "jspacek",
        "email": "jodi.spacek@gmail.com",
        "time": "Mon Oct 31 17:12:39 2022 +0000"
      },
      "message": "Go updates, C++ build timeout resolution, Python overflow fix.\n\nGo DP:\n- Update Go to 1.18 and Go tools for the Bazel build.\n\nC++ DP:\n- Omit long tests in GitHub CI to fix build timeout.\n\nPython DP:\n- Fix an overflow issue.\n\nChange-Id: Iefd12be42c12094d5deef3da11f4b15d07556dbb\nGitOrigin-RevId: c9871e8bed9b96713eda811b19347deb88b90494\n"
    },
    {
      "commit": "605ec87bcbd4a536995b611132dbf4d341d2e91d",
      "tree": "13576b44ba9cc07c7113729df5b540abb0c29233",
      "parents": [
        "f5a58b0b5f997182cf9cd17f67a541aae8ae158d"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Oct 04 08:29:04 2022 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue Oct 04 18:52:32 2022 +0200"
      },
      "message": "Improve C++ Quantile Trees\n\nC++ DP Lib:\n  * Use absl::flat_hash_map in quantile trees\n  * Update MemoryUsed in quantile trees.\n  * Download BoringSSL dependency from GitHub\n\nGitHub Setup:\n  * Disable scheduled go tests\n  * Add CI for Bazel builds\n\nPython Accounting Library:\n  * Make PrivacyAccountant.compose() return a reference to self.\n  * Handle overflow in subsampled PLD\n\nClustering:\n  * Create DpEvent for clustering and use it to verify accounting budget.\n  * Add input validation for average and count privacy params\n\nChange-Id: I3bf9c93c9d59fa38ad1006c8d6fb232d57b5c59a\nGitOrigin-RevId: 61538d859bf6129d4be725f23af004d50ff82241\n"
    },
    {
      "commit": "f5a58b0b5f997182cf9cd17f67a541aae8ae158d",
      "tree": "a6745b42e5c1c93aa662661ad5cbaefb36cb09eb",
      "parents": [
        "a950b5fc8a835d9cd9318eb5df94890c6fbddc05"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Sep 22 13:44:14 2022 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Wed Sep 28 14:48:11 2022 +0200"
      },
      "message": "Fix C++ Lib build for GCC 12, improvements in Accounting and Clustering\n\nC++ DP Lib:\n- Update Boringssl to fix upstream GCC 12 error\n\nAccounting:\n- Add support for subsampled LaplaceDPEvent in PLDAccountant\n- Improve default RDP orders.  For a PoissonSampledDpEvent with a\n  sampling probability of 0.0003 repeatd 1600 times, this improves the\n  epsilon from 21.53 to 18.20. Note, however, the PLDAccountant gives an\n  even better epsilon in this case (15.08). Also applies pyformat\n\nClustering:\n- Refactor handling of privacy parameters in preparation for an upcoming integration with PLDAccountant\n\nChange-Id: I2e95f0ec97582b222ddc6432a42095f0cc66aae7\nGitOrigin-RevId: a19468ed25df15ad66523848e778f8233dd97648\n"
    },
    {
      "commit": "a950b5fc8a835d9cd9318eb5df94890c6fbddc05",
      "tree": "41e46bbb0ec458b2f23d970a6e8a0dc0a29100ee",
      "parents": [
        "c43b065fc4221b5d104e9a9c3927f3162bed31fd"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Sep 08 11:43:49 2022 -0700"
      },
      "committer": {
        "name": "jspacek",
        "email": "jodi.spacek@gmail.com",
        "time": "Tue Sep 13 16:32:02 2022 +0000"
      },
      "message": "Update Dependencies\n\nAll DP Libraries:\n- Update Bazel version to 5.3.0\n\nPython DP Accounting:\n- Add support for LaplaceDPEvent in PLDAccountant\n\nJava DP:\n- Update Java DP lib Maven dependencies\n\nChange-Id: I6bb8e86bc01f0f1c9ab59f476c4a12bc6a3f52e0\nGitOrigin-RevId: 5477764b5308363249722a266f0ebfb2de38eabb\n"
    },
    {
      "commit": "c43b065fc4221b5d104e9a9c3927f3162bed31fd",
      "tree": "e1eb83c11fdee898b52aab4d2511990ec82b6430",
      "parents": [
        "c1aba140141cbce9a0308691647be344f148ecf2"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Aug 31 12:25:39 2022 -0700"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Mon Sep 05 15:57:28 2022 +0000"
      },
      "message": "Move Gaussian Stddev and Delta Calculation in C++\n\nC++ DP:\n- Update visibility for calculating delta from Gaussian stddev\n- Add (experimental) public interface for calculating delta from\n  Gaussian stddev\n- Move calculation of Stddev for Gaussian to separate file\n- Remove unused code in Gaussian Partition Selection\n\nPython DP:\n- Adds LaplaceDpEvent to dp_accounting public API.\n\nPiperOrigin-RevId: 470677321\nChange-Id: If7fb1974a20c01b5f4ab45817c762ffe13b57976\nGitOrigin-RevId: 3f9b9e3d9857a716d47b2ce98f1ced7c723bc426\n"
    },
    {
      "commit": "c1aba140141cbce9a0308691647be344f148ecf2",
      "tree": "e5438d1b8cd36b5161b2695936f0fdeeb70c08f8",
      "parents": [
        "ab98ce4d4e41bf420198b2284a75d6a7dd4e9044"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Aug 26 04:44:43 2022 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon Aug 29 11:51:39 2022 +0200"
      },
      "message": "Move implementation to source files in C++\n\nAll DP libraries:\n- Clarify why we use binary search to find sigma for Gaussian noise.\n\nC++ DP library:\n- Move GaussianMechanism implementation to source file\n- Move LaplaceMechanism implementation to source file\n\nAccounting library:\n- Remove python 3.6 support from DP accounting library\n\nPiperOrigin-RevId: 469719050\nChange-Id: I9070875448921afee3ba752670503ce7e80f1c7b\nGitOrigin-RevId: 5ff6f6d9bc90e6003235e1b85885dd2b2ecd21f4\n"
    },
    {
      "commit": "ab98ce4d4e41bf420198b2284a75d6a7dd4e9044",
      "tree": "0fad12da8369c177820da187ee8525212a834a26",
      "parents": [
        "78e04231e114d48c8bb17805bd894325feb17e12"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Aug 24 05:55:32 2022 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Wed Aug 24 15:30:55 2022 +0200"
      },
      "message": "Update Dependencies for C++, Fix /python and /learning build\n\nDP Lib All:\n* Update protobuf dependency\n\nDP Lib C++:\n* Update external dependencies\n* Fix compilation error on gcc prior to 8\n* Remove scaled sampling for Laplace\n* Use C++\u0027s std::expm1 instead of C\u0027s expm1\n\nPython Accounting / Learning:\n* Fix version missmatch\n* Increment `dp-accounting` minor version for new, backwards-compatible functionality\n* Added functionallity to compute delta for many epsilons\n\nPiperOrigin-RevId: 467997634\nChange-Id: I5bf7278eba0001ff25c49b69620ae22d309a17ca\nGitOrigin-RevId: c6320300d696bdea7f94bc752317106b82735c5f\n"
    },
    {
      "commit": "78e04231e114d48c8bb17805bd894325feb17e12",
      "tree": "e6cd13d0bbac8403061a51be7d7d603e8fc3175b",
      "parents": [
        "d93052f71960cefc533b64c7201a35fce2deeb9e"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Aug 09 08:58:42 2022 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Thu Aug 18 11:18:02 2022 +0200"
      },
      "message": "Optimizations and refactoring in the py accounting lib\n\nPython Accounting library:\n- Extract PLDPMF class to a separate file.\n- Move Privacy Loss Distribution files to pld/ sub-folder.\n- Slight optimization to bounds search in mechanism_calibration: lower bound increases during search.\n\nPiperOrigin-RevId: 464845960\nChange-Id: I5b2802ee54adf06163c76474ba192af9c3ae7efc\nGitOrigin-RevId: e2ebfb75fa49b8fab63d700ed1029d4544a736d0\n"
    },
    {
      "commit": "d93052f71960cefc533b64c7201a35fce2deeb9e",
      "tree": "059b42d0575d8983b15af18ad70b53417c067556",
      "parents": [
        "e130d473b6df005017545ac99f6b71c576845ca3"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Aug 01 21:01:44 2022 -0700"
      },
      "committer": {
        "name": "jspacek",
        "email": "jodi.spacek@gmail.com",
        "time": "Wed Aug 03 13:38:02 2022 +0000"
      },
      "message": "Python: Minor version update, C++: Tree validation.\n\nDP Library Python\n\n* Increment dp-accounting minor version for new, backwards-compatible hyperparameter tuning functionality.\n\nDP Library C++\n\n* Tree parameter validation.\n\nChange-Id: Id6d91395f04b675fba307fe312efa508fae64c91\nGitOrigin-RevId: 68966c90a11a5490502ec1cfa723faa8c00a3483\n"
    },
    {
      "commit": "e130d473b6df005017545ac99f6b71c576845ca3",
      "tree": "0c1081077dd24f31222dc1857770cd1ec600410e",
      "parents": [
        "802db81af4f5efb69df784efb3ba90833fba7246"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Jul 26 01:33:31 2022 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Tue Jul 26 16:58:48 2022 +0200"
      },
      "message": "Add DP hyperparameter tuning and fix dependencies in Accounting\n\nAccounting library:\n- Adds new DP Event \u0026 RDP accounting for running an algorithm multiple times and selecting the best run, e.g., for hyperparamter tuning.\nSee Papernot \u0026 Steinke (ICLR 2022) https://arxiv.org/abs/2110.03620\n- Add a missing Bazel build dependency for mechanism calibration.\n- Increment dp-accounting version associated with scipy dependency fix.\n\nDP libs documentation:\n- Add disclaimer to the DP lib about floating point vulnerabilities.\n\nPiperOrigin-RevId: 461703474\nChange-Id: I90cad7c532ae21d882c952446f1c30af22d48ed3\nGitOrigin-RevId: 6e62fb4e93502a8f0cabcc53c7b6a2235eaa1cce\n"
    },
    {
      "commit": "802db81af4f5efb69df784efb3ba90833fba7246",
      "tree": "03c75f4ff5da413f277d6ecdc6ec0c3a2d028f78",
      "parents": [
        "8f7d2b9e294506c25756b65b8a369b858a015e5f"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Jul 14 10:12:22 2022 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon Jul 18 19:33:42 2022 +0200"
      },
      "message": "DP Accounting library small changes\n\n* Update description in README to describe DpEvent and PrivacyAccountant classes.\n\n* Using numpy arrays for PLD computations.\n\n* Revert `scipy` dependency.\n\n* Bump dependency of numpy from 1.21 to 1.22.\n\nPiperOrigin-RevId: 460770989\nChange-Id: I76dad85e64164af661392ba3db1b9e06c0f3c08c\nGitOrigin-RevId: bf649e904d920509149ea67c1d6a2ffee27f53f6\n"
    },
    {
      "commit": "8f7d2b9e294506c25756b65b8a369b858a015e5f",
      "tree": "7cd3e2ca1f0fcd97f1d3d8a47bf8b6dcc75c340d",
      "parents": [
        "8914daae1c6af77bed7c4cd3d4b34a5d3558fc91"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jul 08 15:46:48 2022 -0700"
      },
      "committer": {
        "name": "dasm",
        "email": "dasm@google.com",
        "time": "Tue Jul 12 12:32:41 2022 -0700"
      },
      "message": "Python: update requirements, C++: Remove double-SFINAE in utils\n\nC++ DP Lib:\n- Fix use of uninitialized value in util.h\n- Remove double-SFINAE in util.h\n- Pass ConfidenceInterval by const reference instead of value in util.h\n\nPython Accounting:\n- Update the `dp-accounting` requirements.\n  - Updated the versions of the dependencies.\n  - Updated so that the hotfix is not pinned, this allows for easier\n    Python dependency resolution without accepting breaking changes.\n\nPiperOrigin-RevId: 459727321\nChange-Id: I23f73b417e674b19bb89f1fede2ebb7649b7a95d\nGitOrigin-RevId: 749ba8fd6b89a64951c96037e700c0ec2ce8f0e6\n"
    },
    {
      "commit": "8914daae1c6af77bed7c4cd3d4b34a5d3558fc91",
      "tree": "389d37f9372bd4168f7f64ea9a29a84c18a7a224",
      "parents": [
        "3485dec02794bda52d7b0ea248fa2a2caf11d55b"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jul 04 00:02:55 2022 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Jul 11 15:49:42 2022 +0200"
      },
      "message": "Various improvements in C++ and Accounting\n\nGeneral:\n- Fix README.md code formatting (thanks to @jpgoldberg)\n\nC++:\n- Partition selection improvements. Expose probability of keeping \u0026 introduce method for returning noised values, when it\u0027s kept from Laplace/Gaussian strategies\n- No longer use default epsilon in AlgorithmBuilder\n- Remove the versions of Add*Noise that have a privacy_budget parameter\n\nAccounting:\n- Continuation of refactoring in PLD dp_accounting for using numpy arrays.\n- Add mechanism calibration functions to dp_accounting package\n- Increment the dp-accounting VERSION in preparation for a new PyPI release\n\nChange-Id: I92f952826f7674bb0614e744e10d573d99a22049\nGitOrigin-RevId: 6e3f712e74d01b953e8273b41bcbd3ec410c8c10\n"
    },
    {
      "commit": "3485dec02794bda52d7b0ea248fa2a2caf11d55b",
      "tree": "fafc3e5364c414bc92b55fb2bbb96c13e3ab6691",
      "parents": [
        "578b6e6285e20bc9a068bb1ad402505d0305c0b6"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Jun 22 14:27:47 2022 -0700"
      },
      "committer": {
        "name": "jspacek",
        "email": "jodi.spacek@gmail.com",
        "time": "Tue Jun 28 16:56:59 2022 +0000"
      },
      "message": "C++: Confidence Interval for Approx Bounds Mean uses absl::StatusOr\n\nDP Library C++\n* Add confidence intervals to Approx Bounds Mean outputs.\n* Replace statusor.h with absl version.\n* Update documentation.\n\nDP Accounting\n* Update `dp_accounting` subpackages and targets.\n* Update absl-py version to 1.0.0.\n\nChange-Id: Id4fbbc45494d079977df1699b2b4269a84f10163\nGitOrigin-RevId: 4600172d5c62db79f1aec79e65c90b6200da6334\n"
    },
    {
      "commit": "578b6e6285e20bc9a068bb1ad402505d0305c0b6",
      "tree": "0ce69e671dc52cf1d4963553103e493d07847243",
      "parents": [
        "5e7cf28bf55ebac52fc65419364388c33ebc01a4"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jun 10 02:09:26 2022 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Mon Jun 20 10:02:17 2022 +0200"
      },
      "message": "Confidence Intervals for C++ Mean / Finding optimal params for budget\n\nC++:\n * Added confidence intervals for mean\n * Improvement numerical stability for BoundedMean\n\nAccounting:\n * Add calibrate_dp_mechanism to search for optimal parameter value within specified privacy budget\n\nChange-Id: I1f3a1c761767685f102ec909e8375c61c7b4e67e\nGitOrigin-RevId: 6811f4107df8a4e1bfa2b6ef980b29d7f069a342\n"
    },
    {
      "commit": "5e7cf28bf55ebac52fc65419364388c33ebc01a4",
      "tree": "19af2827fe70401b2e4d12faa884653a9d781656",
      "parents": [
        "75046f9b34cc683a77165794f7b3de9a550edc03"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue May 31 05:00:12 2022 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Thu Jun 02 10:17:30 2022 +0200"
      },
      "message": "Improvements to Accounting and C++ DP libraries.\n\nC++ DP library:\n\n* Add unchecked noise confidence interval method to mechanisms\n* 3x runtime improvement for mean confidence interval\n\nAccounting library:\n\n* Using numpy arrays for PLD in dp_accounting Part 1: The implementation of Sparse and Dense PMF for PLDs.\n\n* Add back dataclasses to requirements.txt for compatibility with python3.6\n\n* Increment the minor version of the DP accounting library, reflecting the introduction of the new `dp_event`, `privacy_accountant`, and related modules.\n\n* Fix discretization_interval in get_smallest_laplace noise\n\n* Make compute_epsilon and compute_delta functions public. This can be useful for example in research when one wants to compute RDP manually without creating a new DpEvent.\n\nPiperOrigin-RevId: 450045290\nChange-Id: I22d60bd60383d90c7902977e7cb62865ad9889b7\nGitOrigin-RevId: daeedc5fc7695adaf43cc7e52f422619ace6e9d2\n"
    },
    {
      "commit": "75046f9b34cc683a77165794f7b3de9a550edc03",
      "tree": "c91f4de838e29342a4b069a2ee160d8ca3816157",
      "parents": [
        "bf0abf446b2f9d625a824bf14a7e3a6b6ac2a3e4"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue May 17 04:37:03 2022 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Tue May 17 15:17:04 2022 +0200"
      },
      "message": "Fix sensitivity calculation in C++\n\nC++ DP library:\n- Fix privacy-impacting bug in sensitivity calculation for integer mean.\nWe found a rounding issue in the integer version for BoundedMean when\nabs(upper-lower) is odd.  In this case, the sensitivity was rounded down to the next integer. In case that abs(upper-lower) \u003d 1, the builder would have returned an error. For other bounds, the sensitivity calculation is slightly off and BoundedMean produces an output with slightly higher epsilon and delta. This does not apply to floating point types.\n- Add default expectations to the mock numerical mechanism.\nThe defaults will redirect calls to the single-argument versions of the Add*Noise methods, allowing users of the mock to set expectations on the single-argument versions. These will be removed when we remove the multi-argument shims.\n- Fix message handling of optional value when value is unset. Add tests for unset and NaN values for lt, lte, gt, and gte methods.\n- Add confidence interval for fixed-bounds mean\n\nPython Accounting library:\n- Fix libraries versions to avoid runtime errors.\n\nPrivacy-on-Beam\n- Fix tolerance computation for mean, improve documentation.\n\nPiperOrigin-RevId: 445993700\nChange-Id: Iccc2938730fdd5de79114e09c178cec5f6692771\nGitOrigin-RevId: ec51b89721f1e555c2b6370b794b329f8f47c34a\n"
    },
    {
      "commit": "bf0abf446b2f9d625a824bf14a7e3a6b6ac2a3e4",
      "tree": "fc7adbc5098cedbb640e1c63a586ddcba3721bf9",
      "parents": [
        "025111e75114a96b8d54ba88e483a2b0f99a2954"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Apr 29 09:52:57 2022 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue May 03 13:46:11 2022 +0200"
      },
      "message": "PoB: Support Public Partitions for DistinctPerKey\n\nChange-Id: Iadcee8e6ffd609c1e8e420d686ceef5db9707bec\nGitOrigin-RevId: 47992b924a221035c74d97c05776cfdbdabbbc9d\n"
    },
    {
      "commit": "025111e75114a96b8d54ba88e483a2b0f99a2954",
      "tree": "469c6d9ac26c2e377d000ea47b4049427f861ef7",
      "parents": [
        "74d5be96d4abe6820ef4838c00a1b78c72ae01af"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Apr 26 05:43:01 2022 -0700"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Wed Apr 27 21:15:19 2022 +0000"
      },
      "message": "Misc fixes, improvements to DP libraries, PoB and DP accountant.\n\nGo library:\n- Disable defaults for MaxPartitionsContributed, add tests for parameter validation for dpagg.NewX() constructors\n- Disallow using 0 or very small epsilon for Gaussian\n\nJava library:\n- Open-source approximate bounds.\n- Add some intuition for the mean CI formula\n\nC++ library:\n- Remove privacy_budget parameter from NumericalMechanism AddNoise.\n\nPrivacy on Beam:\n- Disallow equal bounds for MeanPerKey\n\nDP accountant:\n- Adds get_epsilon_and_optimal_order and get_delta_and_optimal_order to RdpAccountant.\n\nPiperOrigin-RevId: 441447910\nChange-Id: If5421264939d81f8b24a0909d268ae013fa7a3a5\nGitOrigin-RevId: 95ddaf0a980f17ef91e4a61cc6ffb71360f01b88\n"
    },
    {
      "commit": "74d5be96d4abe6820ef4838c00a1b78c72ae01af",
      "tree": "cabe0f7eeca7fd9c1b29c74efb707ddf17db60f9",
      "parents": [
        "c2376f0daaf406e1524b462accaa9cbb548fd6d1"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Apr 08 01:04:03 2022 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Wed Apr 20 15:16:02 2022 +0200"
      },
      "message": "Minor changes to the libraries and Python Accounting library:\n\n* Add statistical tests for approximate bounds for DP libraries.\n* Add a version of NoiseConfidenceInterval without privacy_budget\nin C++ DP library.\n* Cleanup typing annotations in Python Accounting library.\n\nPiperOrigin-RevId: 439689331\nChange-Id: Ie74f116e61175a701095c1c9c0f48e572e2b758a\nGitOrigin-RevId: 108b2bf86c5da379f6a6f667b52893b7ca7360a1\n"
    },
    {
      "commit": "c2376f0daaf406e1524b462accaa9cbb548fd6d1",
      "tree": "a8d45f2064ef439c3ed155fd0d066927014636b3",
      "parents": [
        "19baf11d2e8625e98cb5785f643c588b45618dd6"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Apr 01 04:44:20 2022 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Mon Apr 04 11:38:18 2022 +0200"
      },
      "message": "Add noise confidence intervals to C++ DP Quantiles.\n\nPiperOrigin-RevId: 437894705\nChange-Id: I57caa5cabbb3e5ba44412459779c2d218d42000f\nGitOrigin-RevId: 0cdc01b93e5a5407b6fabac3b6d71830a6a4fd6f\n"
    },
    {
      "commit": "19baf11d2e8625e98cb5785f643c588b45618dd6",
      "tree": "885ab25d52e422010382df555022608ea2605e29",
      "parents": [
        "6c98d946f2fce24084bb7e68f252a1deb2801792"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Mar 24 13:01:13 2022 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Mon Apr 04 11:38:16 2022 +0200"
      },
      "message": "Output noise conf intervals to repeated field in C++\n\nC++ library:\n- Output.noise_confidence_internal to a repeated field.\n\nprivacy-on-beam:\n- Update Bazel instructions to v1.1.2\n\nPy Accounting:\n- Add typing annotations in RDP accounting.\n\nPiperOrigin-RevId: 435703861\nChange-Id: Iaeed672866014491dcf7f72ce26122a5f8de668b\nGitOrigin-RevId: 1970a21ac26b9dc5726d0c17f4e0c969f51dfaae\n"
    },
    {
      "commit": "6c98d946f2fce24084bb7e68f252a1deb2801792",
      "tree": "34eafd4ec1a5e1981cccff6009e1382e502d407d",
      "parents": [
        "8319de9fb0e428f5d1a7e263026eb0ae59c59f3a"
      ],
      "author": {
        "name": "Filippo Balicchia",
        "email": "fbalicchia@cuebiq.com",
        "time": "Tue Mar 22 18:56:42 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 22 10:56:42 2022 -0700"
      },
      "message": "restore docker image definition (#113)\n\n"
    },
    {
      "commit": "8319de9fb0e428f5d1a7e263026eb0ae59c59f3a",
      "tree": "6e3478f6a5f08b7249c92cd4e73d5fa51964a3c3",
      "parents": [
        "099080e49c4c047802d785bc818898c0caf84d45"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Mar 17 10:02:52 2022 -0700"
      },
      "committer": {
        "name": "dasm",
        "email": "dasm@google.com",
        "time": "Tue Mar 22 10:56:09 2022 -0700"
      },
      "message": "Minor fixes and improvements.\n\nC++: Use fewer samples for some of the stochastic tests\nPrivacy on Beam: Depend on GitHub for Go DP Lib dependency\n\nPiperOrigin-RevId: 435350633\nChange-Id: I38c38559776f127d40f4d2cf6a72cb8f15388a31\nGitOrigin-RevId: d4fcba1e011abc507021aeae6f847b0872914b75\n"
    },
    {
      "commit": "099080e49c4c047802d785bc818898c0caf84d45",
      "tree": "dbb9b0d43c4c72ca97f0258c9b27f5b77309bc6f",
      "parents": [
        "8536a3af6b147b1cce6f884826bfd5f2009ae50f"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Mar 14 23:24:06 2022 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Thu Mar 17 16:42:22 2022 +0100"
      },
      "message": "Implement Discrete Laplace in Java, various minor improvements overall\n\nPython Accountant:\n- Remove dependence on `six` and use `super()` in rdp_privacy_accountant\n- Add Laplace DpEvent\n- Fix typos\n\nC++:\n- Enables support for partition selection when counts can be larger than max int32\n\nGo \u0026 PoB:\n- Prepare for v2 release\n\nJava:\n- Add Discrete Laplace noise class which adds the discrete version of\n  laplace noise (aka symmetric geometric noise) that is DP for\n  integer-value function with given sensitivities.\n\nChange-Id: I5e61d3fa74a0b2071e9df0531c94d9419c67a7ad\nGitOrigin-RevId: 3d471c0db206a3df06b710a1cf7269f8207f6d0d\n"
    },
    {
      "commit": "8536a3af6b147b1cce6f884826bfd5f2009ae50f",
      "tree": "89d0c0a006a27e4ac3dddb3ee169805ddb54a02c",
      "parents": [
        "61bc5e6f9d2dc5df5f7b9de8071ce3e416bce2f7"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Mar 02 11:37:55 2022 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Tue Mar 08 15:36:18 2022 +0100"
      },
      "message": "Support Poisson subsampled mechanisms in Accounting; improvements in PoB\n\nPython Accounting:\n- Support privacy accounting of Poisson subsampled additive noise mechanisms with respect to Add/Remove relation\n- Refactoring of classes: core PLD algorithms moved into a backend class of BasicPrivacyLossDistribution, and PrivacyLossDistribution is repurposed as a user-facing class while maintaining full backward compatibility\n- Class methods of PrivacyLossDistribution converted to factory methods (class methods still supported with deprecation warnings)\n- Introduce PLDAccountant to enable accounting with DpEvent objects.\n\nPrivacy on Beam:\n- Faster public partitions as PCollection for Count \u0026 DistinctPrivacyId\nby improving how we drop non-public partitions\n\nGo \u0026 Privacy on Beam:\n- Update dependencies\n\nCommon:\n- Documentation improvements\n\nChange-Id: I8d7cc2094cf3f0f5e02cc1b0dcb672461ba91eb2\nGitOrigin-RevId: a70e43fd68e28206f1efa1fc1f5d87253cf01a06\n"
    },
    {
      "commit": "61bc5e6f9d2dc5df5f7b9de8071ce3e416bce2f7",
      "tree": "def317fe24ed9c7f016af1ef1e4d0f7aa3155143",
      "parents": [
        "59e27c25e5287c1853cc16a69ddb2b1ce204eba8"
      ],
      "author": {
        "name": "Filippo Balicchia",
        "email": "fbalicchia@cuebiq.com",
        "time": "Wed Mar 02 20:04:23 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 02 11:04:23 2022 -0800"
      },
      "message": "add postgreSQL docker image with udf (#98)\n\nadd postgre docker image with udf"
    },
    {
      "commit": "59e27c25e5287c1853cc16a69ddb2b1ce204eba8",
      "tree": "582a5f439fa2f559851d1a18c5720662e04eab44",
      "parents": [
        "fc4f2abda5052f654539fc1282ed64a827465a70"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Feb 18 08:52:22 2022 -0800"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Thu Feb 24 11:32:30 2022 -0500"
      },
      "message": "Minor fixes/improvements/dependency updates.\n\nGlobal changes:\n- Update bazel version to 5.0.0\n\nC++ DP library:\n- Modify BinarySearch to avoid use of the privacy_budget parameter in\nLaplaceMechanism.AddNoise\n\nJava DP library:\n- Move sampleGeometric and sampleTwoSidedGeometric into a separate class.\n\nGo DP library:\n- Rename BoundedMeanFloat64 to BoundedMean\n- Fix MinValue/MaxValue documentation for mean.go and quantiles.go\n\nPrivacy on Beam:\n- Update Apache Beam dependency to v2.36.0\n- Add Privacy on Beam to build instructions on README.md\n\nPipelineDP:\n- Add PipelineDP to README.md\n\nPython DP accountant:\n - fix from_privacy_parameters for the case epsilon \u003d 0.\n\nPiperOrigin-RevId: 427022604\nChange-Id: Ib54ae0518164ebbb32716da55f8a5574a4a1f731\nGitOrigin-RevId: 23ce0d95c86b72c7b9b27052faa96ed677d444a1\n"
    },
    {
      "commit": "fc4f2abda5052f654539fc1282ed64a827465a70",
      "tree": "6d1b32b43beef12524925ca6875b5b481dc1ae7f",
      "parents": [
        "045b3230730e3f709e1ea8c4cc81371685cdc954"
      ],
      "author": {
        "name": "Filippo Balicchia",
        "email": "fbalicchia@gmail.com",
        "time": "Mon Feb 07 23:42:38 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 07 14:42:38 2022 -0800"
      },
      "message": "upgrade postres version to 12 (#102)\n\n"
    },
    {
      "commit": "045b3230730e3f709e1ea8c4cc81371685cdc954",
      "tree": "ad41cc21bd0d7fd24acfbfa21f3daa7d7c31922f",
      "parents": [
        "5b9d2d0422b8948bdef6746339b58b8f09e3232b"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Feb 02 22:27:12 2022 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Feb 07 15:32:46 2022 +0100"
      },
      "message": "Add more tests for PrivacyLossDistribution + minor cleanup\n\nPiperOrigin-RevId: 426058709\nChange-Id: I89aa8829bcfc846c55ba34a2a6a647d6f2fc135e\nGitOrigin-RevId: 5b6771d6ca4ca4e33cde5b8c7f9c93b97044959e\n"
    },
    {
      "commit": "5b9d2d0422b8948bdef6746339b58b8f09e3232b",
      "tree": "755f4ac2f6f761f469a4438c8d2079ca4fce0e1e",
      "parents": [
        "d0544d18790f1cd4914f4a4e7b7ba93a909bdc17"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jan 31 06:44:49 2022 -0800"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Jan 31 18:00:17 2022 +0100"
      },
      "message": "[PoB] Improve error messages for laplace noise with public partitions\n\nPiperOrigin-RevId: 424628276\nChange-Id: I9677899f01bf02d245c75bcedf680c8bfa7c3041\nGitOrigin-RevId: 90a77a99cb8c335f93e732f128d153af144b7e7d\n"
    },
    {
      "commit": "d0544d18790f1cd4914f4a4e7b7ba93a909bdc17",
      "tree": "ba410b8e3f26fe2e951ae81f17ab25b159606f11",
      "parents": [
        "69e506fe2ac98279ddf2896f9352b2d3708404c8"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jan 24 10:06:58 2022 -0800"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Jan 31 18:00:15 2022 +0100"
      },
      "message": "Speed-up Java tests, bug fixes and clean-ups\n\nAccounting:\n- Top level symbols published, minor bug fixes and cleanup\n\nJava:\n- Add parallelism to sample generation in some of the Java\n statistical tests\n- Improve performance of the Java statistical tests by using a\n non-cryptographically secure RNG.\n\nC++\n- Update Quantiles comments, since \"MultiQuantiles\" have been\n renamed to \"Quantiles\".\n\nPiperOrigin-RevId: 421108077\nChange-Id: I5960cf08963c34786c731ad155d7668310e0f008\nGitOrigin-RevId: 0e90c0573251cc4b6d7d19fa2ad421211b5b6149\n"
    },
    {
      "commit": "69e506fe2ac98279ddf2896f9352b2d3708404c8",
      "tree": "67b07b35a919d567830e05aaa93d0da5e6a88604",
      "parents": [
        "d51eedc0beea536ea563ade62116f37633eebf4d"
      ],
      "author": {
        "name": "Osuke",
        "email": "dish230@gmail.com",
        "time": "Thu Jan 27 22:48:51 2022 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 27 14:48:51 2022 +0100"
      },
      "message": "Fix: calculate confidence intervals with the correct confidence level in mean.go (#99)\n\n"
    },
    {
      "commit": "d51eedc0beea536ea563ade62116f37633eebf4d",
      "tree": "0f6145e0fd26c6b0bd4a8faa5a94e4580c6e87c0",
      "parents": [
        "4c867aae8ea6a6831d2ac0ab749cd5ae24e047b4"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Jan 11 06:31:48 2022 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Fri Jan 14 15:11:20 2022 +0100"
      },
      "message": "Fix bugs in Go, implement BoundedVariance in Java, Renyi DP in Python\n\nGo:\n- Fix a bug in ThresholdedResult for Count that may lead to higher than\nintended delta\n- Add checks for thresholdDelta in noise.Threshold()\n\nPrivacy on Beam:\n- Fix small bugs with some tests, making them less flaky\n- Use RoundedLaplaceTolerance instead of LaplaceTolerance for integer\naggregation in tests\n\nJava:\n- Implement BoundedVariance\n- Fail to build bounded quantiles, mean and variance if bounds are equal\n\nAccounting:\n- Introduce a new PrivacyAccountant implementation based on Renyi DP.\nThis API is forked from TF Privacy, which will soon be switched to\ndepend on the version here\n- Add accounting for tree aggregation as described in \"Practical and\nPrivate (Deep) Learning without Sampling or Shuffling\"\n\nPiperOrigin-RevId: 417627089\nChange-Id: Id1f0ffbe607ae8f90b488053394eb577f2d48c6b\nGitOrigin-RevId: b02ccac42d590f72c2f20440721e4d0126a47f78\n"
    },
    {
      "commit": "4c867aae8ea6a6831d2ac0ab749cd5ae24e047b4",
      "tree": "b6d99aa7916f6010cbba5a731b6a0a73674f04fc",
      "parents": [
        "bf58ad3724b439ef483a85e8651bd6a8885bcb8b"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Dec 16 09:25:41 2021 -0800"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Dec 20 14:09:21 2021 +0100"
      },
      "message": "List of changes:\n- DP clustering: refactored central privacy util parameters.\n- DP statistical test updated to more precise labels\n- Statistical closeness tests for Gaussian noise added\n- C++: Increased min success probability in approx bounds.\n\nPiperOrigin-RevId: 416048860\nChange-Id: I1aa6ce94f36c35a9320a756f2a7054e4a42188a3\nGitOrigin-RevId: fce3759f7d37f56fa12d96f534f5017f8b87bcb1\n"
    },
    {
      "commit": "bf58ad3724b439ef483a85e8651bd6a8885bcb8b",
      "tree": "3b368b3b4057e5d75ff7905ce99a7560cfefa24e",
      "parents": [
        "60605f52f286d8bbf7dd4a6b2cbaca0f0fa29594"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Dec 08 11:34:14 2021 -0800"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Mon Dec 13 09:33:14 2021 -0500"
      },
      "message": "C++: use GetUniformDouble from distro for LaplaceMechanism\n\nPiperOrigin-RevId: 415055992\nChange-Id: I0f2761775ac7ce070fbed7655654d362a5a6c96b\nGitOrigin-RevId: 4b02b94aae5a720f44e7b2b9806959388f8b6675\n"
    },
    {
      "commit": "60605f52f286d8bbf7dd4a6b2cbaca0f0fa29594",
      "tree": "1e088ce853e733d535574a30ca143326eb7eea8c",
      "parents": [
        "d7882bcbd15e7dd929abba8fb85830591a592fad"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Nov 30 08:37:45 2021 -0800"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Wed Dec 01 16:00:22 2021 +0100"
      },
      "message": "Many fixes \u0026 cleanups overall\n\nC++:\n- Add empty checks for divide by 0 for mean.\n- Remove privacy budget parameter from PartialResult method.\n- Refactor LaplaceDistribution::Builder to return more errors.\n\nStatistical tests:\n- Remove long_value from DataRecord, double_value is enough.\n- Clean up of bounded_quantiles_dp_test_cases.textproto documentation\n\nGo/PoB:\n- Breaking change for the Go  Library\n- Big refactoring of how error reporting works in the Go Library.\n  Return errors in the Go Library instead of log.Fatal/Exit\u0027ing.\n- We return errors on combineFns in Privacy on Beam as well.\n- Implement in-memory public partitions for MeanPerKey, SumPerKey,\n  DistinctPrivacyId, QuantilesPerKey\n- \"go mod tidy\" on go.mod files.\n- Remove checks.CheckMaxPartitionsContributed.\n- Move getMaxContributionsPerPartition to checks package as\n  ChecksMaxContributionsPerPartition.\n- Fix a bug in DistinctPrivacyID where errors are not propagated properly.\n- Update plot module version.\n\nAccounting library:\n- Introduce a new DpEvent and associated PrivacyAccountant API\n  for differential privacy accounting. This API is forked from\n  TF Privacy, which will soon be switched to depend on the version here.\n\nMisc:\n- Replace references to some non-inclusive terms.\n\nChange-Id: I83ac68219a84628770e1cdc15b2ee8a379f16628\nGitOrigin-RevId: 1bd1061a39f6fdf9d33ae3b2f15aa501e5068492\n"
    },
    {
      "commit": "d7882bcbd15e7dd929abba8fb85830591a592fad",
      "tree": "5301b9414fb2e76a9642f846950023fe71bac2f2",
      "parents": [
        "fbd77a93ee0bf8dabca51adba344d68ef0be2171"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Nov 16 02:59:23 2021 -0800"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Mon Nov 22 09:34:01 2021 +0100"
      },
      "message": "Fix special cases for sum; add in-memory public partitions in PoB\n\nC++:\n * Fix BoundedSum with ApproxBounds use case for lowest int input\n\nGo:\n * Allow lower \u003d\u003d upper for sums\n * Change lower bound for normalizedSumOfSquares\n\nJava:\n * Improve utility of Count\u0027s computeThresholdedResult\n\nPrivacy on Beam:\n * Implement in-memory public partitions for Count\n * Reword the Count\u0027s MaxValue documentation\n\nChange-Id: I8cc8a4009aa35e91e2c449da1e60d1ef58d027b4\nGitOrigin-RevId: b29ba88e2ce7b66f967da9dcfff92bc0986f9f28\n"
    },
    {
      "commit": "fbd77a93ee0bf8dabca51adba344d68ef0be2171",
      "tree": "57862e8fb438e4656bc45c69702d981390ab014e",
      "parents": [
        "ae9c6b6d5b7e772837ae336d1b3092683481ec16"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Nov 01 09:58:26 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue Nov 02 17:44:21 2021 +0100"
      },
      "message": "Update Partition selection colab notebook for PETS reviewer comments\n\nChange-Id: Ie2642e14fc2523157a083ae169db244225d8b88e\nGitOrigin-RevId: 5da4642ef364d0e0135418ef20547a661d4a81cd\n"
    },
    {
      "commit": "ae9c6b6d5b7e772837ae336d1b3092683481ec16",
      "tree": "028c151cee58cd6e01164489e5d8d92a1970bec5",
      "parents": [
        "1d831a154fb2271303c725a7e411c9d90d211ee4"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Oct 21 13:51:42 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Wed Oct 27 15:37:50 2021 +0200"
      },
      "message": "C++: Fix multiple contributions for implicit ApproxBounds\n\nThis change contains a critical fix for cases where ApproxBounds is used\nimplicitly (not specified in the builder) and we use multiple\ncontributions per user or multiple contributions per partition for sum,\nmean, variance, and stddev.\n\nChange-Id: I4a6a34da46f8e1d43906461d93cf3e2cf09f6c34\nGitOrigin-RevId: 3f8870c2facd276d6201d31c574601fa62366a0f\n"
    },
    {
      "commit": "1d831a154fb2271303c725a7e411c9d90d211ee4",
      "tree": "4f2aa2c62a1d8321a35a7f93b1f05a84397187da",
      "parents": [
        "8f867aee1ffdcab644cbe49fcfc25f8b322a18b2"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Oct 20 01:31:51 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Wed Oct 20 15:34:50 2021 +0200"
      },
      "message": "Smaller changes for clustering; C++ visibility changes\n\nClustering:  Smaller changes in the README file.\n\nC++:  Make the public interface clearer by restricting visibility.\n\nChange-Id: Ib237560fc53a4e2d68fd82702b9ca5280b043fc8\nGitOrigin-RevId: 9311d76ce20863ef96c1f37d62d5135f0314e005\n"
    },
    {
      "commit": "8f867aee1ffdcab644cbe49fcfc25f8b322a18b2",
      "tree": "3afd6b621f15ae72a89db2e0fcb2cd2510ccff34",
      "parents": [
        "72845136fe32f0e5299cfc3004031cf718c8fd0a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Oct 19 02:16:04 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue Oct 19 22:17:14 2021 +0200"
      },
      "message": "Add DP Clustering\n\n- Initial release of DP Clustering (experimental).\n- Supports differentially private k-means in the central DP model.\n- Demo on synthetic datasets.\n\nChange-Id: I44e80b105582d9652a1ffcf48c60ef83ba92d0e3\nGitOrigin-RevId: ae5fa74836df4435a801f5151dcdd91fec64cd7c\n"
    },
    {
      "commit": "72845136fe32f0e5299cfc3004031cf718c8fd0a",
      "tree": "d362847fd58b4245ba0d337fab02fc58ebccda89",
      "parents": [
        "fa618c5458384b79a39d19884b1a7a4b2a87bcdc"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Oct 15 06:45:57 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Oct 18 14:03:42 2021 +0200"
      },
      "message": "Updated documentation and cleanups in C++ and Privacy on Beam\n\nC++:\n- Remove inheritance from ApproxBounds::Builder\n- Replace deprecated Max with Quantiles in example\n- Update BoundedMean, cpp proto, bounded algorithm, count documentation\n\nPrivacy on Beam:\n- Capitalize parameter names in error messages to match with the names in\nAggregationParams (e.g. CountParams) structs.\n\nChange-Id: Ice2f205ddf82cafa6b3e867ea1190004cb4af904\nGitOrigin-RevId: 02060ce8836e819dc368ea2f671d0b51399e3d26\n"
    },
    {
      "commit": "fa618c5458384b79a39d19884b1a7a4b2a87bcdc",
      "tree": "7a4da3b81ea376721ea2483db32aef4f7cb80512",
      "parents": [
        "cf7ae49c9eee645d944445da49f8217cacae71ec"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Sat Oct 09 10:24:38 2021 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Wed Oct 13 10:12:42 2021 +0200"
      },
      "message": "Deprecate stddev in C++ lib\n\nPython Accountant library:\n- Add a method to create PLD from its CDF.\n\nC++ DP library:\n- Deprecate bounded stddev, clients should use variance instead.\n- Update the BoundedStandardDeviation docs.\n- ApproxBounds: Relax threshold for automated bounding when bounding\n  fails.\n- Remove inheritance for Quantiles\u003cT\u003e::Builer from AlgorithmBuilder.\n- BoundedSum: Fix assignment for max partitions contributed.\n\nPrivacy on Beam\n- Clamp negative counts to 0 for DistinctPrivacyID\n- Rename dereferenceValueToInt64-\u003edereferenceValueToInt64Fn, dereferenceValueToFloat64-\u003edereferenceValueToFloat64Fn for consistency\n- Add function registrations for these two functions and prunePartitionsKVFn\n\nPiperOrigin-RevId: 401008819\nChange-Id: I266cabd78776cdad111d6c5d6ca531aec0ad9888\nGitOrigin-RevId: 323b11478873e1c3b58123515bc200f590ba8f24\n"
    },
    {
      "commit": "cf7ae49c9eee645d944445da49f8217cacae71ec",
      "tree": "42e6fa5e086c27cc60eccc8a15f99aebe94ed01a",
      "parents": [
        "ed84e400e686089dcbb47e21f87c556a1591526a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Oct 01 09:34:55 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue Oct 05 15:43:21 2021 +0200"
      },
      "message": "C++ Utility Improvements and Algorithms Account Total Budget\n\nC++:\n  * Fixed Sum/Mean/Var/Stddev privacy budget underspending that led to\n    only using 1/6 of the budget (Var + ApproxBounds case).\n  * Semantic change when using implicit approximate bounds in\n    Algorithms: Epsilon must be set to the total epsilon in all cases.\n  * Remove inheritance from builders, which makes it easier to follow\n    how Algorithms get created.\n  * Store success probability in ApproxBounds instead of a threshold.\n\nPython Accounting:\n  * Update python bazel rule.\n  * Make python\u003e\u003d3.7 the default instead of python 3.6.\n  * Update library version to 0.0.2.\n\nChange-Id: I4d75805915d91bc45890ab542496fd053817ff24\nGitOrigin-RevId: e7684365c8c708cde895e0633cdd456d6477ee43\n"
    },
    {
      "commit": "ed84e400e686089dcbb47e21f87c556a1591526a",
      "tree": "b5f609a9ffa3117faeb6470e1f7fa285554cefcd",
      "parents": [
        "06495459a1dc8307139cf7d2a0679b34e3a2f181"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Sep 17 02:20:56 2021 -0700"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Tue Sep 21 04:43:32 2021 -0400"
      },
      "message": "Smaller refactoring in C++\n\nC++ library updates:\n - Rename ApproxBounds::Builder::SetThreshold to SetThresholdForTest.\n - Remove inheritance from BoundedSum::Builder.\n\nDocumentation update:\n - Fix path for partition selection playground Colab notebook.\n\nPiperOrigin-RevId: 396643157\nChange-Id: I7193615866874aecbba6d4a0891d54043fc11d13\nGitOrigin-RevId: b30f27071b897f5765501663f89e14d3c8ef588e\n"
    },
    {
      "commit": "06495459a1dc8307139cf7d2a0679b34e3a2f181",
      "tree": "94d811de659694ba7b6b5fd5e636fce2c145313b",
      "parents": [
        "8b08b2618fed8dd1839ad100f72e3b855192e874"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Sep 10 16:08:05 2021 -0700"
      },
      "committer": {
        "name": "dasm",
        "email": "dasm@google.com",
        "time": "Tue Sep 14 13:16:12 2021 -0700"
      },
      "message": "Add documentation and codelab for partition selection by truncated geometric thresholding.\n\nPiperOrigin-RevId: 396013287\nChange-Id: Ia2f5a77ab81ed5154d18a28013ecc054a23bdd45\nGitOrigin-RevId: 3594567e28f98c56f7932aa7cd97eb9eab1cd863\n"
    },
    {
      "commit": "8b08b2618fed8dd1839ad100f72e3b855192e874",
      "tree": "f7d0082c6d1ee3c66e74fa5a4ca117eb6e3c1ba9",
      "parents": [
        "e224a8635728026fb3aa9409ab3a98b9a3f5566a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Sep 09 06:58:45 2021 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon Sep 13 12:43:06 2021 +0200"
      },
      "message": "Minor improvements in Java DP library and Privacy on Beam\n\nJava DP library:\n- Use \u0027equals\u0027 instead of \u0027\u003d\u003d\u0027 for comparing aggregation states\n- Allow serialization of DP aggregations multiple times. Have\nPreAggSelectPartition use aggregationState as well\n- Some documentation improvements\n\nPrivacy on Beam:\n- Fix README: remove references to JSON in documentation\n\nDocumentation:\n- Fix link to Differential privacy computations in data pipelines\nreference doc in README\n\nPiperOrigin-RevId: 395058358\nChange-Id: I428edc43b0769fe303a39949c49bedac27f7c087\nGitOrigin-RevId: 45a777905445d6d8d95b70a0e1b02f65ad2d65b6\n"
    },
    {
      "commit": "e224a8635728026fb3aa9409ab3a98b9a3f5566a",
      "tree": "3dc29ab73fac79f5ebd3e42c7d608b28346f7002",
      "parents": [
        "d366feaa19984e3110bc32df765f142cfdf30fce"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Sep 03 08:05:27 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Sep 06 13:22:13 2021 +0200"
      },
      "message": "Utility improvements in C++, publish reference doc for DP in pipelines\n\nC++:\n- Fix utility degradation in fixed bounds case for Mean, Variance, and Stddev.\n- Update BoringSSL dependency.\n- Remove canonical_errors.\n\nPrivacy on Beam:\n- Fix format strings in select_partition.go.\n\nMisc:\n- Publish the reference doc for computations in data pipelines,\ncommon_docs/Differential_Privacy_Computations_In_Data_Pipelines.pdf.\n\nPiperOrigin-RevId: 394030624\nChange-Id: I25c7fc9e5f2eb0cb6a9006cb98d04f4c0cc4ca2f\nGitOrigin-RevId: 52234ea851b9ab13f467477a5262acc4e41f633b\n"
    },
    {
      "commit": "d366feaa19984e3110bc32df765f142cfdf30fce",
      "tree": "3624eb3238179b4558d45536a8efacdaa4ad7ac3",
      "parents": [
        "5296a9f0c4d2d636d3c67be9ec7d09960c64f393"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Aug 31 00:28:32 2021 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Tue Aug 31 11:11:07 2021 +0200"
      },
      "message": "Enable Gaussian noise for mean, improve quantiles error msgs in C++ lib\n\nPiperOrigin-RevId: 392706472\nChange-Id: Ie84771a2a7e15434a715df9e528b683e11fabe24\nGitOrigin-RevId: e011972d24e5bd3cb7dad098e11c2c28fc9edd2d\n"
    },
    {
      "commit": "5296a9f0c4d2d636d3c67be9ec7d09960c64f393",
      "tree": "c905edd270a6015d36b4ce3c054795bf4f6c2db8",
      "parents": [
        "055e9e71ba0bf9d5c1479d2b7796f5fb95c4db4a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Aug 19 10:50:29 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue Aug 24 13:59:52 2021 +0200"
      },
      "message": "Fixed statistical tests and add budget checks in C++, Update Beam version\n\nC++:\n  * Fixed test setup for statistical tests\n  * Add privacy budget consumption checks to production\n  * Added `Quantiles::GetQuantiles`\n  * Clarify thread-safety properties in class comments\n\nGo/Privacy-on-Beam:\n  * Update Beam version to v2.31.0\n  * Improve tests\n\nPiperOrigin-RevId: 391021846\nChange-Id: Ib5528c8a488e3417cc6e330319b7d307ad725358\nGitOrigin-RevId: aa0ed3ba4e073c5caddcb0589560929e9889203a\n"
    },
    {
      "commit": "055e9e71ba0bf9d5c1479d2b7796f5fb95c4db4a",
      "tree": "0397fb18df7dff3a0048ca092c19084cf448cbbf",
      "parents": [
        "8d1c55748b43a2e0d0c31e6d33a37e08041473e3"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Aug 11 05:48:01 2021 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon Aug 16 11:30:09 2021 +0200"
      },
      "message": "Small changes in documentation for Privacy on Beam and\nAccounting library.\n\nPrivacy on Beam:\n- Update Bazel version to v1.1.0 in README\n\nC++ Accounting library:\n- Handle more argument errors.\n- Fix one-definition-rule violation in testing code.\n\nPiperOrigin-RevId: 387895132\nChange-Id: I3eabeec1d2be9410e21cb3457ce48e4c6c0899dd\nGitOrigin-RevId: bc55c5a8d52f0612e834537a8e22ce42fbf545e8\n"
    },
    {
      "commit": "8d1c55748b43a2e0d0c31e6d33a37e08041473e3",
      "tree": "83456578d5e33dbcc5b9b50e2d71423c8f3906d4",
      "parents": [
        "e149618d032f97b476fecc5839a278cc680def08"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jul 30 03:42:53 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Aug 02 14:31:22 2021 +0200"
      },
      "message": "Add quantile trees and deprecate order statistics in C++\n\nC++:\n- Add an interface for multiple quantiles, supported by Quantile\nTrees\n- Mark OrderStatistics as deprecated in favor of the new quantile implementation\n\nGo \u0026 Privacy on Beam:\n- Various fixes and improvements for CI with the `go` tool\n\nPrivacy on Beam:\n- Improve instructions for depending on the library with Bazel\n- Fix typos in DistinctPerKey tests\n\nAccounting:\n- Add a function to conveniently create PLD for Discrete Laplace,\nDiscrete Gaussian and Gaussian Mechanisms\n\nGitOrigin-RevId: 958acb2199902126d3d333dd8d1da150fa281911\nChange-Id: I89de361be98dcc6da9675d5730f5b06bb7c59a31\n"
    },
    {
      "commit": "e149618d032f97b476fecc5839a278cc680def08",
      "tree": "89042344ff87cf4ee10a3de84990343553950535",
      "parents": [
        "30525af3cfeefd77ada9d9f405f10a54c1c42b61"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jul 23 05:02:30 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Fri Jul 23 15:57:03 2021 +0200"
      },
      "message": "Fix a rare privacy bug in DistinctPerKey in Privacy on Beam.\n\nThe bug occurred when there are outlier users in the input that\ncontribute to many partitions and/or to many values AND the\nvalues contributed are the same as values from other users (the second\npart is critical, if the contributed values only come from a single user\nthen the bug does not occur). Then, the output might not have be DP due\nto incorrect contribution bounding. See the comments in the newly added\ntests for concrete examples of when/how the bug used to occur.\n\nGitOrigin-RevId: 27bd7a0f5ccb16fe5bd0acda5d141713262638ab\nChange-Id: I68c3765e95a6b97ed537d1c188736b28b776417e\n"
    },
    {
      "commit": "30525af3cfeefd77ada9d9f405f10a54c1c42b61",
      "tree": "7c5d5303adf00335279e42831206b0c6ce22ba93",
      "parents": [
        "8da48001ccbde6babfb39d5ba9d0e2a2a0b7983b"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jul 23 02:07:23 2021 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Fri Jul 23 12:43:48 2021 +0200"
      },
      "message": "Rules for generating Java artifacts, add support for \"go\" tool, add/improve tests\n\nPrivacy on Beam:\n- Make the library build \u0026 test \u0026 run with the \"go\" tool\n- Make doFn names in codelab consistent\n\nGo DP library:\n- Make the library build \u0026 test \u0026 run with the \"go\" tool\n- Switch to black box testing for dpagg confidence intervals\n\nJava DP library:\n- Add Bazel rules to generate artifacts for maven\n- Update Rules JVM External from 4.0 to 4.1\n- Fix typos\n\nC++ Accounting Library:\n- Add tests\n- Add matcher for comparing PMFs\n- Add a function for conveniently creating PLD for Laplace mechanism\n\nGitOrigin-RevId: 367f23fd45039df50f89250d1cb4ad1bd6bb4854\nChange-Id: Ibda38b21799938de9ef91091c4c9226caa35ffa4\n"
    },
    {
      "commit": "8da48001ccbde6babfb39d5ba9d0e2a2a0b7983b",
      "tree": "2cd47c3579acff8ba6d457373a8c16b77d21903c",
      "parents": [
        "aba5f2d9a21da4fc414fa951e7264e10abcadc07"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jul 09 13:33:10 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Tue Jul 13 12:52:17 2021 +0200"
      },
      "message": "Minor cleanups\n\nJava DP: Fix typos in comments\n\nC++ Accounting Library: Remove truncation mass added to infinity_mass\n  for the optimistic case.\n\nGitOrigin-RevId: 7a51b9bb11da606e1deca77a38192dc05f7e3894\nChange-Id: I5bc74308e356046ceb92c1683cce8fc0da1ebb59\n"
    },
    {
      "commit": "aba5f2d9a21da4fc414fa951e7264e10abcadc07",
      "tree": "d9f33c6a796966b2a742a9f7aaccb3f20b4da4a8",
      "parents": [
        "114505ef7d70cc25cd5472461d80e51f5ed1c4a8"
      ],
      "author": {
        "name": "Esteban Gehring",
        "email": "esteban.gehring@gmail.com",
        "time": "Tue Jul 13 11:32:01 2021 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 13 11:32:01 2021 +0200"
      },
      "message": "use correct function in sum codelab example (#83)\n\n* use correct function in sum codelab example\r\n\r\n* use correct function in multiple codelab"
    },
    {
      "commit": "114505ef7d70cc25cd5472461d80e51f5ed1c4a8",
      "tree": "94b1f9e62b0b936840924e0056b633df885c2649",
      "parents": [
        "8e50da312ba9ab8e001aed0a3cdb43e604fb132e"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Sat Jun 26 01:14:29 2021 -0700"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Jul 05 15:10:26 2021 +0200"
      },
      "message": "- [C++ Accounting Library] Add std:: prefix for math functions\n- [Python Accounting Library] Add error handling\n- [Go] Implements variance and standard deviation\n- Minor dependency version updates\n\nGitOrigin-RevId: 70d2e94d6d56a102a97e20b46e709e969f6130a6\nChange-Id: Iad846835930a34e49504d856f56d384821c87ad5\n"
    },
    {
      "commit": "8e50da312ba9ab8e001aed0a3cdb43e604fb132e",
      "tree": "7b68b49899a11c5dbe335a979383d7381447bea0",
      "parents": [
        "a7914d61fa57b7e47deb756b1859a4b64a32e178"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jun 14 06:55:01 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Wed Jun 16 12:08:44 2021 +0200"
      },
      "message": "Various cleanup \u0026 bugfixes \u0026 refactorings in C++ and Privacy on Beam.\n\nPrivacy on Beam:\n- Improve error reporting by propagating errors to the top-level\n  functions and not log.Exit\u0027ing in leaf functions. Also switch to using\n  log.Fatal for more idiomatic and informative error reporting\n- Generate test.proto Go source code so that the library can be built\n  by the \"go tool\"\n- Various refactorings, including renaming genfunction.go to\n  generated_functions.go\n\nC++:\n- Remove usages of StatusOr\u003cT\u003e::ValueOrDie in the DP tester\n- Use C++\u0027s cmath rather than C\u0027s math.h\n- Remove internal usage of deprecated `DefaultEpsilon`\n\nGitOrigin-RevId: 15bd020dc5f4ed6ea62f7434d1d77faff9d2ad08\nChange-Id: If4bcc639c05730991a5365c4911fc6c7e65ca1e3\n"
    },
    {
      "commit": "a7914d61fa57b7e47deb756b1859a4b64a32e178",
      "tree": "8cad77af7c365039e7a20cacffc8265ddce13b18",
      "parents": [
        "327972c1ae710e8cd0a4754fffdd78c3500272ee"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jun 07 09:32:48 2021 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Wed Jun 09 11:37:16 2021 +0200"
      },
      "message": "Fix GetDeltaForEpsilon in Accounting lib, fix Gaussian noise in C++ DP lib\n\nAccounting (C++):\n- Fix bug in GetDeltaForEpsilon\n\nAccounting (python):\n- Add missing typing.Optional type annotations to function\n\nC++ DP library:\n - Fix formula in ApproximateBinomialProbability for Gaussian noise\n\nJava DP library:\n - Improve numerical stability for secure Gaussian noise\n\nDocumentation:\n - Fix formula in Lemma 7 of the secure noise doc\n\nPrivacy-on-Beam and Go DP library:\n  - Small fixes, formatting, and clean-ups\n\nGitOrigin-RevId: 77d6d5e77715a0064ee04654554e1d5c0e1b6e71\nChange-Id: I116d3d49cf1b815379d515285a31152b9cc4672a\n"
    },
    {
      "commit": "327972c1ae710e8cd0a4754fffdd78c3500272ee",
      "tree": "f98a5502b92bd4ae693962a1147d3ede5e18c514",
      "parents": [
        "08ae00cd0411166931d784ae934b19904b9c8c92"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed May 26 14:51:41 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Thu May 27 16:46:38 2021 +0200"
      },
      "message": "Auto-selecting mechanism for C++, smaller improvements for Go\n\nC++:\n  - Add MinVarianceMechanismBuilder for auto-selecting between Laplace\n  and Gaussian\n  - Remove deprecated DefaultEpsilon in examples\n  - Remove unused util function\n  - Check return value of RAND_byte()\n\nGo:\n  - Small improvements to dpagg documentation and tests.\n  - Disallow lower\u003dupper in dpagg aggregations that take lower and upper\n  as parameters.\n\nGitOrigin-RevId: 0e09bb5f55739ebc4365ec51179dd814dea790ba\nChange-Id: I064fce058333734d036239424e49f73e70cdff51\n"
    },
    {
      "commit": "08ae00cd0411166931d784ae934b19904b9c8c92",
      "tree": "67714d089bc32794ba549af646d11fd0b5630933",
      "parents": [
        "042bb215213dd89eb9f5b9ea780706be8d106c3d"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed May 19 12:50:43 2021 -0700"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Tue May 25 09:46:38 2021 +0200"
      },
      "message": "Add NumericalMechanism::GetVariance in C++, update ZetaSQL dep\n\n  - Add GetVariance() to NumericalMechanism in C++\n  - Update ZetaSQL dependency and replace removed methods\n\nGitOrigin-RevId: 09fad68a4dce7da5ad94fe76d6c3ce5e3d4c492b\nChange-Id: I9ef22468a704a6dfbb6fa52cd7fb3a31274260e4\n"
    },
    {
      "commit": "042bb215213dd89eb9f5b9ea780706be8d106c3d",
      "tree": "e5f1909856d13f75cb8161f9abde0410523ed20b",
      "parents": [
        "78d3fb8f63ea904ea6449a8276b9070254c650ec"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu May 13 16:00:50 2021 -0700"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Mon May 17 13:42:33 2021 -0400"
      },
      "message": "Minor: documentation rename.\n\nGitOrigin-RevId: be35949b27e1176d2e6e29ab1d098d0b6f00bd99\nChange-Id: I809eaf64629a71c6907b8c63228bbc18e42b5691\n"
    },
    {
      "commit": "78d3fb8f63ea904ea6449a8276b9070254c650ec",
      "tree": "aea87ac7b0d8ac7ef612d7f999b28ebed80150d3",
      "parents": [
        "73207653bb5a71df79e2bcf0711488c4a91b5cc2"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon May 10 05:45:37 2021 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon May 10 20:02:02 2021 +0200"
      },
      "message": "Refactoring \u0026 small fixes in Java DP library, new features in C++ DP library \u0026 Accounting.\n\nDP libraries:\n- Use com.google.privacy.differentialprivacy.proto package name for Java protos\n- Add GaussianPartitionSelection as a PartitionSelectionStrategy to C++ library\n- Add documentation for quantiles algorithm (Differentially_Private_Quantile_Trees.pdf)\n\nAccounting:\n- Add serialization for Privacy Loss Distribution\n\nGitOrigin-RevId: 9bb13902faf0011001f79b538d02f9f9cf6dfa81\nChange-Id: I33ac735b9854454f9f6c23cc77b2a792d983f171\n"
    },
    {
      "commit": "73207653bb5a71df79e2bcf0711488c4a91b5cc2",
      "tree": "a8cb9e77b1184e44fde3baedc18c10b178b92368",
      "parents": [
        "68bdbb24fe493638d937120c08927398604c55af"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Apr 29 10:32:02 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon May 03 18:00:28 2021 +0200"
      },
      "message": "Confidence intervals for Quantiles in Java \u0026 optimizations in Accounting\n\nJava:\n - Implement confidence intervals for Quantiles\n - Refactor existing confidence interval implementations\n\nPrivacy on Beam:\n - Modify Bazel test sizes (Also for Go DP Library)\n - Refactor DoFns to return errors instead of log.Exit\u0027ing\n\nAccounting:\n - Optimize self convolution for both C++ and Python\n\nGitOrigin-RevId: f11113214c18a07f0ce29187e9e7945940f53b06\nChange-Id: Id9c5ba65f3b47f84b5c3f2b9ba21ed4fefd41359\n"
    },
    {
      "commit": "68bdbb24fe493638d937120c08927398604c55af",
      "tree": "229a38dfe8cb1a6202f98c74893fc615a1b52718",
      "parents": [
        "2d07a0cc6bf4100fb4b6abc8d512cd2485e043ac"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Apr 21 01:56:47 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Wed Apr 21 11:25:13 2021 +0200"
      },
      "message": "Privacy-on-Beam: support for quantiles, C++ accounting: fast delta\n\nC++ DP Lib:\n  * Migrated to absl::Status\n\nPrivacy-on-Beam:\n  * Implement QuantilesPerKey along with pbeamtest support\n  * Updated dependencies\n\nC++ accounting library:\n  * Fast computation of delta without convolution\n\nGitOrigin-RevId: 9faba9cd2873465e0f52bc2f9304dd9fa27e6998\nChange-Id: I908cb6281e0316be82ae7264a6a79dc3ac126f03\n"
    },
    {
      "commit": "2d07a0cc6bf4100fb4b6abc8d512cd2485e043ac",
      "tree": "7bf928913711dfc13280d18ed2121f6187fcfeaf",
      "parents": [
        "f3e565a14b7d48869b650483de897eebc89ad494"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Sat Apr 17 20:58:57 2021 -0700"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon Apr 19 16:40:21 2021 +0200"
      },
      "message": "Fixes and cleanups in Accounting libraries,Privacy on Beam and Go DP library.\n\nC++ accounting library:\n- Change float-based artifacts to double-based\n- Check when composing two PLDs (both pessimistic or both optimistic)\n\nPython accounting library:\n- Use vectorized call when exponentiate during computation of delta from epsilon\n- Fast computation of delta without convolution\n\nPrivacy on Beam:\n- Small cleanup changes.\n- Refactoring to prepare for adding QuantilesPerKey.\n\nGo DP library:\n- Update dependencies\n- Simplify BoundedQuantiles algorithm and increase alpha\n\nGeneral updates:\n- Update README: new supported algorithms, new reference links\n\nGitOrigin-RevId: c904cb1ba8ce14c61a69bad25f8adabdbe68f27d\nChange-Id: I47805ba7b4927d162767510225214935c51f43b5\n"
    },
    {
      "commit": "f3e565a14b7d48869b650483de897eebc89ad494",
      "tree": "2c6d2b113067121cb6fe9c611105def312900c2b",
      "parents": [
        "5542deedbbd1b2028e2cd9bb7dcc4a31a47fb8bc"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Apr 12 11:18:26 2021 -0700"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Mon Apr 12 20:48:33 2021 +0200"
      },
      "message": "Add DP Accounting in C++\n\n  * supports creation of PLDs for (discrete) Laplace and Gaussian mechanisms, and Randomized Response\n  * allows epsilon, delta calculations from PLDs\n  * supports composition of PLDs\n\nGitOrigin-RevId: cfc76a431e606fc2ac6e1c479a5049913d0de5f9\nChange-Id: Ibc84cc9f567be3818dc3e14b250b5dfc7d8a0ea2\n"
    },
    {
      "commit": "5542deedbbd1b2028e2cd9bb7dcc4a31a47fb8bc",
      "tree": "df208596ba1d6f3667c0c346fa3e17a6d64152a1",
      "parents": [
        "767237bd21c3a3fdecd992c08c001aa95662113f"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Apr 12 08:07:48 2021 -0700"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Apr 12 17:46:02 2021 +0200"
      },
      "message": "Add Quantiles for Go and pbeamtest for Privacy on Beam\n\nPython Accounting:\n  - Fixes slow fft computation by resizing to next_fast_len\n  - Optimizes PLD composition via truncation\n  - Optimizes PLD creation via numpy vectorized calls\n\nC++:\n  - Update dependencies\n\nJava:\n  - Update dependencies\n  - Add more statistical tests\n\nGo:\n  - Implement Quantiles\n  - Refactoring of aggregation primitives through exposing Noise\n  in order to be able to implement pbeamtest in Privacy on Beam.\n\nPrivacy on Beam:\n  - Implement pbeamtest which provides a no noise option (with or\n  without contribution bounding) for testing Privacy on Beam\n  pipelines.\n\nGitOrigin-RevId: 3e4b020c4dc8ece1f0d30ada3bcdaad076697869\nChange-Id: If0f97f26157feb7b028172d6c3ca39687375347c\n"
    },
    {
      "commit": "767237bd21c3a3fdecd992c08c001aa95662113f",
      "tree": "7a12e875ff6e73a0b1d6f2205f73a6f71c7dc4f2",
      "parents": [
        "3f0e417af139c41f4c8d127c8f59bec13583abab"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Mar 17 04:24:24 2021 -0700"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Mar 22 18:11:17 2021 +0100"
      },
      "message": "Accounting: Add privacy loss for Discrete Gaussian Mechanism\n\nGo \u0026 Privacy on Beam:\n- Update the Go, Gazelle and rules_go dependencies to the latest\nversions\n\nGitOrigin-RevId: b977db110b8b053e909cc7d8d868bfc687f439b4\nChange-Id: I18ae9e4764c601ef1e6b40e0f2c1eb8f11af72aa\n"
    },
    {
      "commit": "3f0e417af139c41f4c8d127c8f59bec13583abab",
      "tree": "0559889f588febf0a639ac119a49e15ad4096fa6",
      "parents": [
        "bd820d08540a4d0695dc7c3661c5a66b0441e223"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Mar 15 12:12:42 2021 -0700"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Wed Mar 17 09:56:00 2021 +0100"
      },
      "message": "Fix clamping for variance and stdev in C++, add quantiles in Java\n\nThis change includes an important fix to bound the sensitivity for the\nvariance and stdev implementation in C++.\n\nC++:\n- Fix clamping in BoundedVariance implementation.\n\nJava:\n- Implement BoundedQuantiles.\n\nGo \u0026\u0026 Privacy on Beam:\n- Small cleanup type modifications.\n\nGitOrigin-RevId: f71680e3e53195078855a662f9b107bd4b483040\nChange-Id: Ie6e27cd134f54f70203b4f10a446e82528dd09f7\n"
    },
    {
      "commit": "bd820d08540a4d0695dc7c3661c5a66b0441e223",
      "tree": "62a2a2ef2ed8cd00cbddfeebcb634010dfdae4e5",
      "parents": [
        "333cc7329e5ea5e572cf0d17dea90033b9b51258"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Mar 03 06:01:31 2021 -0800"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Wed Mar 10 10:46:05 2021 +0100"
      },
      "message": "Change testing setup for Java and Privacy on Beam\n\nC++:\n- Changed overflow behavior.\n\nJava:\n- Fix naming inconsistency for parameter of generateVote method.\n\nPrivacy on Beam:\n- Refactor test code and helperstest (now testutils) to prepare for\na no noise implementation for test pipelines.\n- Fix a bug in DistinctPrivacyID where we always overcounted counts\nby 1 when public partitions were used.\n\nTesting:\n- Reformat textprotos that describe the statistical tests.\n\nGitOrigin-RevId: c312f901f5cb07dae96c5c88127f08c4113bb5e8\nChange-Id: If9e0fd93312b05ac798b5ed324cffc82337ddc4b\n"
    },
    {
      "commit": "333cc7329e5ea5e572cf0d17dea90033b9b51258",
      "tree": "074a8133004128700b0189bf3c107d85174f4b3b",
      "parents": [
        "edb4c9ceceb3a16129fcc24c84649260e7d3ec88"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Feb 26 00:59:23 2021 -0800"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Mar 01 14:06:02 2021 +0100"
      },
      "message": "Refactored bounded DP algorithms in C++\n\n  * Bounded algorithms are split into algorithms with fixed bounds and algorithms with approximate bounds\n  * Fixed `BoundedVariance` and `BoundedStandardDeviation` to use 1/4 less budget.\n  * Templated return type of `NumericalMechanism::AddNoise`\n  * Updated ZetaSQL dependency\n\nGitOrigin-RevId: c8c67a5a2507ed03a15dd9372824da36e3d52602\nChange-Id: Ia0d7dcd9ffa8eb2bf962c5603d43398d862bd3f9\n"
    },
    {
      "commit": "edb4c9ceceb3a16129fcc24c84649260e7d3ec88",
      "tree": "1beff001411fd97c70b69203130b59744061da45",
      "parents": [
        "0425b18b25fd051f0d6a3342211a629c37467726"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Feb 22 00:40:00 2021 -0800"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Tue Feb 23 12:00:13 2021 -0500"
      },
      "message": "Serialization for numerical mechanisms in C++, documentation updates\n\nC++ library:\n - Added Serialization for numerical mechanisms\n - Serialization of Algorithms is now `const`\n - Refactored `BoundedSum` (not visible externally)\n\nJava library:\n - Documentation updates to BoundedMean, BoundedVariance and order statistics\n\nPython DP accountant:\n - Add identity privacy loss distribution.\n\nGitOrigin-RevId: dcf9737b39b6d753411e81592d688141c1b8e9b8\nChange-Id: I7671d0a99baeeeb53109c4235d740cc04a29b58b\n"
    },
    {
      "commit": "0425b18b25fd051f0d6a3342211a629c37467726",
      "tree": "bb516ec82c54f12826f209b4028293316a301534",
      "parents": [
        "9dd0d09830ccd505de0e9b451edfe1d0a65b7ade"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Feb 11 16:25:56 2021 -0800"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Tue Feb 16 17:19:10 2021 +0100"
      },
      "message": "Update C++ documentation\n\nGitOrigin-RevId: 9c86831207e99329fe11f7b754054545aec31a75\nChange-Id: I4f30ba934f663077a0d700c228ef3c5f976e5211\n"
    },
    {
      "commit": "9dd0d09830ccd505de0e9b451edfe1d0a65b7ade",
      "tree": "63d8450811f1431cc1ed5ed24b7f751ae846320d",
      "parents": [
        "7fc1ba7bf2bd5ccb3f535408c8f08cd83e95e7c8"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Feb 08 03:53:25 2021 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Tue Feb 09 17:36:11 2021 +0100"
      },
      "message": "Many smallish improvements overall.\n\nC++:\n- Change count-related variables from uint64 to int64 \u0026 prevent\nnon-positive count arguments.\n- Add tests for rounding integers to the granularity for Laplace.\n- Add documentation on the MaxContributionsPerPartition and\nMaxPartitionsContributedTo options.\n\nJava:\n- Library doesn\u0027t fail if it cannot recognize noise type and\nvalidate delta or sensitivity. This allows clients to plug\nin their own noise.\n\nAccounting:\n- Fix output missing output type for self_convolve_dictionary.\n- Separate out self_convolve and make the list size smaller by 1.\n- Move convolution-related functions to common.\n\nPrivacy on Beam:\n- Small refactorings.\n- Fix a bug where parameter checks were ignored for DistinctPerKey.\n\nGitOrigin-RevId: 038419cdbd82b806a29e9fb221ec33d238742c46\nChange-Id: I249a28d095dd895dea1c30879f50f4a36b3d47bf\n"
    },
    {
      "commit": "7fc1ba7bf2bd5ccb3f535408c8f08cd83e95e7c8",
      "tree": "70d72abaec3cf83585b324a518f2f56a20470b34",
      "parents": [
        "cc635597dbebc44caa6717df0be23df6d3a53910"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Jan 29 02:11:45 2021 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Mon Feb 01 19:16:24 2021 +0100"
      },
      "message": "Documentation improvements\n\nGitOrigin-RevId: 6dc11f20a7705142d4d42f757d2b3b0dbf95515e\nChange-Id: Ia74bc46fa641399c2e6c1a3fa26eb3cb4edfe17d\n"
    },
    {
      "commit": "cc635597dbebc44caa6717df0be23df6d3a53910",
      "tree": "c3c4e84896e2cf196aef8a58c20b172a43c2cc12",
      "parents": [
        "e61e496cd72a1283c2f3583dad7c642e4abfb9a4"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Thu Jan 28 05:47:28 2021 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Thu Jan 28 14:53:30 2021 +0100"
      },
      "message": "ZetaSQL CLI/codelab documentation improvements.\n\nGitOrigin-RevId: 4eacfd402c6d8f329a4cefc4e39189836e4f85b7\nChange-Id: I404a08a9450eecc10a399849df37920e661ac1e8\n"
    },
    {
      "commit": "e61e496cd72a1283c2f3583dad7c642e4abfb9a4",
      "tree": "87fabe0ff4949ff6192c54f1eb3165895901056a",
      "parents": [
        "30963e18fd139e593fbf8a840dd619c303884e81"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Jan 27 11:23:38 2021 -0800"
      },
      "committer": {
        "name": "dasm",
        "email": "dasm@google.com",
        "time": "Wed Jan 27 14:43:13 2021 -0800"
      },
      "message": "Implement a CLI for running DP queries on ZetaSQL and a codelab.\n\nPrivacy on Beam:\n- Roll back on direct.Execute change to fix build problems.\n\nGitOrigin-RevId: a2d27922edfd7cad854c4c422a73eac2e2f1b925\nChange-Id: I803035144c5ad0c03f3f541a836678279c3335e9\n"
    },
    {
      "commit": "30963e18fd139e593fbf8a840dd619c303884e81",
      "tree": "0d0502d6a8f9762044ed751e94e2efef227b8dbd",
      "parents": [
        "3d35a71d4eecb678f23ba1a94765ab7231075a13"
      ],
      "author": {
        "name": "Christoph Dibak",
        "email": "christoph@dibak.de",
        "time": "Wed Jan 27 20:02:46 2021 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 27 11:02:46 2021 -0800"
      },
      "message": "Pin Bazel version (#70)\n\nPinning Bazel to version 3.7.2 as the recently released 4.0.0 does not\r\nwork with our dependencies."
    },
    {
      "commit": "3d35a71d4eecb678f23ba1a94765ab7231075a13",
      "tree": "1e219212352b3a2aebf12e7af8269e9afd41572a",
      "parents": [
        "de8460c9791de4c89a9dbb906b11a8f62e045f7b"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Jan 20 08:25:52 2021 -0800"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Fri Jan 22 17:41:32 2021 +0100"
      },
      "message": "Simplify usage of Privacy-on-Beam for external projects\n\n  * added instructions for external projects\n  * incorporate Beam Direct Runner API change\n\nGitOrigin-RevId: 0a948e7c7861de11a51282efc3afade479817d31\nChange-Id: I47986aa151be34d20cdd01fc7a00d50408dc2171\n"
    },
    {
      "commit": "de8460c9791de4c89a9dbb906b11a8f62e045f7b",
      "tree": "181c657e368e2138f9499807376fd220987ff02f",
      "parents": [
        "644dac4455e65ded06b6a6367b9fd881507d042c"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jan 18 09:14:57 2021 -0800"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Tue Jan 19 12:33:23 2021 +0100"
      },
      "message": "Update contact channels\n\nC++:\n  - Added builder for distributions\n  - Added error messages for sensitivities\nJava:\n  - Added serialization for BoundedMean\n  - Simplified testing of builders and improved test coverage\n\nGitOrigin-RevId: 68012e8f7d1dde6f82474a7012796090e2e23380\nChange-Id: I06d049cad534062af63e4e231d4007e67a13d4b3\n"
    },
    {
      "commit": "644dac4455e65ded06b6a6367b9fd881507d042c",
      "tree": "fd8680ecda5ffd61975299df3d75002303565ba5",
      "parents": [
        "8c3e89314c6d29dd9c01792122c2398da587d442"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Jan 11 02:18:48 2021 -0800"
      },
      "committer": {
        "name": "Yurii Sushko",
        "email": "sushko@google.com",
        "time": "Mon Jan 11 11:42:18 2021 -0500"
      },
      "message": "Minor fixes and improvements.\n\nJava:\n - Ignore non-positive input in Count\n - Fix rounding in discrete Laplace and Gaussian noise and add tests to ensure that the result of addNoise is a multiple of the granularity\n\nPython accountant:\n - Add DP accounting using advanced composition theorem to python accounting library\n\nGo:\n - Improve documentation for PreAggSelectPartition.GetHardThreshold()\nand checks.go.\n - Add a public LargestRepresentableDelta constant.\n\nPrivacy on Beam:\n - Resolve flakiness of select_partitions_test.go\n - Fix some test comments about thresholds.\n\nGitOrigin-RevId: 6f1f1424a7b28d9778ab0064e54307dbe3d23da4\nChange-Id: Ib14053b3662e11848343db557f4306e2fec95599\n"
    },
    {
      "commit": "8c3e89314c6d29dd9c01792122c2398da587d442",
      "tree": "87c79076f0f34dd12b3750c751379580e6e3ef2e",
      "parents": [
        "82f7a15fc90f83c2bdcd77ab3ba8ad2552b57cb9"
      ],
      "author": {
        "name": "Simin Oraee",
        "email": "8383117+RinoOo@users.noreply.github.com",
        "time": "Mon Dec 28 10:16:06 2020 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 28 11:16:06 2020 +0100"
      },
      "message": "Enable Gaussian Mechanism for Count (#65)\n\nEnable Gaussian Mechanism for Count\r\n\r\n- Added delta as private field to the algorithm base class\r\n- Added constructor to set delta for the Count algorithm\r\n- Added tests for using Gaussian mechanisms with Count\r\n- Fixed std:: namespace usage\r\n\r\nCo-authored-by: Simin Oraee \u003cniwis@google.com\u003e"
    },
    {
      "commit": "82f7a15fc90f83c2bdcd77ab3ba8ad2552b57cb9",
      "tree": "b72b0c9bea571de47acca6ca19b1eeff5252bf4a",
      "parents": [
        "8f899e0af669098e76f6dabd8dc0dfbf885e285a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Dec 15 14:46:24 2020 -0800"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Thu Dec 17 10:25:45 2020 +0100"
      },
      "message": "Refactored C++ validation functions, behavior for overflows\n\nC++:\n  - refactored validation functions\n  - added clang-format config\n  - reverted behavior for overflows\n\nGo:\n  - fixed rounding integers to granularity for Gaussian and Laplace noise\n\nGitOrigin-RevId: 14f17d401a353975899ddbbbd33d36261ef02dde\nChange-Id: I3d298922f4529b59a682600c8d48f48b7854d387\n"
    },
    {
      "commit": "8f899e0af669098e76f6dabd8dc0dfbf885e285a",
      "tree": "5ca824376f39883761bc3e7facb50ccfc2a30064",
      "parents": [
        "5b16577a4578c325c3745c6342697b9ca7dda3b6"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Dec 02 23:25:05 2020 -0800"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Dec 07 09:44:14 2020 +0100"
      },
      "message": "- Updates PostgreSQL installation notes.\n- Improve corner case handling for noise parameter search in the DP accountant.\n\nGitOrigin-RevId: 1e1abbbaa76e0303aec6baed688b6d8c06af1763\nChange-Id: If890b5d2f38e0834831ec61c5aa21df3e897615c\n"
    },
    {
      "commit": "5b16577a4578c325c3745c6342697b9ca7dda3b6",
      "tree": "0fab12ffbdd8d909d290a2ef13c0b4167f47cfe0",
      "parents": [
        "f9fa472a46554320497f127105b9424565718132"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Tue Nov 24 08:40:01 2020 -0800"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Mon Nov 30 14:13:03 2020 +0100"
      },
      "message": "Improve the main README\n\nGitOrigin-RevId: 3c9a4576201c9bb9d59c414a2caf804b29237932\nChange-Id: I318b3febb5a44e9fc2ab19ae1a6566c1dbd2346b\n"
    },
    {
      "commit": "f9fa472a46554320497f127105b9424565718132",
      "tree": "99e99181fa42e1a3725309121f4fc168f01b7ebf",
      "parents": [
        "70dcf9eeeb5ffb3703992b4afbd9294fbc728c06"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Nov 23 06:35:04 2020 -0800"
      },
      "committer": {
        "name": "MashaTelyatnikova",
        "email": "telyatnikova.maria@gmail.com",
        "time": "Mon Nov 23 16:06:40 2020 +0100"
      },
      "message": "Added Python DP library, removed base::Status for C++\n\nDocumentation changes:\n- Change \"Privacy Accounting\" -\u003e \"Differential Privacy Accounting\" in library description.\n- Add details to README.md: supported version, examples, how to run.\n- Other small fixes\n\nC++ library.\n- Use absl::status.\n- Fixed reordered initialization in constructors.\n\nGitOrigin-RevId: 1af8df9433b1f484c586476cdecb704795d2a0ff\nChange-Id: Ic85bcde9aad3dd2699dc7d8364c1ed615e51e5c1\n"
    },
    {
      "commit": "70dcf9eeeb5ffb3703992b4afbd9294fbc728c06",
      "tree": "370e836becbd8d510549c93b3ebec36e10aa4be4",
      "parents": [
        "862a3052c89f503b7dcd3555eb48df376a409871"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Nov 16 02:25:38 2020 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Wed Nov 18 13:24:31 2020 +0100"
      },
      "message": "Publish the DP Accounting library to PyPI (https://pypi.org/project/dp-accounting/).\n\nAccounting:\n- Rename folder to dp_accounting for consistency with PyPI package\n- Add setup file for the package\n- Move shared code to common.py\n\nC++:\n- Loosen tolerances in numerical mechanisms test to eliminate flakiness.\n\nGitOrigin-RevId: e692f7a8b461e7fa35a845724997fb4c8e364e64\nChange-Id: I0021169e7827065baba043f9e10cd1a8015a42f0\n"
    },
    {
      "commit": "862a3052c89f503b7dcd3555eb48df376a409871",
      "tree": "c98bd265ffa68bc98d037c90d09554039a259912",
      "parents": [
        "0e95b99af5fedff95b8cab3739009bbc1366c068"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Nov 11 01:16:20 2020 -0800"
      },
      "committer": {
        "name": "miracvbasaran",
        "email": "miracvbasaran@gmail.com",
        "time": "Wed Nov 11 13:52:56 2020 +0100"
      },
      "message": "New Privacy on Beam codelab example/New Accounting Feature\n\nPrivacy on Beam:\n- Add a public partitions example for count.\n- Modify existing examples to use public partitions.\n\nAccounting:\n- Add functions to compute smallest noise for a given number of queries\n  for Laplace, Discrete Laplace and Gaussian.\n\nGitOrigin-RevId: 1db91c0f7cba7d5b71e5110a1e974f2c787bbc38\nChange-Id: I8ef0d4ed1819f76f32466d33a2f11db79c0ee54c\n"
    },
    {
      "commit": "0e95b99af5fedff95b8cab3739009bbc1366c068",
      "tree": "8a2a639cecb4a5967ad428418fbf33a17e79cc87",
      "parents": [
        "90dc9abb34d636c5d2cb7fbdbbf0c72954c744e7"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Mon Nov 09 00:37:19 2020 -0800"
      },
      "committer": {
        "name": "Kulankhina",
        "email": "oleksandra.kulankhina@gmail.com",
        "time": "Mon Nov 09 16:02:21 2020 +0100"
      },
      "message": "Refactor and move Privacy Loss Accountant; fix noise for granularity\u003e1\n\nJava:\n- Fix Integer Noise for (unlikely) cases where granularity \u003e 1\n\nPrivacy Loss Accountant\n- Refactor AdditiveNoisePrivacyLossDistribution to AdditiveNoisePrivacyLoss\n- Move the code to python/ folder\n\nC++:\n- Add faster methods for comparing noised values to a threshold.\n\nGitOrigin-RevId: a20303a864c75d8311b38cd08ce0b2ff0b2cd082\nChange-Id: Ife2162da9d3926e74bc1341c70e484a7ac96d3fd\n"
    },
    {
      "commit": "90dc9abb34d636c5d2cb7fbdbbf0c72954c744e7",
      "tree": "37a5e9ca0b5b268d8129053d6bab4dd0fefde38a",
      "parents": [
        "6293f4dae910e87ae0dbe145dcd5eea7ce7b115a"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Wed Nov 04 00:32:45 2020 -0800"
      },
      "committer": {
        "name": "Christoph Dibak",
        "email": "dibak@google.com",
        "time": "Wed Nov 04 17:45:17 2020 +0100"
      },
      "message": "Privacy on Beam adds DistinctPerKey / C++ Handles Overflows\n\nPrivacy on Beam:\n- Implement DistinctPerKey, which allows for counting distinct things\nother than privacy IDs (user IDs).\n- Implement SelectPartitions, a primitive for doing only partition\nselection without any other aggregation. The selected partitions\ncan then be used as \"public partitions\" to other aggregations\nto avoid reusing budget for partition selection.\n- Small clean-ups.\n\nGitOrigin-RevId: 8c461dec6b3bb086354f4bc5f5622b2a9a2a77c0\nChange-Id: I081319dbdd8d1f7764fa2c855b7325d162daf805\n"
    },
    {
      "commit": "6293f4dae910e87ae0dbe145dcd5eea7ce7b115a",
      "tree": "588d1d1654ed758412c2cae9232620f17b47b707",
      "parents": [
        "d3b3cd0b240c0f61a022e5662dfaf0dd50fa9c10"
      ],
      "author": {
        "name": "Differential Privacy Team",
        "email": "noreply@google.com",
        "time": "Fri Oct 23 13:13:05 2020 -0700"
      },
      "committer": {
        "name": "dmarn",
        "email": "david.marn@gmail.com",
        "time": "Mon Oct 26 14:59:37 2020 +0100"
      },
      "message": "C++ Test Refactoring and Windows/Mac OS Setup\n\nGitOrigin-RevId: 02c1d80ed88f57a97b3327ae83d7cd959e4c6558\nChange-Id: Ie936dabeae602f146ccae8d80fe96782ab961928\n"
    }
  ],
  "next": "d3b3cd0b240c0f61a022e5662dfaf0dd50fa9c10"
}
