|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352 |
-
-
-
-
-
-
- <!DOCTYPE html>
- <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="false">
-
-
- <head>
- <meta charset="utf-8">
- <link rel="dns-prefetch" href="https://github.githubassets.com">
- <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
- <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
- <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
- <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
- <link rel="preconnect" href="https://avatars.githubusercontent.com">
-
-
-
-
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-a09cef873428.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-5d486a4ede8e.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-27c8d635e4e5.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-8438e75afd36.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-bf5665b96628.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-c414b5ba1dce.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-e5868b7374db.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-299ac9c64ec0.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-3a26e78ad0ff.css" />
-
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-6143c8f97ed1.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-903aefe99058.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-173da82a737b.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-5636d019c151.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-f68e2653d00d.css" />
-
-
-
- <script type="application/json" id="client-env">{"locale":"en","featureFlags":["failbot_handle_non_errors","fix_react_title","geojson_azure_maps","image_metric_tracking","turbo_experiment_risky","use_scroll_restoration","sample_network_conn_type"]}</script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-0f5a597610ec.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_js-64d590970fa6.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-a4c183-18bf85b8e9f4.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_soft-nav_soft-nav_ts-df17d5597d8f.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-509b58e05b9f.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-2646a2c533e3.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_focus-zone_js-d55308df5023.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-99e288659d4f.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-691f92ed710c.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_auto-complete-element-5b3870-9b38c0812424.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-d1569f-eb0e0c1e5438.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-bdc901-81f1e189072b.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-44d96edd9c30.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-631c5146145f.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-9d9fe1859ce5.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_hydro-analytics-client_dist_analytics-client_js-node_modules_gith-f3aee1-fd3c22610e40.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_morphdom_dist_morphdom-esm_js-b1fdd7158cf0.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_alive-client_dist-bf5aa2-4aefce0fc3c8.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-1f4793023fcd.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_scroll-anchoring_dist_scro-52dc4b-e1e33bfc0b7e.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-35b3ae68c408.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_paste-markdown_dist_index_esm_js-node_modules_github_quote-select-426751-0153d059d677.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_details-dialog_ts-app_assets_modules_github_fetch_ts-9ca164041015.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_updatable-content_ts-ui_packages_hydro-analytics_hydro-analytics_ts-e4da304b75e7.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_onfocus_ts-app_assets_modules_github_sticky-scroll-into-view_ts-b88dcdb1ae32.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-7d50ad-9491f2be61ee.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-2e2258-f7b8ad0ef997.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-f22ac6b94445.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_blob-anchor_ts-app_assets_modules_github_filter-sort_ts-app_assets_-c96432-b9f980134541.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-aee176930752.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-06ff531-fe0b8ccc90a5.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-f57687007bfc.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/code-menu-c743a13234fc.js"></script>
-
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-210c4b5934c3.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_octicons-react_dist_index_esm_js-node_modules_primer_react_lib-es-14a089-38d45acba361.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Box_Box_js-8d2713f90c9a.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Button_Button_js-node_modules_primer_react_lib-esm_-c2022e-70aff6ca05a9.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_ActionList_index_js-7bad8659e7bd.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Button_index_js-node_modules_primer_react_lib-esm_O-133b0c-6f42d36f1de7.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_TextInput_TextInput_js-47fe5c8a888d.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_scroll-into-view_js-node_modules_primer_react_-04bb1b-f1945840d2c2.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_FormControl_FormControl_js-eadb97e299c8.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_ActionMenu_js-f0cd24c33676.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_react-router-dom_dist_index_js-4a785319b497.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Heading_Heading_js-node_modules_primer_react_lib-es-20c766-83991b288f66.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Dialog_js-node_modules_primer_react_lib-esm_Flash_F-54f402-24f69910f932.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_UnderlineNav2_index_js-f81b8e23600f.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_TreeView_TreeView_js-d86950fa1004.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Avatar_Avatar_js-node_modules_primer_react_lib-esm_-82f032-5e0980cb7854.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_AvatarStack_AvatarStack_js-node_modules_primer_reac-f992ce-dce1b34d3765.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_react-core_create-browser-history_ts-ui_packages_react-core_deferred-registry_ts--ebbb92-6b5332bffa1d.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_react-core_register-app_ts-3f96a0d371d8.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ref-selector_RefSelector_tsx-8f23b321a246.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_react-shared_hooks_use-virtual-dynamic_ts-app_assets_modules_react-shared_-70720f-4f06c25f9a81.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_commit-attribution_index_ts-ui_packages_copy-to-clipboard_index_ts-ui_packages_us-2ad097-bd8109374378.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_alive_alive_ts-ui_packages_alive_connect-alive-subscription_ts-app_assets_modules-face4e-0afdddb57754.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-code-view-a8b07fad9e24.js"></script>
-
-
- <title>group-lasso/src/group_lasso/_fista.py at master · yngvem/group-lasso · GitHub</title>
-
-
-
- <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)">
-
-
- <meta name="current-catalog-service-hash" content="82c569b93da5c18ed649ebd4c2c79437db4611a6a1373e805a3cb001c64130b7">
-
-
- <meta name="request-id" content="6507:0EE0:456186:466F2A:650213E7" data-pjax-transient="true"/><meta name="html-safe-nonce" content="15714102d85291eb615f177f423809e8cc288f14a1fc128aa953b055e66b9c61" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS95bmd2ZW0vZ3JvdXAtbGFzc28vdHJlZS9tYXN0ZXIvc3JjL2dyb3VwX2xhc3NvIiwicmVxdWVzdF9pZCI6IjY1MDc6MEVFMDo0NTYxODY6NDY2RjJBOjY1MDIxM0U3IiwidmlzaXRvcl9pZCI6Ijc3NzM3ODg5MDkzNDI0NjcwNjAiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="5d4a9a7895184a4d5e4f67bc2a0a0add1da26c4a1e0570ecd90bd3e6a512b782" data-pjax-transient="true"/>
-
-
- <meta name="hovercard-subject-tag" content="repository:182386474" data-turbo-transient>
-
-
- <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree" data-turbo-transient="true" />
-
-
- <meta name="selected-link" value="repo_source" data-turbo-transient>
- <link rel="assets" href="https://github.githubassets.com/">
-
- <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY">
- <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
- <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
- <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
- <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">
-
- <meta name="octolytics-url" content="https://collector.github.com/github/collect" />
-
- <meta name="analytics-location" content="/<user-name>/<repo-name>/blob/show" data-turbo-transient="true" />
-
-
-
-
-
-
-
-
- <meta name="user-login" content="">
-
-
-
- <meta name="viewport" content="width=device-width">
-
- <meta name="description" content="Group Lasso implementation following the scikit-learn API - group-lasso/src/group_lasso/_fista.py at master · yngvem/group-lasso">
- <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
- <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
- <meta property="fb:app_id" content="1401488693436528">
- <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py" />
- <meta name="twitter:image:src" content="https://opengraph.githubassets.com/0bc037851a040f7b09b7cd2732f07a4dd8eb9fb58c631c4fb44384ab23400a0d/yngvem/group-lasso" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="group-lasso/src/group_lasso/_fista.py at master · yngvem/group-lasso" /><meta name="twitter:description" content="Group Lasso implementation following the scikit-learn API - yngvem/group-lasso" />
- <meta property="og:image" content="https://opengraph.githubassets.com/0bc037851a040f7b09b7cd2732f07a4dd8eb9fb58c631c4fb44384ab23400a0d/yngvem/group-lasso" /><meta property="og:image:alt" content="Group Lasso implementation following the scikit-learn API - yngvem/group-lasso" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="group-lasso/src/group_lasso/_fista.py at master · yngvem/group-lasso" /><meta property="og:url" content="https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py" /><meta property="og:description" content="Group Lasso implementation following the scikit-learn API - yngvem/group-lasso" />
-
-
-
-
- <meta name="hostname" content="github.com">
-
-
-
- <meta name="expected-hostname" content="github.com">
-
-
- <meta http-equiv="x-pjax-version" content="433ba0ab563602a33688cd0d2cf1ef5bb8729af57c4cf1fcd9ace238235e842b" data-turbo-track="reload">
- <meta http-equiv="x-pjax-csp-version" content="892c9b6e6279a06cccd6d1ca216dbd09218b81db6cf120890eda9982f4c21270" data-turbo-track="reload">
- <meta http-equiv="x-pjax-css-version" content="621d2fd40b3b7575700712a7a6b727800e538d82dc3e7148f775054e7c4d9d59" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="f5273cd1fbf297a021957e1ba9a7168455ec9f36faed69c10110170fa9f8a8b5" data-turbo-track="reload">
-
- <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
-
- <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>
- <meta data-hydrostats="publish">
-
- <meta name="go-import" content="github.com/yngvem/group-lasso git https://github.com/yngvem/group-lasso.git">
-
- <meta name="octolytics-dimension-user_id" content="3531982" /><meta name="octolytics-dimension-user_login" content="yngvem" /><meta name="octolytics-dimension-repository_id" content="182386474" /><meta name="octolytics-dimension-repository_nwo" content="yngvem/group-lasso" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="182386474" /><meta name="octolytics-dimension-repository_network_root_nwo" content="yngvem/group-lasso" />
-
-
-
- <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
-
-
- <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
-
- <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
-
- <meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors">
-
- <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
- <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
- <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg">
-
- <meta name="theme-color" content="#1e2327">
- <meta name="color-scheme" content="light dark" />
-
-
- <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
-
- </head>
-
- <body class="logged-out env-production page-responsive" style="word-wrap: break-word;">
- <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;">
-
-
-
- <div class="position-relative js-header-wrapper ">
- <a href="#start-of-content" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>
- <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
- <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
- </span>
-
-
-
-
-
-
-
-
-
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_github_memoize_dist_esm_in-687f35-d131f0b6de8e.js"></script>
- <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-9bc1a064363e.js"></script>
- <header class="Header-old header-logged-out js-details-container Details position-relative f4 py-3" role="banner" data-color-mode=light data-light-theme=light data-dark-theme=dark>
- <button type="button" class="Header-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation">
- <span class="d-none">Toggle navigation</span>
- </button>
-
- <div class=" d-flex flex-column flex-lg-row flex-items-center p-responsive height-full position-relative z-1">
- <div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto">
- <a class="mr-lg-3 color-fg-inherit flex-order-2" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
- <svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github">
- <path d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"></path>
- </svg>
- </a>
-
- <div class="flex-1">
- <a href="/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&source=header-repo"
- class="d-inline-block d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit"
- data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","user_id":null}}" data-hydro-click-hmac="06823fe71bc15efc27a2369b05d0a6164fb6b6c8d7368150d65360cdbce57f54"
- >
- Sign up
- </a>
- </div>
-
- <div class="flex-1 flex-order-2 text-right">
- <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target Button--link Button--medium Button d-lg-none color-fg-inherit p-1"> <span class="Button-content">
- <span class="Button-label"><div class="HeaderMenu-toggle-bar rounded my-1"></div>
- <div class="HeaderMenu-toggle-bar rounded my-1"></div>
- <div class="HeaderMenu-toggle-bar rounded my-1"></div></span>
- </span>
- </button>
- </div>
- </div>
-
-
- <div class="HeaderMenu--logged-out p-responsive height-fit position-lg-relative d-lg-flex flex-column flex-auto pt-7 pb-4 top-0">
- <div class="header-menu-wrapper d-flex flex-column flex-self-end flex-lg-row flex-justify-between flex-auto p-3 p-lg-0 rounded rounded-lg-0 mt-3 mt-lg-0">
- <nav class="mt-0 px-3 px-lg-0 mb-3 mb-lg-0" aria-label="Global">
- <ul class="d-lg-flex list-style-none">
- <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
- <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-3 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
- Product
- <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
- <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
- </svg>
- </button>
- <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 py-2 py-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex dropdown-menu-wide">
- <div class="px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7">
- <ul class="list-style-none f5" >
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Actions","label":"ref_cta:Actions;"}" href="/features/actions">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3">
- <path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Actions</div>
- Automate any workflow
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Packages","label":"ref_cta:Packages;"}" href="/features/packages">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-package color-fg-subtle mr-3">
- <path d="M12.876.64V.639l8.25 4.763c.541.313.875.89.875 1.515v9.525a1.75 1.75 0 0 1-.875 1.516l-8.25 4.762a1.748 1.748 0 0 1-1.75 0l-8.25-4.763a1.75 1.75 0 0 1-.875-1.515V6.917c0-.625.334-1.202.875-1.515L11.126.64a1.748 1.748 0 0 1 1.75 0Zm-1 1.298L4.251 6.34l7.75 4.474 7.75-4.474-7.625-4.402a.248.248 0 0 0-.25 0Zm.875 19.123 7.625-4.402a.25.25 0 0 0 .125-.216V7.639l-7.75 4.474ZM3.501 7.64v8.803c0 .09.048.172.125.216l7.625 4.402v-8.947Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Packages</div>
- Host and manage packages
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Security","label":"ref_cta:Security;"}" href="/features/security">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3">
- <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Security</div>
- Find and fix vulnerabilities
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Codespaces","label":"ref_cta:Codespaces;"}" href="/features/codespaces">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3">
- <path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Codespaces</div>
- Instant dev environments
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Copilot","label":"ref_cta:Copilot;"}" href="/features/copilot">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3">
- <path d="M9.75 14a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 .75-.75Zm4.5 0a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 .75-.75Z"></path><path d="M12 2c2.214 0 4.248.657 5.747 1.756.136.099.268.204.397.312.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086l.633 1.478.043.022A4.75 4.75 0 0 1 24 15.222v1.028c0 .529-.309.987-.565 1.293-.28.336-.636.653-.966.918a13.84 13.84 0 0 1-1.299.911l-.024.015-.006.004-.039.025c-.223.135-.45.264-.68.386-.46.245-1.122.571-1.941.895C16.845 21.344 14.561 22 12 22c-2.561 0-4.845-.656-6.479-1.303a19.046 19.046 0 0 1-1.942-.894 14.081 14.081 0 0 1-.535-.3l-.144-.087-.04-.025-.006-.004-.024-.015a13.16 13.16 0 0 1-1.299-.911 6.913 6.913 0 0 1-.967-.918C.31 17.237 0 16.779 0 16.25v-1.028a4.75 4.75 0 0 1 2.626-4.248l.043-.022.633-1.478a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.498 1.132-3.368.397-.406.89-.717 1.474-.952.129-.108.261-.213.397-.312C7.752 2.657 9.786 2 12 2Zm-8 9.654v6.669a17.59 17.59 0 0 0 2.073.98C7.595 19.906 9.686 20.5 12 20.5c2.314 0 4.405-.594 5.927-1.197a17.59 17.59 0 0 0 2.073-.98v-6.669l-.038-.09c-.046.061-.095.12-.145.177-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.544-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.344a4.323 4.323 0 0 1-.355.508C10.704 12.456 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a3.026 3.026 0 0 1-.145-.177Zm6.309-1.092c.445-.547.708-1.334.851-2.301.057-.357.087-.718.09-1.079v-.031c-.001-.762-.166-1.26-.43-1.568l-.008-.01c-.341-.391-1.046-.689-2.533-.529-1.505.163-2.347.537-2.824 1.024-.462.473-.705 1.18-.705 2.32 0 .605.044 1.087.135 1.472.092.384.231.672.423.89.365.413 1.084.75 2.657.75.91 0 1.527-.223 1.964-.564.14-.11.268-.235.38-.374Zm2.504-2.497c.136 1.057.403 1.913.878 2.497.442.545 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.151.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.318-.862-2.824-1.025-1.487-.161-2.192.139-2.533.529-.268.308-.437.808-.438 1.578v.02c.002.299.023.598.063.894Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Copilot</div>
- Write better code with AI
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Code review","label":"ref_cta:Code review;"}" href="/features/code-review">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3">
- <path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Code review</div>
- Manage code changes
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Issues","label":"ref_cta:Issues;"}" href="/features/issues">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3">
- <path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Issues</div>
- Plan and track work
- </div>
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Discussions","label":"ref_cta:Discussions;"}" href="/features/discussions">
- <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3">
- <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path>
- </svg>
- <div>
- <div class="color-fg-default h4">Discussions</div>
- Collaborate outside of code
- </div>
-
-
- </a></li>
-
- </ul>
- </div>
- <div class="px-lg-4">
- <span class="d-block h4 color-fg-default my-1" id="product-explore-heading">Explore</span>
- <ul class="list-style-none f5" aria-labelledby="product-explore-heading">
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to All features","label":"ref_cta:All features;"}" href="/features">
- All features
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Documentation","label":"ref_cta:Documentation;"}" href="https://docs.github.com">
- Documentation
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to GitHub Skills","label":"ref_cta:GitHub Skills;"}" href="https://skills.github.com/">
- GitHub Skills
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Product","action":"click to go to Blog","label":"ref_cta:Blog;"}" href="https://github.blog">
- Blog
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- </ul>
- </div>
- </div>
- </li>
-
-
- <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
- <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-3 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
- Solutions
- <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
- <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
- </svg>
- </button>
- <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 py-2 py-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 px-lg-4">
- <div class="border-bottom pb-3 mb-3">
- <span class="d-block h4 color-fg-default my-1" id="solutions-for-heading">For</span>
- <ul class="list-style-none f5" aria-labelledby="solutions-for-heading">
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Enterprise","label":"ref_cta:Enterprise;"}" href="/enterprise">
- Enterprise
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Teams","label":"ref_cta:Teams;"}" href="/team">
- Teams
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Startups","label":"ref_cta:Startups;"}" href="/enterprise/startups">
- Startups
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Education","label":"ref_cta:Education;"}" href="https://education.github.com">
- Education
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- </ul>
- </div>
- <div class="border-bottom pb-3 mb-3">
- <span class="d-block h4 color-fg-default my-1" id="solutions-by-solution-heading">By Solution</span>
- <ul class="list-style-none f5" aria-labelledby="solutions-by-solution-heading">
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to CI/CD &amp; Automation","label":"ref_cta:CI/CD &amp; Automation;"}" href="/solutions/ci-cd/">
- CI/CD & Automation
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to DevOps","label":"ref_cta:DevOps;"}" href="https://resources.github.com/devops/">
- DevOps
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to DevSecOps","label":"ref_cta:DevSecOps;"}" href="https://resources.github.com/devops/fundamentals/devsecops/">
- DevSecOps
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- </ul>
- </div>
- <div class="">
- <span class="d-block h4 color-fg-default my-1" id="solutions-resources-heading">Resources</span>
- <ul class="list-style-none f5" aria-labelledby="solutions-resources-heading">
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Customer Stories","label":"ref_cta:Customer Stories;"}" href="/customer-stories">
- Customer Stories
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to White papers, Ebooks, Webinars","label":"ref_cta:White papers, Ebooks, Webinars;"}" href="https://resources.github.com/">
- White papers, Ebooks, Webinars
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Partners","label":"ref_cta:Partners;"}" href="https://partner.github.com/">
- Partners
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
- <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
- </svg>
- </a></li>
-
- </ul>
- </div>
- </div>
- </li>
-
-
- <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
- <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-3 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
- Open Source
- <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
- <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
- </svg>
- </button>
- <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 py-2 py-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 px-lg-4">
- <div class="border-bottom pb-3 mb-3">
- <ul class="list-style-none f5" >
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center" data-analytics-event="{"category":"Header dropdown (logged out), Open Source","action":"click to go to GitHub Sponsors","label":"ref_cta:GitHub Sponsors;"}" href="/sponsors">
-
- <div>
- <div class="color-fg-default h4">GitHub Sponsors</div>
- Fund open source developers
- </div>
-
-
- </a></li>
-
- </ul>
- </div>
- <div class="border-bottom pb-3 mb-3">
- <ul class="list-style-none f5" >
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center" data-analytics-event="{"category":"Header dropdown (logged out), Open Source","action":"click to go to The ReadME Project","label":"ref_cta:The ReadME Project;"}" href="/readme">
-
- <div>
- <div class="color-fg-default h4">The ReadME Project</div>
- GitHub community articles
- </div>
-
-
- </a></li>
-
- </ul>
- </div>
- <div class="">
- <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span>
- <ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading">
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Open Source","action":"click to go to Topics","label":"ref_cta:Topics;"}" href="/topics">
- Topics
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Open Source","action":"click to go to Trending","label":"ref_cta:Trending;"}" href="/trending">
- Trending
-
-
- </a></li>
-
- <li>
- <a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"category":"Header dropdown (logged out), Open Source","action":"click to go to Collections","label":"ref_cta:Collections;"}" href="/collections">
- Collections
-
-
- </a></li>
-
- </ul>
- </div>
- </div>
- </li>
-
-
- <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
- <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{"category":"Header menu top item (logged out)","action":"click to go to Pricing","label":"ref_cta:Pricing;"}" href="/pricing">Pricing</a>
- </li>
-
- </ul>
- </nav>
-
- <div class="d-lg-flex flex-items-center mb-3 mb-lg-0 text-center text-lg-left ml-3" style="">
-
-
-
- <qbsearch-input class="search-input" data-scope="repo:yngvem/group-lasso" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="0Qx2YdXmJEGQE6wIO6KMAP11MZrfeKMePX8hIMOeHSqnYEzb1t6NCl2YElvPT6EUklUmm9WKy9xEUnBZFYU6dQ" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="yngvem/group-lasso" data-current-org="" data-current-owner="yngvem" data-logged-in="false">
- <div
- class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded"
- data-action="click:qbsearch-input#searchInputContainerClicked"
- >
- <button
- type="button"
- class="header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none"
- data-target="qbsearch-input.inputButton"
- placeholder="Search or jump to..."
- data-hotkey=s,/
- autocapitalize="off"
- data-action="click:qbsearch-input#handleExpand"
- >
- <div class="mr-2 color-fg-muted">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search">
- <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path>
- </svg>
- </div>
- <span class="flex-1" data-target="qbsearch-input.inputButtonText">Search or jump to...</span>
- <div class="d-flex" data-target="qbsearch-input.hotkeyIndicator">
- <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg>
-
- </div>
- </button>
-
- <input type="hidden" name="type" class="js-site-search-type-field">
-
-
- <div class="Overlay--hidden " data-modal-dialog-overlay>
- <modal-dialog data-action="close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose" data-target="qbsearch-input.searchSuggestionsDialog" role="dialog" id="search-suggestions-dialog" aria-modal="true" aria-labelledby="search-suggestions-dialog-header" data-view-component="true" class="Overlay Overlay--width-large Overlay--height-auto">
- <h1 id="search-suggestions-dialog-header" class="sr-only">Search code, repositories, users, issues, pull requests...</h1>
- <div class="Overlay-body Overlay-body--paddingNone">
-
- <div data-view-component="true"> <div class="search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container"
- style="border-radius: 12px;"
- data-target="qbsearch-input.queryBuilderContainer"
- hidden
- >
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="query-builder-test-form" action="" accept-charset="UTF-8" method="get">
- <query-builder data-target="qbsearch-input.queryBuilder" id="query-builder-query-builder-test" data-filter-key=":" data-view-component="true" class="QueryBuilder search-query-builder">
- <div class="FormControl FormControl--fullWidth">
- <label id="query-builder-test-label" for="query-builder-test" class="FormControl-label sr-only">
- Search
- </label>
- <div
- class="QueryBuilder-StyledInput width-fit "
- data-target="query-builder.styledInput"
- >
- <span id="query-builder-test-leadingvisual-wrap" class="FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search FormControl-input-leadingVisual">
- <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path>
- </svg>
- </span>
- <div data-target="query-builder.styledInputContainer" class="QueryBuilder-StyledInputContainer">
- <div
- aria-hidden="true"
- class="QueryBuilder-StyledInputContent"
- data-target="query-builder.styledInputContent"
- ></div>
- <div class="QueryBuilder-InputWrapper">
- <div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div>
- <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-057c33a8-50be-499e-b298-b12795bfde1f" data-target="query-builder.input" data-action="
- input:query-builder#inputChange
- blur:query-builder#inputBlur
- keydown:query-builder#inputKeydown
- focus:query-builder#inputFocus
- " data-view-component="true" class="FormControl-input QueryBuilder-Input FormControl-medium" />
- </div>
- </div>
- <span class="sr-only" id="query-builder-test-clear">Clear</span>
-
- <button role="button" id="query-builder-test-clear-button" aria-labelledby="query-builder-test-clear query-builder-test-label" data-target="query-builder.clearButton" data-action="
- click:query-builder#clear
- focus:query-builder#clearButtonFocus
- blur:query-builder#clearButtonBlur
- " variant="small" hidden="hidden" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium mr-1 px-2 py-0 d-flex flex-items-center rounded-1 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill Button-visual">
- <path d="M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z"></path>
- </svg>
- </button>
-
- </div>
- <template id="search-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search">
- <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path>
- </svg>
- </template>
-
- <template id="code-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code">
- <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
- </svg>
- </template>
-
- <template id="file-code-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-file-code">
- <path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path>
- </svg>
- </template>
-
- <template id="history-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history">
- <path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path>
- </svg>
- </template>
-
- <template id="repo-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo">
- <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path>
- </svg>
- </template>
-
- <template id="bookmark-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bookmark">
- <path d="M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z"></path>
- </svg>
- </template>
-
- <template id="plus-circle-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus-circle">
- <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"></path>
- </svg>
- </template>
-
- <template id="circle-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill">
- <path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path>
- </svg>
- </template>
-
- <template id="trash-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash">
- <path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path>
- </svg>
- </template>
-
- <template id="team-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people">
- <path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path>
- </svg>
- </template>
-
- <template id="project-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project">
- <path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z"></path>
- </svg>
- </template>
-
- <template id="pencil-icon">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pencil">
- <path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path>
- </svg>
- </template>
-
- <div class="position-relative">
- <ul
- role="listbox"
- class="ActionListWrap QueryBuilder-ListWrap"
- aria-label="Suggestions"
- data-action="
- combobox-commit:query-builder#comboboxCommit
- mousedown:query-builder#resultsMousedown
- "
- data-target="query-builder.resultsList"
- data-persist-list=false
- id="query-builder-test-results"
- ></ul>
- </div>
- <div class="FormControl-inlineValidation" id="validation-057c33a8-50be-499e-b298-b12795bfde1f" hidden="hidden">
- <span class="FormControl-inlineValidation--visual">
- <svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill">
- <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path>
- </svg>
- </span>
- <span></span>
- </div> </div>
- <div data-target="query-builder.screenReaderFeedback" aria-live="polite" aria-atomic="true" class="sr-only"></div>
- </query-builder></form>
- <div class="d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt">
- <a target="_blank" href="https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax" data-view-component="true" class="Link color-fg-accent text-normal ml-2">
- Search syntax tips
- </a> <div class="d-flex flex-1"></div>
- </div>
- </div>
- </div>
-
- </div>
- </modal-dialog></div>
- </div>
- <div data-action="click:qbsearch-input#retract" class="dark-backdrop position-fixed" hidden data-target="qbsearch-input.darkBackdrop"></div>
- <div class="color-fg-default">
-
- <div class="Overlay--hidden Overlay-backdrop--center" data-modal-dialog-overlay>
- <modal-dialog data-target="qbsearch-input.feedbackDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" role="dialog" id="feedback-dialog" aria-modal="true" aria-disabled="true" aria-labelledby="feedback-dialog-title" aria-describedby="feedback-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade">
- <div data-view-component="true" class="Overlay-header">
- <div class="Overlay-headerContentWrap">
- <div class="Overlay-titleWrap">
- <h1 class="Overlay-title " id="feedback-dialog-title">
- Provide feedback
- </h1>
- </div>
- <div class="Overlay-actionWrap">
- <button data-close-dialog-id="feedback-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
- <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
- </svg></button>
- </div>
- </div>
- </div>
- <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="CH0k9C0FYTUznUnzO9YQEsXJP9n+baYa6S4kykJSqufwNevVburgQnC/dNri4/TxOANfe0KfQJQg0h7cNuw3YA==" />
- <p>We read every piece of feedback, and take your input very seriously.</p>
- <textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea>
- <input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox">
- <label for="include_email" style="font-weight: normal">Include my email address so I can be contacted</label>
- </form></div>
- <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd"> <button data-close-dialog-id="feedback-dialog" type="button" data-view-component="true" class="btn"> Cancel
- </button>
- <button form="code-search-feedback-form" data-action="click:qbsearch-input#submitFeedback" type="submit" data-view-component="true" class="btn-primary btn"> Submit feedback
- </button>
- </div>
- </modal-dialog></div>
-
- <custom-scopes data-target="qbsearch-input.customScopesManager">
-
- <div class="Overlay--hidden Overlay-backdrop--center" data-modal-dialog-overlay>
- <modal-dialog data-target="custom-scopes.customScopesModalDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" role="dialog" id="custom-scopes-dialog" aria-modal="true" aria-disabled="true" aria-labelledby="custom-scopes-dialog-title" aria-describedby="custom-scopes-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade">
- <div data-view-component="true" class="Overlay-header Overlay-header--divided">
- <div class="Overlay-headerContentWrap">
- <div class="Overlay-titleWrap">
- <h1 class="Overlay-title " id="custom-scopes-dialog-title">
- Saved searches
- </h1>
- <h2 id="custom-scopes-dialog-description" class="Overlay-description">Use saved searches to filter your results more quickly</h2>
- </div>
- <div class="Overlay-actionWrap">
- <button data-close-dialog-id="custom-scopes-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
- <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
- </svg></button>
- </div>
- </div>
- </div>
- <div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div>
-
- <div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="SMCAkL81aMjb2vNOYbG4do3WUFyqDRj6CS+M6odCkZPv3Dw8JJ25tz6RGdTrrXNsAwhh678VpDt3gBGB1mDUhA==" />
- <div data-target="custom-scopes.customScopesModalDialogFlash"></div>
-
- <input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
-
- <div class="form-group">
- <label for="custom_scope_name">Name</label>
- <auto-check src="/search/custom_scopes/check_name" required>
- <input
- type="text"
- name="custom_scope_name"
- id="custom_scope_name"
- data-target="custom-scopes.customScopesNameField"
- class="form-control"
- autocomplete="off"
- placeholder="github-ruby"
- required
- maxlength="50">
- <input type="hidden" data-csrf="true" value="7l9V4DcSz+/6LZCOnixdacWhljW4fCNR1T6t6/X/mNW+29WCeu/glNNS+Q26a/JIKBjB9ameZ+8tFtzJV6ADuw==" />
- </auto-check>
- </div>
-
- <div class="form-group">
- <label for="custom_scope_query">Query</label>
- <input
- type="text"
- name="custom_scope_query"
- id="custom_scope_query"
- data-target="custom-scopes.customScopesQueryField"
- class="form-control"
- autocomplete="off"
- placeholder="(repo:mona/a OR repo:mona/b) AND lang:python"
- required
- maxlength="500">
- </div>
-
- <p class="text-small color-fg-muted">
- To see all available qualifiers, see our <a class="Link--inTextBlock" href="https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax">documentation</a>.
- </p>
- </form> </div>
-
- <div data-target="custom-scopes.manageCustomScopesForm">
- <div data-target="custom-scopes.list"></div>
- </div>
-
- </div>
- <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided"> <button data-action="click:custom-scopes#customScopesCancel" type="button" data-view-component="true" class="btn"> Cancel
- </button>
- <button form="custom-scopes-dialog-form" data-action="click:custom-scopes#customScopesSubmit" data-target="custom-scopes.customScopesSubmitButton" type="submit" data-view-component="true" class="btn-primary btn"> Create saved search
- </button>
- </div>
- </modal-dialog></div>
- </custom-scopes>
- </div>
- </qbsearch-input><input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="BZHNOceVcyBGMVqSgsDpKRb1GSm5IjKQ12CA9EgAkjsYCMcwXYyHCSaD/sEBS51mz9I9mOdU1okSle+BPrc+6g==" />
-
-
- <div class="position-relative mr-lg-3 d-lg-inline-block">
- <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Fyngvem%2Fgroup-lasso%2Fblob%2Fmaster%2Fsrc%2Fgroup_lasso%2F_fista.py"
- class="HeaderMenu-link HeaderMenu-link--sign-in flex-shrink-0 no-underline d-block d-lg-inline-block border border-lg-0 rounded rounded-lg-0 p-2 p-lg-0"
- data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","user_id":null}}" data-hydro-click-hmac="b1ce1b322751028289fd7321b1ec10bdd719d906ab67d5dfd9313f325a8dce75"
- data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">
- Sign in
- </a>
- </div>
-
- <a href="/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&source=header-repo&source_repo=yngvem%2Fgroup-lasso"
- class="HeaderMenu-link HeaderMenu-link--sign-up flex-shrink-0 d-none d-lg-inline-block no-underline border color-border-default rounded px-2 py-1"
- data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","user_id":null}}" data-hydro-click-hmac="b1ce1b322751028289fd7321b1ec10bdd719d906ab67d5dfd9313f325a8dce75"
- data-analytics-event="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/<user-name>/<repo-name>/blob/show;ref_cta:Sign up;ref_loc:header logged out"}"
- >
- Sign up
- </a>
- </div>
- </div>
- </div>
- </div>
- </header>
-
- <div hidden="hidden" data-view-component="true" class="js-stale-session-flash flash flash-warn mb-3">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
- <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
- </svg>
- <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
- <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
- <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
-
- <div data-view-component="true" class="flash-close">
- <button id="icon-button-ca08fe4d-dca9-46c4-a5be-9a6ec26d6907" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
- <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
- </svg>
- </button> <tool-tip id="tooltip-0088cc18-fdf3-4761-a5fc-bd2caee74829" for="icon-button-ca08fe4d-dca9-46c4-a5be-9a6ec26d6907" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
- </div>
-
-
- </div>
- </div>
-
- <div id="start-of-content" class="show-on-focus"></div>
-
-
-
-
-
-
-
-
- <div id="js-flash-container" data-turbo-replace>
-
-
-
-
-
- <template class="js-flash-template">
-
- <div class="flash flash-full {{ className }}">
- <div class="px-2" >
- <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
- <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
- </svg>
- </button>
- <div aria-atomic="true" role="alert" class="js-flash-alert">
-
- <div>{{ message }}</div>
-
- </div>
- </div>
- </div>
- </template>
- </div>
-
-
-
- <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment>
-
-
-
-
-
-
- <div
- class="application-main "
- data-commit-hovercards-enabled
- data-discussion-hovercards-enabled
- data-issue-and-pr-hovercards-enabled
- >
- <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
- <main id="js-repo-pjax-container" >
-
-
-
-
- <div class="flash flash-warn flash-full border-top-0 text-center text-bold py-2">
- This repository has been archived by the owner on Aug 17, 2023. It is now read-only.
- </div>
-
-
-
-
-
-
-
- <div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--color-page-header-bg);" data-turbo-replace>
-
- <div class="d-flex flex-wrap flex-justify-end mb-3 px-3 px-md-4 px-lg-5" style="gap: 1rem;">
-
- <div class="flex-auto min-width-0 width-fit mr-3">
-
- <div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2">
- <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path>
- </svg>
-
- <span class="author flex-self-stretch" itemprop="author">
- <a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/yngvem/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/yngvem">
- yngvem
- </a> </span>
- <span class="mx-1 flex-self-stretch color-fg-muted">/</span>
- <strong itemprop="name" class="mr-2 flex-self-stretch">
- <a data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/yngvem/group-lasso">group-lasso</a>
- </strong>
-
- <span></span><span class="Label Label--attention v-align-middle mr-1">Public archive</span>
- </div>
-
-
- </div>
-
- <div id="repository-details-container" data-turbo-replace>
- <ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
-
-
-
- <li>
- <a href="/login?return_to=%2Fyngvem%2Fgroup-lasso" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","user_id":null}}" data-hydro-click-hmac="ab09d04ea13a06dcdfd91eae8f802e6231d71cb64667785f80781f7a99e6b7a4" aria-label="You must be signed in to change notification settings" data-view-component="true" class="tooltipped tooltipped-s btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2">
- <path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path>
- </svg>Notifications
- </a>
- </li>
-
- <li>
- <a icon="repo-forked" id="fork-button" href="/login?return_to=%2Fyngvem%2Fgroup-lasso" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":182386474,"auth_type":"LOG_IN","originating_url":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","user_id":null}}" data-hydro-click-hmac="ac84e1fe442ad9fd11c6b2c327dbca0ed080f3fdf3ca13760157386845f79bc2" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2">
- <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path>
- </svg>Fork
- <span id="repo-network-counter" data-pjax-replace="true" data-turbo-replace="true" title="30" data-view-component="true" class="Counter">30</span>
- </a>
- </li>
-
- <li>
- <div data-view-component="true" class="BtnGroup d-flex">
- <a href="/login?return_to=%2Fyngvem%2Fgroup-lasso" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":182386474,"auth_type":"LOG_IN","originating_url":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","user_id":null}}" data-hydro-click-hmac="7964edadc374846e08a2d46d98450520e3fdc90385099e1e3104caa33ce7ae45" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-s btn-sm btn BtnGroup-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2">
- <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path>
- </svg><span data-view-component="true" class="d-inline">
- Star
- </span> <span id="repo-stars-counter-star" aria-label="94 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="94" data-view-component="true" class="Counter js-social-count">94</span>
- </a> <button aria-label="You must be signed in to add this repository to a list" type="button" disabled="disabled" data-view-component="true" class="btn-sm btn BtnGroup-item px-2"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down">
- <path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path>
- </svg>
- </button></div>
- </li>
-
- </ul>
-
- </div>
- </div>
-
- <div id="responsive-meta-container" data-turbo-replace>
- </div>
-
-
- <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5">
-
- <ul data-view-component="true" class="UnderlineNav-body list-style-none">
- <li data-view-component="true" class="d-inline-flex">
- <a id="code-tab" href="/yngvem/group-lasso" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /yngvem/group-lasso" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Code","target":"UNDERLINE_NAV.TAB"}" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline">
- <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
- </svg>
- <span data-content="Code">Code</span>
- <span id="code-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
-
-
-
- </a></li>
- <li data-view-component="true" class="d-inline-flex">
- <a id="issues-tab" href="/yngvem/group-lasso/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /yngvem/group-lasso/issues" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g i" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Issues","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline">
- <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path>
- </svg>
- <span data-content="Issues">Issues</span>
- <span id="issues-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="12" data-view-component="true" class="Counter">12</span>
-
-
-
- </a></li>
- <li data-view-component="true" class="d-inline-flex">
- <a id="pull-requests-tab" href="/yngvem/group-lasso/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /yngvem/group-lasso/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Pull requests","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline">
- <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path>
- </svg>
- <span data-content="Pull requests">Pull requests</span>
- <span id="pull-requests-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="1" data-view-component="true" class="Counter">1</span>
-
-
-
- </a></li>
- <li data-view-component="true" class="d-inline-flex">
- <a id="actions-tab" href="/yngvem/group-lasso/actions" data-tab-item="i3actions-tab" data-selected-links="repo_actions /yngvem/group-lasso/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Actions","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline">
- <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path>
- </svg>
- <span data-content="Actions">Actions</span>
- <span id="actions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
-
-
-
- </a></li>
- <li data-view-component="true" class="d-inline-flex">
- <a id="projects-tab" href="/yngvem/group-lasso/projects" data-tab-item="i4projects-tab" data-selected-links="repo_projects new_repo_project repo_project /yngvem/group-lasso/projects" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g b" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Projects","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline">
- <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path>
- </svg>
- <span data-content="Projects">Projects</span>
- <span id="projects-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span>
-
-
-
- </a></li>
- <li data-view-component="true" class="d-inline-flex">
- <a id="security-tab" href="/yngvem/group-lasso/security" data-tab-item="i5security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /yngvem/group-lasso/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Security","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline">
- <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
- </svg>
- <span data-content="Security">Security</span>
- <include-fragment src="/yngvem/group-lasso/security/overall-count" accept="text/fragment+html"></include-fragment>
-
-
- </a></li>
- <li data-view-component="true" class="d-inline-flex">
- <a id="insights-tab" href="/yngvem/group-lasso/pulse" data-tab-item="i6insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /yngvem/group-lasso/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Insights","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
-
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline">
- <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
- </svg>
- <span data-content="Insights">Insights</span>
- <span id="insights-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
-
-
-
- </a></li>
- </ul>
- <div style="visibility:hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <details data-view-component="true" class="details-overlay details-reset position-relative">
- <summary role="button" data-view-component="true"> <div class="UnderlineNav-item mr-0 border-0">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal">
- <path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path>
- </svg>
- <span class="sr-only">More</span>
- </div>
- </summary>
- <details-menu role="menu" data-view-component="true" class="dropdown-menu dropdown-menu-sw">
- <ul>
- <li data-menu-item="i0code-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /yngvem/group-lasso" href="/yngvem/group-lasso">
- Code
- </a> </li>
- <li data-menu-item="i1issues-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_issues repo_labels repo_milestones /yngvem/group-lasso/issues" href="/yngvem/group-lasso/issues">
- Issues
- </a> </li>
- <li data-menu-item="i2pull-requests-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_pulls checks /yngvem/group-lasso/pulls" href="/yngvem/group-lasso/pulls">
- Pull requests
- </a> </li>
- <li data-menu-item="i3actions-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_actions /yngvem/group-lasso/actions" href="/yngvem/group-lasso/actions">
- Actions
- </a> </li>
- <li data-menu-item="i4projects-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_projects new_repo_project repo_project /yngvem/group-lasso/projects" href="/yngvem/group-lasso/projects">
- Projects
- </a> </li>
- <li data-menu-item="i5security-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="security overview alerts policy token_scanning code_scanning /yngvem/group-lasso/security" href="/yngvem/group-lasso/security">
- Security
- </a> </li>
- <li data-menu-item="i6insights-tab" hidden>
- <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /yngvem/group-lasso/pulse" href="/yngvem/group-lasso/pulse">
- Insights
- </a> </li>
- </ul>
- </details-menu>
- </details></div>
- </nav>
-
- </div>
-
-
-
-
-
- <turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
- <div id="repo-content-pjax-container" class="repository-content " >
-
-
-
-
-
-
-
-
-
-
-
- <react-app
- app-name="react-code-view"
- initial-path="/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py"
- style="min-height: calc(100vh - 62px)"
- data-ssr="false"
- data-lazy="false"
- data-alternate="false"
- >
-
- <script type="application/json" data-target="react-app.embeddedData">{"payload":{"allShortcutsEnabled":false,"fileTree":{"src/group_lasso":{"items":[{"name":"__init__.py","path":"src/group_lasso/__init__.py","contentType":"file"},{"name":"_fista.py","path":"src/group_lasso/_fista.py","contentType":"file"},{"name":"_group_lasso.py","path":"src/group_lasso/_group_lasso.py","contentType":"file"},{"name":"_singular_values.py","path":"src/group_lasso/_singular_values.py","contentType":"file"},{"name":"_subsampling.py","path":"src/group_lasso/_subsampling.py","contentType":"file"},{"name":"utils.py","path":"src/group_lasso/utils.py","contentType":"file"}],"totalCount":6},"src":{"items":[{"name":"group_lasso","path":"src/group_lasso","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":"test","path":"test","contentType":"directory"},{"name":".bumpversion.cfg","path":".bumpversion.cfg","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".readthedocs.yml","path":".readthedocs.yml","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"MANIFEST.in","path":"MANIFEST.in","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.rst","path":"README.rst","contentType":"file"},{"name":"changelog.rst","path":"changelog.rst","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"requirements.txt","path":"requirements.txt","contentType":"file"},{"name":"setup.cfg","path":"setup.cfg","contentType":"file"},{"name":"setup.py","path":"setup.py","contentType":"file"},{"name":"tox.ini","path":"tox.ini","contentType":"file"}],"totalCount":18}},"fileTreeProcessingTime":5.803534,"foldersToFetch":[],"reducedMotionEnabled":null,"repo":{"id":182386474,"defaultBranch":"master","name":"group-lasso","ownerLogin":"yngvem","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-04-20T09:28:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3531982?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1595071226.0","canEdit":false,"refType":"branch","currentOid":"aa1c77aa3ba8534d543e3eec6b6f522d7996e2bf"},"path":"src/group_lasso/_fista.py","currentUser":null,"blob":{"rawLines":["import warnings","from math import sqrt","","import numpy as np","import numpy.linalg as la","from sklearn.exceptions import ConvergenceWarning","","","class FISTAProblem:"," def __init__("," self, smooth_loss, proximable_loss, smooth_grad, prox, init_lipschitz"," ):"," self.smooth_loss = smooth_loss"," self.smooth_grad = smooth_grad",""," self.proximable_loss = proximable_loss"," self.prox = prox",""," self.lipschitz = init_lipschitz",""," def _continue_backtracking(self, new_optimal_x, old_momentum_x, lipschitz):"," # Based on FISTA with backtracking. Reformulation of this criterion:"," # F(new_optimal_x) \u003e Q(new_optimal_x, old_momentum_x)"," # f(new_optimal_x) + g(new_optimal_x) \u003e Q(new_optimal_x, old_momentum_x)"," # f(new_optimal_x) \u003e Q(new_optimal_x, old_momentum_x) - g(new_optimal_x)"," # Combine with eq. 2.5 in Beck \u0026 Teboulle (2009) to obtain following condition"," # Modified slightly, increasing the threshold for the Lipschitz"," improved_loss = self.smooth_loss(new_optimal_x)"," old_momentum_loss = self.smooth_loss(old_momentum_x)"," old_momentum_grad = self.smooth_grad(old_momentum_x)"," update_vector = new_optimal_x - old_momentum_x",""," update_distance = np.sum(update_vector ** 2) * lipschitz / 2.5"," linearised_improvement = ("," old_momentum_grad.ravel().T @ update_vector.ravel()"," )",""," return improved_loss \u003e ("," old_momentum_loss + update_distance + linearised_improvement"," )",""," def compute_next_momentum(self, current_momentum):"," return 0.5 + 0.5 * sqrt(1 + 4 * current_momentum ** 2)",""," def _update_step(self, x, momentum_x, momentum, lipschitz):"," intermediate_step = 0.5 * self.smooth_grad(momentum_x) / lipschitz"," new_x = self.prox(momentum_x - intermediate_step, lipschitz)"," new_momentum = self.compute_next_momentum(momentum)",""," dx = new_x - x"," new_momentum_x = new_x + dx * (momentum - 1) / new_momentum",""," return new_x, new_momentum_x, new_momentum",""," def minimise(self, x0, n_iter=10, tol=1e-6, callback=None):"," \"\"\"Use the FISTA algorithm to solve the given optimisation problem"," \"\"\""," x0 = np.asarray(x0)"," if callback is not None:"," callback(x0, 0)",""," optimal_x = x0"," momentum_x = x0"," momentum = 1",""," for i in range(n_iter):"," previous_x = optimal_x",""," # Simple FISTA update step"," new_optimal_x, new_momentum_x, new_momentum = self._update_step("," previous_x, momentum_x, momentum, self.lipschitz"," )",""," # Adaptive restart criterion from Equation 12 in O’Donoghue \u0026 Candès (2012)"," generalised_gradient = momentum_x.ravel() - new_optimal_x.ravel()"," update_vector = new_optimal_x.ravel() - previous_x.ravel()"," # Loss based restart criterion"," if generalised_gradient.T@update_vector \u003e self.smooth_loss(previous_x):"," momentum_x = previous_x"," momentum = 1"," # fmt: off"," new_optimal_x, new_momentum_x, new_momentum = self._update_step( # noqa: E501"," previous_x, momentum_x, momentum, self.lipschitz"," )"," # fmt: on",""," # Backtracking line search"," while self._continue_backtracking("," new_optimal_x, momentum_x, self.lipschitz"," ):"," self.lipschitz *= 2"," ("," new_optimal_x,"," new_momentum_x,"," new_momentum,"," ) = self._update_step("," optimal_x, momentum_x, momentum, self.lipschitz"," )"," optimal_x, momentum_x, momentum = ("," new_optimal_x,"," new_momentum_x,"," new_momentum,"," )",""," if callback is not None:"," callback(optimal_x, i, previous_x=previous_x)",""," if ("," la.norm(optimal_x - previous_x) / la.norm(optimal_x + 1e-16)"," \u003c tol"," ):"," return optimal_x",""," warnings.warn("," \"The FISTA iterations did not converge to a sufficient minimum.\\n\""," \"You used subsampling then this is expected, otherwise, \""," \"try increasing the number of iterations \""," \"or decreasing the tolerance.\","," ConvergenceWarning,"," )",""," return optimal_x"],"stylingDirectives":[[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":15,"cssClass":"pl-s1"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":9,"cssClass":"pl-s1"},{"start":10,"end":16,"cssClass":"pl-k"},{"start":17,"end":21,"cssClass":"pl-s1"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-s1"},{"start":13,"end":15,"cssClass":"pl-k"},{"start":16,"end":18,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-s1"},{"start":13,"end":19,"cssClass":"pl-s1"},{"start":20,"end":22,"cssClass":"pl-k"},{"start":23,"end":25,"cssClass":"pl-s1"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":12,"cssClass":"pl-s1"},{"start":13,"end":23,"cssClass":"pl-s1"},{"start":24,"end":30,"cssClass":"pl-k"},{"start":31,"end":49,"cssClass":"pl-v"}],[],[],[{"start":0,"end":5,"cssClass":"pl-k"},{"start":6,"end":18,"cssClass":"pl-v"}],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":16,"cssClass":"pl-en"}],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":14,"end":25,"cssClass":"pl-s1"},{"start":27,"end":42,"cssClass":"pl-s1"},{"start":44,"end":55,"cssClass":"pl-s1"},{"start":57,"end":61,"cssClass":"pl-s1"},{"start":63,"end":77,"cssClass":"pl-s1"}],[],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":24,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":38,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":24,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":38,"cssClass":"pl-s1"}],[],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":28,"cssClass":"pl-s1"},{"start":29,"end":30,"cssClass":"pl-c1"},{"start":31,"end":46,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":24,"cssClass":"pl-s1"}],[],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":39,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":30,"cssClass":"pl-en"},{"start":31,"end":35,"cssClass":"pl-s1"},{"start":37,"end":50,"cssClass":"pl-s1"},{"start":52,"end":66,"cssClass":"pl-s1"},{"start":68,"end":77,"cssClass":"pl-s1"}],[{"start":8,"end":76,"cssClass":"pl-c"}],[{"start":8,"end":61,"cssClass":"pl-c"}],[{"start":8,"end":80,"cssClass":"pl-c"}],[{"start":8,"end":80,"cssClass":"pl-c"}],[{"start":8,"end":86,"cssClass":"pl-c"}],[{"start":8,"end":71,"cssClass":"pl-c"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":28,"cssClass":"pl-s1"},{"start":29,"end":40,"cssClass":"pl-en"},{"start":41,"end":54,"cssClass":"pl-s1"}],[{"start":8,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":32,"cssClass":"pl-s1"},{"start":33,"end":44,"cssClass":"pl-en"},{"start":45,"end":59,"cssClass":"pl-s1"}],[{"start":8,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":32,"cssClass":"pl-s1"},{"start":33,"end":44,"cssClass":"pl-en"},{"start":45,"end":59,"cssClass":"pl-s1"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":37,"cssClass":"pl-s1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":40,"end":54,"cssClass":"pl-s1"}],[],[{"start":8,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":28,"cssClass":"pl-s1"},{"start":29,"end":32,"cssClass":"pl-en"},{"start":33,"end":46,"cssClass":"pl-s1"},{"start":47,"end":49,"cssClass":"pl-c1"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":53,"end":54,"cssClass":"pl-c1"},{"start":55,"end":64,"cssClass":"pl-s1"},{"start":65,"end":66,"cssClass":"pl-c1"},{"start":67,"end":70,"cssClass":"pl-c1"}],[{"start":8,"end":30,"cssClass":"pl-s1"},{"start":31,"end":32,"cssClass":"pl-c1"}],[{"start":12,"end":29,"cssClass":"pl-s1"},{"start":30,"end":35,"cssClass":"pl-en"},{"start":38,"end":39,"cssClass":"pl-v"},{"start":42,"end":55,"cssClass":"pl-s1"},{"start":56,"end":61,"cssClass":"pl-en"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":28,"cssClass":"pl-s1"},{"start":29,"end":30,"cssClass":"pl-c1"}],[{"start":12,"end":29,"cssClass":"pl-s1"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":32,"end":47,"cssClass":"pl-s1"},{"start":48,"end":49,"cssClass":"pl-c1"},{"start":50,"end":72,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":29,"cssClass":"pl-en"},{"start":30,"end":34,"cssClass":"pl-s1"},{"start":36,"end":52,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-c1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":24,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":31,"cssClass":"pl-en"},{"start":32,"end":33,"cssClass":"pl-c1"},{"start":34,"end":35,"cssClass":"pl-c1"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":40,"end":56,"cssClass":"pl-s1"},{"start":57,"end":59,"cssClass":"pl-c1"},{"start":60,"end":61,"cssClass":"pl-c1"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":20,"cssClass":"pl-en"},{"start":21,"end":25,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-s1"},{"start":30,"end":40,"cssClass":"pl-s1"},{"start":42,"end":50,"cssClass":"pl-s1"},{"start":52,"end":61,"cssClass":"pl-s1"}],[{"start":8,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":31,"cssClass":"pl-c1"},{"start":32,"end":33,"cssClass":"pl-c1"},{"start":34,"end":38,"cssClass":"pl-s1"},{"start":39,"end":50,"cssClass":"pl-en"},{"start":51,"end":61,"cssClass":"pl-s1"},{"start":63,"end":64,"cssClass":"pl-c1"},{"start":65,"end":74,"cssClass":"pl-s1"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":15,"cssClass":"pl-c1"},{"start":16,"end":20,"cssClass":"pl-s1"},{"start":21,"end":25,"cssClass":"pl-en"},{"start":26,"end":36,"cssClass":"pl-s1"},{"start":37,"end":38,"cssClass":"pl-c1"},{"start":39,"end":56,"cssClass":"pl-s1"},{"start":58,"end":67,"cssClass":"pl-s1"}],[{"start":8,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":28,"end":49,"cssClass":"pl-en"},{"start":50,"end":58,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-c1"},{"start":13,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-s1"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":30,"cssClass":"pl-s1"},{"start":31,"end":32,"cssClass":"pl-c1"},{"start":33,"end":35,"cssClass":"pl-s1"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":39,"end":47,"cssClass":"pl-s1"},{"start":48,"end":49,"cssClass":"pl-c1"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":53,"end":54,"cssClass":"pl-c1"},{"start":55,"end":67,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-s1"},{"start":22,"end":36,"cssClass":"pl-s1"},{"start":38,"end":50,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":16,"cssClass":"pl-en"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":23,"end":25,"cssClass":"pl-s1"},{"start":27,"end":33,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":34,"end":36,"cssClass":"pl-c1"},{"start":38,"end":41,"cssClass":"pl-s1"},{"start":41,"end":42,"cssClass":"pl-c1"},{"start":42,"end":46,"cssClass":"pl-c1"},{"start":48,"end":56,"cssClass":"pl-s1"},{"start":56,"end":57,"cssClass":"pl-c1"},{"start":57,"end":61,"cssClass":"pl-c1"}],[{"start":8,"end":74,"cssClass":"pl-s"}],[{"start":0,"end":11,"cssClass":"pl-s"}],[{"start":8,"end":10,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-c1"},{"start":13,"end":15,"cssClass":"pl-s1"},{"start":16,"end":23,"cssClass":"pl-en"},{"start":24,"end":26,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":22,"cssClass":"pl-c1"},{"start":23,"end":26,"cssClass":"pl-c1"},{"start":27,"end":31,"cssClass":"pl-c1"}],[{"start":12,"end":20,"cssClass":"pl-en"},{"start":21,"end":23,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"}],[],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":22,"cssClass":"pl-s1"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":23,"cssClass":"pl-s1"}],[{"start":8,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":20,"cssClass":"pl-c1"}],[],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":12,"end":13,"cssClass":"pl-s1"},{"start":14,"end":16,"cssClass":"pl-c1"},{"start":17,"end":22,"cssClass":"pl-en"},{"start":23,"end":29,"cssClass":"pl-s1"}],[{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":34,"cssClass":"pl-s1"}],[],[{"start":12,"end":38,"cssClass":"pl-c"}],[{"start":12,"end":25,"cssClass":"pl-s1"},{"start":27,"end":41,"cssClass":"pl-s1"},{"start":43,"end":55,"cssClass":"pl-s1"},{"start":56,"end":57,"cssClass":"pl-c1"},{"start":58,"end":62,"cssClass":"pl-s1"},{"start":63,"end":75,"cssClass":"pl-en"}],[{"start":16,"end":26,"cssClass":"pl-s1"},{"start":28,"end":38,"cssClass":"pl-s1"},{"start":40,"end":48,"cssClass":"pl-s1"},{"start":50,"end":54,"cssClass":"pl-s1"},{"start":55,"end":64,"cssClass":"pl-s1"}],[],[],[{"start":12,"end":87,"cssClass":"pl-c"}],[{"start":12,"end":32,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":35,"end":45,"cssClass":"pl-s1"},{"start":46,"end":51,"cssClass":"pl-en"},{"start":54,"end":55,"cssClass":"pl-c1"},{"start":56,"end":69,"cssClass":"pl-s1"},{"start":70,"end":75,"cssClass":"pl-en"}],[{"start":12,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":41,"cssClass":"pl-s1"},{"start":42,"end":47,"cssClass":"pl-en"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":52,"end":62,"cssClass":"pl-s1"},{"start":63,"end":68,"cssClass":"pl-en"}],[{"start":12,"end":42,"cssClass":"pl-c"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":35,"cssClass":"pl-s1"},{"start":36,"end":37,"cssClass":"pl-v"},{"start":38,"end":51,"cssClass":"pl-s1"},{"start":52,"end":53,"cssClass":"pl-c1"},{"start":54,"end":58,"cssClass":"pl-s1"},{"start":59,"end":70,"cssClass":"pl-en"},{"start":71,"end":81,"cssClass":"pl-s1"}],[{"start":16,"end":26,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":29,"end":39,"cssClass":"pl-s1"}],[{"start":16,"end":24,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":28,"cssClass":"pl-c1"}],[{"start":16,"end":26,"cssClass":"pl-c"}],[{"start":16,"end":29,"cssClass":"pl-s1"},{"start":31,"end":45,"cssClass":"pl-s1"},{"start":47,"end":59,"cssClass":"pl-s1"},{"start":60,"end":61,"cssClass":"pl-c1"},{"start":62,"end":66,"cssClass":"pl-s1"},{"start":67,"end":79,"cssClass":"pl-en"},{"start":82,"end":94,"cssClass":"pl-c"}],[{"start":20,"end":30,"cssClass":"pl-s1"},{"start":32,"end":42,"cssClass":"pl-s1"},{"start":44,"end":52,"cssClass":"pl-s1"},{"start":54,"end":58,"cssClass":"pl-s1"},{"start":59,"end":68,"cssClass":"pl-s1"}],[],[{"start":16,"end":25,"cssClass":"pl-c"}],[],[{"start":12,"end":38,"cssClass":"pl-c"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":22,"cssClass":"pl-s1"},{"start":23,"end":45,"cssClass":"pl-en"}],[{"start":16,"end":29,"cssClass":"pl-s1"},{"start":31,"end":41,"cssClass":"pl-s1"},{"start":43,"end":47,"cssClass":"pl-s1"},{"start":48,"end":57,"cssClass":"pl-s1"}],[],[{"start":16,"end":20,"cssClass":"pl-s1"},{"start":21,"end":30,"cssClass":"pl-s1"},{"start":31,"end":33,"cssClass":"pl-c1"},{"start":34,"end":35,"cssClass":"pl-c1"}],[],[{"start":20,"end":33,"cssClass":"pl-s1"}],[{"start":20,"end":34,"cssClass":"pl-s1"}],[{"start":20,"end":32,"cssClass":"pl-s1"}],[{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":37,"cssClass":"pl-en"}],[{"start":20,"end":29,"cssClass":"pl-s1"},{"start":31,"end":41,"cssClass":"pl-s1"},{"start":43,"end":51,"cssClass":"pl-s1"},{"start":53,"end":57,"cssClass":"pl-s1"},{"start":58,"end":67,"cssClass":"pl-s1"}],[],[{"start":12,"end":21,"cssClass":"pl-s1"},{"start":23,"end":33,"cssClass":"pl-s1"},{"start":35,"end":43,"cssClass":"pl-s1"},{"start":44,"end":45,"cssClass":"pl-c1"}],[{"start":16,"end":29,"cssClass":"pl-s1"}],[{"start":16,"end":30,"cssClass":"pl-s1"}],[{"start":16,"end":28,"cssClass":"pl-s1"}],[],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":23,"cssClass":"pl-s1"},{"start":24,"end":26,"cssClass":"pl-c1"},{"start":27,"end":30,"cssClass":"pl-c1"},{"start":31,"end":35,"cssClass":"pl-c1"}],[{"start":16,"end":24,"cssClass":"pl-en"},{"start":25,"end":34,"cssClass":"pl-s1"},{"start":36,"end":37,"cssClass":"pl-s1"},{"start":39,"end":49,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":50,"end":60,"cssClass":"pl-s1"}],[],[{"start":12,"end":14,"cssClass":"pl-k"}],[{"start":16,"end":18,"cssClass":"pl-s1"},{"start":19,"end":23,"cssClass":"pl-en"},{"start":24,"end":33,"cssClass":"pl-s1"},{"start":34,"end":35,"cssClass":"pl-c1"},{"start":36,"end":46,"cssClass":"pl-s1"},{"start":48,"end":49,"cssClass":"pl-c1"},{"start":50,"end":52,"cssClass":"pl-s1"},{"start":53,"end":57,"cssClass":"pl-en"},{"start":58,"end":67,"cssClass":"pl-s1"},{"start":68,"end":69,"cssClass":"pl-c1"},{"start":70,"end":75,"cssClass":"pl-c1"}],[{"start":16,"end":17,"cssClass":"pl-c1"},{"start":18,"end":21,"cssClass":"pl-s1"}],[],[{"start":16,"end":22,"cssClass":"pl-k"},{"start":23,"end":32,"cssClass":"pl-s1"}],[],[{"start":8,"end":16,"cssClass":"pl-s1"},{"start":17,"end":21,"cssClass":"pl-en"}],[{"start":12,"end":78,"cssClass":"pl-s"},{"start":75,"end":77,"cssClass":"pl-cce"}],[{"start":12,"end":69,"cssClass":"pl-s"}],[{"start":12,"end":54,"cssClass":"pl-s"}],[{"start":12,"end":42,"cssClass":"pl-s"}],[{"start":12,"end":30,"cssClass":"pl-v"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":24,"cssClass":"pl-s1"}]],"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/yngvem/group-lasso/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null,"repoAlertsPath":"/yngvem/group-lasso/security/dependabot","repoSecurityAndAnalysisPath":"/yngvem/group-lasso/settings/security_analysis","repoOwnerIsOrg":false,"currentUserCanAdminRepo":false},"displayName":"_fista.py","displayUrl":"https://github.com/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py?raw=true","headerInfo":{"blobSize":"4.4 KB","deleteInfo":{"deleteTooltip":"You must be signed in to make or propose changes"},"editInfo":{"editTooltip":"You must be signed in to make or propose changes"},"ghDesktopPath":"https://desktop.github.com","gitLfsPath":null,"onBranch":true,"shortPath":"cc4efbb","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fyngvem%2Fgroup-lasso%2Fblob%2Fmaster%2Fsrc%2Fgroup_lasso%2F_fista.py","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"122","truncatedSloc":"100"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":"Python","languageID":303,"large":false,"loggedIn":false,"newDiscussionPath":"/yngvem/group-lasso/discussions/new","newIssuePath":"/yngvem/group-lasso/issues/new","planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/yngvem/group-lasso/blob/master/src/group_lasso/_fista.py","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","dismissStackNoticePath":"/settings/dismiss-notice/publish_stack_from_file","releasePath":"/yngvem/group-lasso/releases/new?marketplace=true","showPublishActionBanner":false,"showPublishStackBanner":false},"renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"yngvem","repoName":"group-lasso","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","showDependabotConfigurationBanner":false,"actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timedOut":false,"notAnalyzed":false,"symbols":[{"name":"FISTAProblem","kind":"class","identStart":142,"identEnd":154,"extentStart":136,"extentEnd":4504,"fullyQualifiedName":"FISTAProblem","identUtf16":{"start":{"lineNumber":8,"utf16Col":6},"end":{"lineNumber":8,"utf16Col":18}},"extentUtf16":{"start":{"lineNumber":8,"utf16Col":0},"end":{"lineNumber":121,"utf16Col":24}}},{"name":"__init__","kind":"function","identStart":164,"identEnd":172,"extentStart":160,"extentEnd":450,"fullyQualifiedName":"FISTAProblem.__init__","identUtf16":{"start":{"lineNumber":9,"utf16Col":8},"end":{"lineNumber":9,"utf16Col":16}},"extentUtf16":{"start":{"lineNumber":9,"utf16Col":4},"end":{"lineNumber":18,"utf16Col":39}}},{"name":"_continue_backtracking","kind":"function","identStart":460,"identEnd":482,"extentStart":456,"extentEnd":1522,"fullyQualifiedName":"FISTAProblem._continue_backtracking","identUtf16":{"start":{"lineNumber":20,"utf16Col":8},"end":{"lineNumber":20,"utf16Col":30}},"extentUtf16":{"start":{"lineNumber":20,"utf16Col":4},"end":{"lineNumber":39,"utf16Col":9}}},{"name":"compute_next_momentum","kind":"function","identStart":1532,"identEnd":1553,"extentStart":1528,"extentEnd":1641,"fullyQualifiedName":"FISTAProblem.compute_next_momentum","identUtf16":{"start":{"lineNumber":41,"utf16Col":8},"end":{"lineNumber":41,"utf16Col":29}},"extentUtf16":{"start":{"lineNumber":41,"utf16Col":4},"end":{"lineNumber":42,"utf16Col":62}}},{"name":"_update_step","kind":"function","identStart":1651,"identEnd":1663,"extentStart":1647,"extentEnd":2054,"fullyQualifiedName":"FISTAProblem._update_step","identUtf16":{"start":{"lineNumber":44,"utf16Col":8},"end":{"lineNumber":44,"utf16Col":20}},"extentUtf16":{"start":{"lineNumber":44,"utf16Col":4},"end":{"lineNumber":52,"utf16Col":50}}},{"name":"minimise","kind":"function","identStart":2064,"identEnd":2072,"extentStart":2060,"extentEnd":4504,"fullyQualifiedName":"FISTAProblem.minimise","identUtf16":{"start":{"lineNumber":54,"utf16Col":8},"end":{"lineNumber":54,"utf16Col":16}},"extentUtf16":{"start":{"lineNumber":54,"utf16Col":4},"end":{"lineNumber":121,"utf16Col":24}}}]}},"copilotInfo":null,"csrf_tokens":{"/yngvem/group-lasso/branches":{"post":"K43dpFL7bDyoT1fJTHHkvFgafMOyf9X-zYAvNbcMHq3MfTW0KPmxYLTEvihivxkUzzq-9MRiHhdZaD1VZCeGhg"},"/repos/preferences":{"post":"21AhYgulVD7S14HglnhjYN3mNs7Bxq_5UHparzMvcCje3PkmFuiP_okotcyX1vI-AOK6uPe-XijSzIT_ielqDA"}}},"title":"group-lasso/src/group_lasso/_fista.py at master · yngvem/group-lasso","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-83d4418b406d.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-2dd6b5095052.js","githubDevUrl":null,"enabled_features":{"virtualize_file_tree":true,"react_repos_overview":true,"code_nav_ui_events":false,"ref_selector_v2":false,"blob_firefox_separate_characters":true,"copilot_conversational_ux":false,"copilot_conversational_ux_symbols":false,"copilot_popover_file_editor_header":false,"copilot_smell_icebreaker_ux":false,"lfs_download_button":true}}}</script>
- <div data-target="react-app.reactRoot"></div>
- </react-app>
- </turbo-frame>
-
-
-
- </div>
-
- </turbo-frame>
-
- </main>
- </div>
-
- </div>
-
- <footer class="footer width-full container-xl p-responsive" role="contentinfo">
- <h2 class='sr-only'>Footer</h2>
-
- <div class="position-relative d-flex flex-items-center pb-2 f6 color-fg-muted border-top color-border-muted flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap mt-6 pt-6">
- <div class="list-style-none d-flex flex-wrap col-0 col-lg-2 flex-justify-start flex-lg-justify-between mb-2 mb-lg-0">
- <div class="mt-2 mt-lg-0 d-flex flex-items-center">
- <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com">
- <svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
- <path d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"></path>
- </svg>
- </a> <span>
- © 2023 GitHub, Inc.
- </span>
- </div>
- </div>
-
- <nav aria-label='Footer' class="col-12 col-lg-8">
- <h3 class='sr-only' id='sr-footer-heading'>Footer navigation</h3>
- <ul class="list-style-none d-flex flex-wrap col-12 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0" aria-labelledby='sr-footer-heading'>
- <li class="mr-3 mr-lg-0"><a href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-analytics-event="{"category":"Footer","action":"go to terms","label":"text:terms"}">Terms</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}">Privacy</a></li>
- <li class="mr-3 mr-lg-0"><a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security">Security</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://www.githubstatus.com/" data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}">Status</a></li>
- <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to help, text:Docs" href="https://docs.github.com">Docs</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://support.github.com?tags=dotcom-footer" data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}">Contact GitHub</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-analytics-event="{"category":"Footer","action":"go to Pricing","label":"text:Pricing"}">Pricing</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://docs.github.com" data-analytics-event="{"category":"Footer","action":"go to api","label":"text:api"}">API</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://services.github.com" data-analytics-event="{"category":"Footer","action":"go to training","label":"text:training"}">Training</a></li>
- <li class="mr-3 mr-lg-0"><a href="https://github.blog" data-analytics-event="{"category":"Footer","action":"go to blog","label":"text:blog"}">Blog</a></li>
- <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
- </ul>
- </nav>
- </div>
-
- <div class="d-flex flex-justify-center pb-6">
- <span class="f6 color-fg-muted"></span>
- </div>
- </footer>
-
-
-
-
- <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
- <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
- </svg>
- <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
- <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
- </svg>
- </button>
- You can’t perform that action at this time.
- </div>
-
- <template id="site-details-dialog">
- <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
- <summary role="button" aria-label="Close dialog"></summary>
- <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
- <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
- <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
- </svg>
- </button>
- <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
- </details-dialog>
- </details>
- </template>
-
- <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
- <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
- </div>
- </div>
-
- <template id="snippet-clipboard-copy-button">
- <div class="zeroclipboard-container position-absolute right-0 top-0">
- <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
- <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
- </svg>
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
- <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
- </svg>
- </clipboard-copy>
- </div>
- </template>
- <template id="snippet-clipboard-copy-button-unpositioned">
- <div class="zeroclipboard-container">
- <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
- <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
- </svg>
- <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
- <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
- </svg>
- </clipboard-copy>
- </div>
- </template>
-
-
-
-
- </div>
-
- <div id="js-global-screen-reader-notice" class="sr-only" aria-live="polite" ></div>
- </body>
- </html>
-
|